2015-12-12 2 views
-1

Я задавался вопросом, почему это, что, когда я создаю собственный класс, я должен объявить объект так:Unity, как создать объект без нового ключевого слова

Person Bob = new Person; 

Но с Единству пользовательских классов я не «т; Пример:

puiblic RaycastHit hit; 
public Color myColor; 
public RigidBody rB; 
+0

[Read This] (http://stackoverflow.com/questions/2330767/what-is-the-difference-between-instantiated-and-initialized/11423017#11423017) – radarbob

+0

'Person Bob = new Person' won ' t компиляция в любом случае. 'RigidBody' ** является ** классом, поэтому ** ** должен будет вызывать' new', поэтому не уверен, где вы получили эту идею от – MickyD

+0

. Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что вопрос настолько прост это вряд ли будет полезно для будущих читателей – MickyD

ответ

0

Последний пример просто создает переменную, которая может удерживать экземпляр объекта. На самом деле это не создание экземпляра ничего.

Если эти переменные являются структурами, они будут иметь значение по умолчанию.

0

RaycastHit и Color не class es, они struct s. Это означает, что они объявлены так же, как и int, и их можно сразу же использовать без необходимости new.

RigidBody, с другой стороны, является class, поэтому это объявление не создает экземпляр объекта, оно просто объявляет ссылку на объект, который должен быть создан или иным образом получен ниже.

Смежные вопросы