Как добавить переменную в GameObject? GameObjects имеет ряд переменных (имя, преобразование, ...), к которым можно получить доступ и изменить их из любого скрипта. Как я могу добавить переменную, такую как, например, «цвет» или «тип», к которой можно было получить доступ или изменить их из других сценариев. Спасибо.Unity3D/C# - добавить переменную в gameobject
ответ
Если GameObject
не был закрытым классом, тогда наследование могло быть решением вашей проблемы. В этой идете ситуации вы могли попробовать следующее.
public class ExtraGameObject : GameObject
{
// Logically you could make use of an enum for the
// color but I picked the string to write this example faster.
public string Color { get; set; }
}
Решение вашей проблемы может быть, чтобы объявить класс, как показано ниже:
public class ExtraGameObject
{
public string Color { get; set; }
public GameObject GameObject { get; set; }
}
Я знаю об этом, что это не совсем, что вы хотите, но что вы хотите, я не думаю, что это можно сделать из-за запечатанного характера GameObject
.
спасибо, пытаясь объявить класс, который наследует от GameObject, дает мне ошибку: «error CS0509:« ExtraGameObject »: невозможно получить из закрытого введите 'UnityEngine.GameObject '. Я думаю, что, как говорит Сет, переменная не может быть добавлена в GameObject. – cubecube
@cubecube Я не знал об этом :(Я думаю, что мое обновленное сообщение может предоставить вам решение. – Christos
Спасибо Christos, я на самом деле пытаюсь найти другой способ добиться того, что мне нужно (я новичок в C#). Я не уверен, ясно ли это: если я создаю экземпляр GameObject и присоединяю к нему сценарий (с помощью AddComponent), как я могу прочитать переменные этого прикрепленного скрипта из другого сценария? – cubecube
Ответ Christos правильный. Вы не можете добавить переменную в тип данных GameObject, потому что она была встроена в язык в качестве базы. Чтобы добавить переменные к готовому типу данных, откройте их. Для получения дополнительной информации о наследовании см
спасибо Сет, я слишком новичок, чтобы попасть в добавив переменные к готовому типу данных, я думаю. Мне нужно некоторое время, чтобы понять, но я попробую :) спасибо – cubecube
Как и каждый объект в C# класс класс GameObject наследование объектов. Если вы щелкните правой кнопкой мыши на GameObject и выберите перейти к определению, вы увидите это ниже.
Для достижения переменных одного объекта вам нужна ссылка (не считая статических переменных). Поэтому, если вы хотите изменить переменные одного GameObject из другого, вам понадобится ref. В инспекторе Unity вы можете присваивать значения общедоступным переменным скрипта. Ниже вы можете увидеть Obj конец стрелки. Теперь присвойте кубу (является GameObject) в Obj.
После перетаскивания
Теперь вы можете достичь любой подкомпонентой объекта куба. В красном прямоугольнике я достиг своего компонента Transform и изменил его положение.
Надеюсь, я понял ваш вопрос правильно.GL.
Спасибо Бурак за отличный ответ! Я зашел так далеко и понял этот принцип, который вы объясняете.(надеюсь, это поможет другим людям, читающим эту тему :)) мой вопрос: как добавить новую переменную в GameObject. В GameObject есть набор компонентов, таких как Transform, Name и другие. Теперь мне было интересно, можно ли добавить компонент, такой как цвет или дата или что-то еще. Но, похоже, другие люди ответили, что это сложно. Seth bellow опубликовал ссылку, но для меня это слишком сложно прямо сейчас. – cubecube
Спасибо. Я прочел в Интернете по вашему вопросу после прочтения вашего комментария. Интересный вопрос. Сначала я просмотрел интернет о добавлении специального компонента, которого я не мог найти, чтобы, возможно, даже если он существует, это не общий вопрос. В unity3d я унаследовал класс от компонента и программным образом добавлен в один из моих игр. Но это воспринималось как сценарий. Будем искать больше, я думаю, что это о структуре Unity. –
Burak, спасибо за поиск, я тоже искал какое-то время, не нашел много, поэтому я разместил этот вопрос. Я задал производные вопросы с некоторым кодом, который мог бы быть альтернативным способом получить то, что я хочу, посмотреть PLS: http://stackoverflow.com/questions/33906741/access-dynamically-added-component-in-unity3d- с-острый/33906910 # 33906910 – cubecube
- 1. Добавить gameobject динамически в сцену в Unity3d
- 2. Добавить переменную в переменную
- 3. Добавить переменную в переменную
- 4. "Stick" gameObject в другой gameObject после столкновения?
- 5. Как добавить переменную в переменную
- 6. GameObject Position Within Another GameObject Issues
- 7. Unity C# GameObject сталкивается с другим GameObject
- 8. Почему я не могу назначить GameObject общедоступной переменной другого GameObject
- 9. Добавить переменную в массив/список без instancing
- 10. GameObject [] в единстве
- 11. Мигает GameObject в Unity
- 12. Unity3D инстанцировании в GameObject
- 13. Изменение скорости в GameObject
- 14. Масштаб GameObject в Unity
- 15. Исчезающий Gameobject в unity3d
- 16. GameObject в классе? Unity3D
- 17. Изменчивый GameObject в единстве3d
- 18. Объявление gameObject для анимации
- 19. Добавить строку в переменную
- 20. Добавить html в переменную
- 21. Добавить в строковую переменную
- 22. добавить "в переменную String
- 23. Добавить переменную в основную
- 24. добавить переменную в MYSQL
- 25. Добавить объект в переменную
- 26. Добавить переменную в preg_replace
- 27. Добавить переменную в RegEx
- 28. Unity3D C#, добавить gameObject из обнаружения столкновения в список
- 29. Unity2D C# Случайно Spawn GameObject в области над другим GameObject
- 30. Как добавить переменную в другую переменную?
просто сделайте свои переменные общедоступными и добавьте ссылку на ваш gameObject. –
Не могли бы вы привести мне пример? Я не уверен, что понимаю (я новичок в C#) Спасибо – cubecube
, добавив пример ... –