Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.94 KB | None | 0 0
  1. В скрипте Test я вызываю функцию findClosestTransform из класса Grid:
  2.  
  3. void FixedUpdate () {
  4.         Vector3 point = Camera.main.ScreenPointToRay(Input.mousePosition).GetPoint(1);
  5.         Transform tr2 = GetComponent<Grid>().findClosestTransform(point);
  6.         tr.position = tr2.position;
  7.     }
  8.  
  9. Но Юнити выдает ошибку:
  10.  
  11. public Transform findClosestTransform (Vector3 point) {
  12.        
  13.         Transform[] closest = new Transform[9];
  14.        
  15.         foreach (Transform tr in b1row) {
  16.             if (tr == b1row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[0].position, point)) closest[0] = tr;
  17.         }
  18.        
  19.         foreach (Transform tr in b2row) {
  20.             if (tr == b2row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[1].position, point)) closest[1] = tr;
  21.         }
  22.        
  23.         foreach (Transform tr in b3row) {
  24.             if (tr == b3row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[2].position, point)) closest[2] = tr;
  25.         }
  26.        
  27.         foreach (Transform tr in b4row) {
  28.             if (tr == b4row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[3].position, point)) closest[3] = tr;
  29.         }
  30.        
  31.         foreach (Transform tr in b5row) {
  32.             if (tr == b5row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[4].position, point)) closest[4] = tr;
  33.         }
  34.        
  35.         foreach (Transform tr in b6row) {
  36.             if (tr == b6row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[5].position, point)) closest[5] = tr;
  37.         }
  38.        
  39.         Transform result = closest[0];
  40.        
  41.         foreach (Transform tr in closest) {
  42.             if (Vector3.Distance(tr.position, point) < Vector3.Distance(result.position, point)) result = tr; // <- В ЭТОЙ СТРОЧКЕ
  43.         }
  44.        
  45.         return result;
  46.        
  47.     }
  48.  
  49. Ошибка:
  50.  
  51. NullReferenceException: Object reference not set to an instance of an object
  52. Grid.findClosestTransform (Vector3 point) (at Assets/Scripts/Grid.cs:62)
  53. Test.FixedUpdate () (at Assets/Scripts/Test.cs:10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement