Jump to content

Unity: коллайдеры через скрипты


Recommended Posts

Как создать BoxCollider или SphereCollider на объекте через скрипт C# в Unity? Может пригодится, если у вас объекты создаются не в редакторе игрового движка, а генерируются из скриптов.

Добавление коллайдера

Как добавить коллайдер к объекту через скрипт? В скрипте, который прикреплен к GameObject в методе Start пишете

gameObject.AddComponent<BoxCollider>();

Это добавит во время старта игры BoxCollier через скрипт любому объекту, к которому будет прикреплен скрипт.

Включение галочки Is Trigger

Если нужно добавить объекту галочку Is Trigger, то после предыдущей строчки пишем следующее:

 

gameObject.GetComponent<BoxCollider>().isTrigger = true;

Уничтожение коллайдера

Если необходимо удалить (уничтожить) коллайдер с объекта, то в его скрипте пишем:

Destroy(gameObject.GetComponent<BoxCollider>());

Destroy(gameObject.GetComponent<BoxCollider>());

Установка размера

Если добавить к строчке ".size = new Vector3(2, 2, 2);", то создаваемый коллайдер будет иметь масштаб (scale) 2 по всем осям:

gameObject.AddComponent<BoxCollider>().size = new Vector3(2, 2, 2);

Например, при добавлении такого коллайдера на модельку, у меня размер коллайдера стал в 2 раза больше, чем был бы изначально, исходя из размера модельки.

Остальное

Про определение столкновения коллайдера-триггера с объектами можно прочитать тут https://habr.com/post/149721/,  также там про добавление компонентов с помощью скриптов.

Link to post
Share on other sites
 

Вот пример кода, когда при инициализации скрипта создается коллайдер в масштабе х2, добавляет галочка Is Trigger. При желании можно раскоментировать код про дестрой объекта, тогда он сразу же удалится:

 

    void Start () {
        gameObject.AddComponent<BoxCollider>().size = new Vector3(2, 2, 2);
        gameObject.GetComponent<BoxCollider>().isTrigger = true;
        //Destroy(gameObject.GetComponent<BoxCollider>());
    }

 

Link to post
Share on other sites
 

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Powered by Invision Community
Поддержка Invision Community в России

×
  • Create New...