Почему я не могу получить объект, который хочу - PullRequest
0 голосов
/ 18 марта 2020

Эй, вот моя проблема. Я использую UTS Pro, которая до сих пор работает нормально. UTS порождает для меня несколько машин (сборных), и они будут двигаться по заданному пути. Я добавил деактивированный скрипт в один из префабов и написал некоторый код, который изменится на активный, когда машина столкнется с коллайдером.

if(playerTriggered == true && playerCounter<1 && gameobj.tag == "Car")
        {
            projections = GameObject.FindGameObjectsWithTag("Projection");
            foreach(GameObject projection in projections)
            {
                if(projection.GetComponentInParent<Rigidbody>().GetInstanceID() == gameobj.GetComponentInParent<Rigidbody>().GetInstanceID())
                {
                    walkPath = projection.GetComponentInParent<WalkPath>();
                    projection.GetComponentInParent<Idle>().enabled = true;
                    walkPath.setChangeCarPath(gameobj.gameObject);
                } 

            }

            playerCounter++;
        }

Это нормально работает для меня. Когда я нажимаю кнопку воспроизведения, и машина попадает в коллайдер, я вижу, что сценарий активирован. В другом классе я пытался запустить этот код

if (car.gameObject.GetComponent<Idle>().enabled == true)
        {
            Debug.Log("UM - IF");
            return points2[0, index];
        }
        else
        {
            return points[0, index];
        }

Я не понимаю, что оператор if всегда ложен. Даже при том, что у машины в сцене есть включенный сценарий. Я также попытался сравнить экземпляры идентификаторов переданного игрового объекта с автомобильным объектом. У них также есть разные идентификаторы.

Надеюсь, кто-нибудь может мне помочь и объяснить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...