Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- В скрипте Test я вызываю функцию findClosestTransform из класса Grid:
- void FixedUpdate () {
- Vector3 point = Camera.main.ScreenPointToRay(Input.mousePosition).GetPoint(1);
- Transform tr2 = GetComponent<Grid>().findClosestTransform(point);
- tr.position = tr2.position;
- }
- Но Юнити выдает ошибку:
- public Transform findClosestTransform (Vector3 point) {
- Transform[] closest = new Transform[9];
- foreach (Transform tr in b1row) {
- if (tr == b1row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[0].position, point)) closest[0] = tr;
- }
- foreach (Transform tr in b2row) {
- if (tr == b2row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[1].position, point)) closest[1] = tr;
- }
- foreach (Transform tr in b3row) {
- if (tr == b3row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[2].position, point)) closest[2] = tr;
- }
- foreach (Transform tr in b4row) {
- if (tr == b4row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[3].position, point)) closest[3] = tr;
- }
- foreach (Transform tr in b5row) {
- if (tr == b5row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[4].position, point)) closest[4] = tr;
- }
- foreach (Transform tr in b6row) {
- if (tr == b6row[0] || Vector3.Distance(tr.position, point) < Vector3.Distance(closest[5].position, point)) closest[5] = tr;
- }
- Transform result = closest[0];
- foreach (Transform tr in closest) {
- if (Vector3.Distance(tr.position, point) < Vector3.Distance(result.position, point)) result = tr; // <- В ЭТОЙ СТРОЧКЕ
- }
- return result;
- }
- Ошибка:
- NullReferenceException: Object reference not set to an instance of an object
- Grid.findClosestTransform (Vector3 point) (at Assets/Scripts/Grid.cs:62)
- Test.FixedUpdate () (at Assets/Scripts/Test.cs:10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement