Как добавить компонент через скрипт unity
Перейти к содержимому

Как добавить компонент через скрипт unity

Добавление компонента к обьекту через скрипт

Запуск компонента через сторонний скрипт
Всем здравствуйте. Интересует такой вопрос: возможно ли через сторонний скрипт выполнять компонент.

Добавление программы в автозагрузку через скрипт vbs
Доброго врмени суток. Никак не могу найти скрипт vbs добавления в автозагрузку. У меня есть.

Обращение к обьекту через Name или Tag в treeview
Всем доброго времени суток, возник вопрос, как обратиться к узлу treeview через name или тег? Дайте.

Динамическое добавление компонента
Здраствуйте. Подскажите идею как добавлять визуальные компоненты , такие как textbox , из.

3343 / 1763 / 1021
Регистрация: 26.10.2018
Сообщений: 5,183

Лучший ответ

Сообщение было отмечено Vlasid7 как решение

Решение

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Добавление компонента в Altium Desinger
Друзья, только начал работать с Altium, не могу разобраться как добавить компонент из.

Программное добавление компонента. NetBeans.
Допустим, есть у меня на фрейме панель. Хочу программно добавить кнопку. Делаю так. public.

Динамичное добавление и удаление компонента
В слушателе мыши пытаюсь добавить компонент на JLayeredPane. Однако столкнулся с тем, что добавить.

Добавление компонента в выпадающий список
Доброго времени суток. На работе дали задачу изменить выпадающий список конструктора форм на Yii2.

Добавление компонента на форму по шаблону
Здравствуйте. Подскажите как добавлять компонент на форму по шаблону в готовом приложении.

Динамическое добавление компонента DBGrid
Привет, никак не могу разобраться с проблемой динамического добавления компонента DBGrid в.

Как присоединить объект через скрипт

В общем штука такая, что я кидаю квадрат, при столкновении с чем-либо он возвращается к игроку. Мне надо чтобы если он врежется в треугольник, то он присоединится к квадрату и они вместе прилетят к игроку. А когда квадрат возвращается, он должен прикрепиться к игроку.

КолжинЕнтер у меня уже прописан, квадрат нормально возвращается к игроку и регистрирует попадания по треугольнику и по игроку. Но вот FixedJoint никак не удаётся включить через скрипт. Помогите, может я неправильно GetComponent пишу (скорее всего так) или есть другой вариант прикрепить квадрат к игроку по возращении (думаю если прикреплю квадрат, аналогично смогу и треугольник в квадрату присоединить).
P.s. Смена Rigidbody на GameObject тоже не работает.

Вот так выглядит колижн:

public Rigidbody2D rb; //Квадрат
public Rigidbody2D player; //Игрок (кто бы мог подумать)

void OnCollisionEnter2D(Collision2D col)
<
Vector2 grabPoint2 = grabPoint.position — transform.position;
rb.AddForce(grabPoint2 * grabForce2, ForceMode2D.Impulse);
Debug.Log(«Попадание»);
if (col.gameObject.tag == «Player»)
<
Debug.Log(«Стыковка»);
rb.gameObject.GetComponent().connectedBody = player;
/*Эту строчку по разному пробовал писать, но Unity выдаёт вот такую ошибку: «There is no ‘FixedJoint2D’ attached to the «Grab» game object, but a script is trying to access it.» Если я правильно понимаю, из-за того что нет FixedJoint2D, то и создать его не получается, а как его тогда создать?*/
>
>

#1
20:09, 25 окт 2021

LzheDmitrey
> Если я правильно понимаю, из-за того что нет FixedJoint2D, то и создать его не
> получается, а как его тогда создать?
https://docs.unity3d.com/ScriptReference/GameObject.AddComponent.html
Сначала надо делать GetComponent, а если оно вернуло null — тогда AddComponent.
Ещё можно добавить компонент заранее на префабе объекта, по производительности лучше будет. AddComponent и проверки на null довольно затратны.

  • LzheDmitrey
  • Постоялец

#2
20:19, 25 окт 2021

BooTheJudge
О боже, какой я идиот, забыл про AddComponent. Большое спасибо, просто поменял Get на Add и всё сработало

  • LzheDmitrey
  • Постоялец

#3
20:21, 25 окт 2021

BooTheJudge
А можете пояснить как добавить компонент на префаб заранее? Это мне на «треугольник» надо заранее повесить Joint, но он же сразу активированным будет, нет?

  • LzheDmitrey
  • Постоялец

#4
23:19, 25 окт 2021

А теперь ещё вопрос, как передать через AddComponent breakeForce в FixedJoint2D?

#5
10:08, 26 окт 2021

LzheDmitrey
> Это мне на «треугольник» надо заранее повесить Joint, но он же сразу
> активированным будет, нет
Я почему-то подумал, что он не будет работать, пока не задашь ConnectedBody. Но потом вспомнил, что в этом случае он привязывается к фиксированной точке в пространстве. Значит, так наверное не пойдёт.

LzheDmitrey
> А теперь ещё вопрос, как передать через AddComponent breakeForce в
> FixedJoint2D?
AddComponent возвращает ссылку на добавленный компонент, точно так же, как это делает GetComponent. То есть делаешь

FixedJoint2D joint = rb.gameObject.AddComponent(); joint.breakForce = //тут константа или переменная с нужным значением силы
  • LzheDmitrey
  • Постоялец

#6
10:12, 26 окт 2021

BooTheJudge
Большое спасибо

Как получить ссылку / добавить / отключить / удалить компонент из скрипта

Приветствую начинающих разработчиков Unity. В данной статье мы рассмотрим сразу четыре возможности, которые можно реализовать с компонентами объекта, через скрипт, а именно: получение ссылки на компонент, добавление компонента, отключение компонента и удаление компонента.

Давайте пройдёмся по порядку.

Получение ссылки на компонент

Предположим, у нас имеется переменная obj, которая хранит в себе ссылку на наш объект. И нам необходимо получить ссылку на компонент данного объекта, например, на компонент Rigidbody. Для этого воспользуемся методом GameObject.GetComponent.

Rigidbody _rb = obj.GetComponent(); 

Тепер в переменной _rb у нас имеется ссылка на компонент Rigidbody, объекта obj. Так же убедитесь в том, что компонент, на который вы хотите получить ссылку, добавлен к Вашему объекту, иначе данный код работать не будет.

Добавление компонента

Как и в предыдущем примере, предположим, у нас имеется переменная obj, которая хранит в себе ссылку на наш объект.

Там нам необходимо добавить компонент для нашего объекта. Для этого нам понадобится метод GameObject.AddComponent. Воспользуемся им, добавив компонент, например, Rigidbody:

Rigidbody _rb = obj.AddComponent();

Готово! К объекту obj мы добавили компонент Rigidbody, и в переменную _rb записали ссылку для её хранение. Но на самом деле хранить ссылку на добавленный компонент не обязательно, поэтому, Вы можете обойтись и без этого.

Отключение компонента

Отключение и включение компонента используется довольно часто, для временного отключения или включения его свойств.

Предположим, что у Вас имеется переменная _rb, которая хранит в себе ссылку на какой-либо компонент.

У любого компонента имеется свойство enabled, которое принимая значения true и false, включает и отключает компонент соответственно. Воспользуемся им:

_rb.enabled = true;

Данный код отключит Ваш компонет. А чтобы его опять включить, поменяйте значение true на false.

_rb.enabled = false;

Удаление компонента

Удаление компонента, пожалуй, самое простое из всех тем этой статьи. За удаление компонента отвечает метод Destroy.

Destroy(_rb);

Так же убедитесь, что в переменной _rb имеется ссылка на Ваш компонент, который Вы хотите удалить.

На этом всё, теперь Вы умеете работать с компонентами 🙂 Если остались вопросы, задавайте их в комментариях.

GameObject.AddComponent

Добавляет компонент класса className на игровой объект.

GameObject.AddComponent with string argument has been deprecated. Use AddComponent(Type) or the generic version instead.

public Component AddComponent (Type componentType );

Description

Добавляет компонент типа componentType к игровому объекту. Пользователи C# могут использовать дженерик-версию функции.

using UnityEngine; using System.Collections;

public class AddComponentExample : MonoBehaviour < void Start() < SphereCollider sc = gameObject.AddComponent(typeof(SphereCollider)) as SphereCollider; > >

Note that there is no RemoveComponent(), to remove a component, use Object.Destroy.

public T AddComponent ();

Description

Дженерик функции. Для получения дополнительной информации смотрите страницу, посвященную Дженерик функциям.

using UnityEngine; using System.Collections;

public class AddComponentExample : MonoBehaviour < void Start() < SphereCollider sc = gameObject.AddComponent() as SphereCollider; > >

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *