0

NullReferenceException: Object reference not set to an instance of an object Valentnist.Update () (at Assets/Valentnist.cs:50)

код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Valentnist : MonoBehaviour {
    [SerializeField]
    private int valentnist =1;



    public int GetValentnist(){
        return valentnist;
    }
    private float syla_vzayemodyi;

    private double a;

    GameObject[] enemy;

    GameObject closest;//найбл обєкт

    public string nearest;
    // Use this for initialization
    void Start () {
        enemy = GameObject.FindGameObjectsWithTag ("Molecules");
    }
    //повертає найблищий обєкт із тегом "Molecules"
    GameObject FindClosestEnemy(){
        float distance = Mathf.Infinity;
        Vector3 position = transform.position;
        foreach (GameObject go in enemy)
        {
            Vector3 diff = go.transform.position - position;
            float curDistance = diff.sqrMagnitude;
            if(curDistance < distance)
            {
                closest = go;
                distance = curDistance;
            }
        }
        return closest;
    }

    /*float Sula_vzayem(){
        syla_vzayemodyi  = valentnist * FindClosestEnemy().;
    }*/

    void Update () {
        nearest = FindClosestEnemy ().name;
        syla_vzayemodyi = valentnist * FindClosestEnemy ().GetComponent<Valentnist> ().GetValentnist();//Mathf.Pow((this.gameObject.GetComponent<Transform>().position - FindClosestEnemy().GetComponent<Transform>().position).magnitude,2);
        Debug.Log ("syla_vzayemodyi\t" + syla_vzayemodyi);
    }
}
  • Ошибка выбивает в строке присвоения значения настоящем полю syla_vzayemodyi. Но я новичок в c # и без понятия почему данная ошибка имеет место в моем коде, и даже зная типичные причины без понятия как ее исправить. – Muhaylo Gudz Jan 23 '19 at 19:37
  • Попробуйте enemy сделать не GameObject[], а List. И тогда в Start() сначала прописать enemy = new List(), и только затем то, что уже есть в методе. – Igor Shapilov Jan 27 '19 at 18:08
  • Сделал, но ошибка осталась, но и за это спасибо. – Muhaylo Gudz Jan 27 '19 at 20:50
  • ошибка исчезла когда вместо FindClosestEnemy () .GetComponent () .GetValentnist () написал -FindClosestEnemy () .gameObject.GetComponent () .GetValentnist (); – Muhaylo Gudz Jan 29 '19 at 18:51

0 Answers0