Я использую Unity 5.4.2f2 Personal, и я написал C# сценарий, подобный следующему:Использование вложенного класса, как Unity3D компонент
using UnityEngine;
using System;
public class Outer : MonoBehaviour {
// Some public outer fields
public class Inner : MonoBehaviour {
// Some public inner fields
}
}
Я хотел бы, чтобы иметь возможность прикрепить как Outer
и Inner
к GameObjects в моей сцене. К сожалению, Inner
не отображается как доступный скрипт в Инспекторе Unity, даже если я добавлю к нему [Serializable]
. Я знаю, что многие люди, вероятно, скажут, что что-то не так с моей настройкой, если я пытаюсь сделать вложенный класс видимым для внешнего мира, но ради этого вопроса я просто хочу знать, может ли этот быть сделанный. I.e., есть ли способ сделать вложенные классы пригодными для использования в качестве компонентов Unity?
Спасибо за ответ! Я нашел вопрос о Unity Answers, который, похоже, согласен с вами (ссылка ниже), но я не мог найти официального упоминания об этом правиле в документации. У вас есть ссылка на него случайно? http://answers.unity3d.com/questions/497914/does-every-c-class-need-to-have-its-own-script-wit.html – Rabadash8820
Когда я увидел ваш вопрос, я искал документацию о единстве, но Я тоже не мог найти эту информацию. Я знал это только из-за предыдущего опыта. Попробуйте переименовать свой внешний класс и нарисуйте свой скрипт на какой-либо игровой объект, вы увидите сообщение об ошибке – luizcarlosfx
Удивительно, спасибо за ссылку. Ваша помощь очень ценится! – Rabadash8820