Заставить объект исчезнуть из другого объекта в Unity C # - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь изучить Unity и хочу сделать простую игру. Я сделал большую часть игра, но я застрял в одном месте. Когда игрок касается другого объекта, третий объект должен исчезнуть. Я сделал обнаружение столкновения, но я не могу получить объекты, чтобы общаться друг с другом. Я пытался gameObject.SendMessage, но я не удалось получить третий объект для получения сообщения. Я искал другие способы общение между объектами, но я их не понял. Я также попытался запустить скрипт, который заставляет объект исчезать из объекта проигрывателя (я не уверен, что это возможно), но он дал мне некоторые ошибки. мне не нужен самый эффективный способ, мне просто нужен тот, который работает и прост

1 Ответ

0 голосов
/ 14 сентября 2018

Прежде всего, вам нужен способ ссылки на GameObject, который вы хотите удалить. Вы можете сделать это различными способами, такими как поиск по имени или тегу, или установив его в редакторе.

Например, поиск по имени, GameObject objectToDisappear = GameObject.Find("ObjectToDisappearName");

После этого, чтобы объект исчез, вы можете отключить его средство визуализации, используя objectToDisappear.GetComponent<Renderer>().enabled = false; внутри вашего метода обнаружения столкновений.

EDIT : Чтобы сослаться на GameObject, перетащив его в инспектор, создайте переменную экземпляра внутри класса, из которого вы хотите сослаться на него. В вашем случае это должно быть так:

public class P2 : MonoBehaviour
{
   public GameObject p3;

   void OnCollisionEnter(Collision col) 
   { 
        if(col.gameObject.name == "p")
        {
           Debug.Log("Collision detected");
           p3.GetComponent<Renderer>().enabled = false;
        }
   } 
}

Затем зайдите в инспектор в GameObject, к которому прикреплен этот скрипт (p2), и вы должны увидеть, что значение p3 пустое (должно быть поле с надписью «None (GameObject)»), просто перетащите объект p3 ( тот, который вы хотите скрыть) внутри коробки.

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