2014-11-09 4 views
0

У меня есть куб, который я хотел бы изменить цвет кода. Я пытаюсь использовать метод setProperty(). Когда я помещаю следующий код в цикл обновления и прикрепляю его к кубу, который я сделал синим, он остается синим, но консоль говорит, что он черный (0). Когда я удаляю строку setProperty(), я получаю значение цвета из редактора.Изменить цвет простого объекта

this.getEntity().setProperty("diffuseColor",0); 
console.log(this.getEntity().getProperty('diffuseColor')); 

ответ

1

Как я сделал это ссылки на материал с помощью Asset реестра, а затем вызвать метод SetProperty на переменную ссылаться на него, как это:

var material = this.getAssetRegistry().getAssetByName("NameOfMaterialInEditor"); 
material.setProperty("diffuseColor", 0x000000); 

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

this.nameOfAttribute.setProperty("diffuseColor", 0x000000); 
1

Этот код должен работать нормально (и он работает для меня). diffuseColor - это свойство материалов, поэтому убедитесь, что вы устанавливаете это свойство на MaterialAsset, а не на вашу сетку.

Если вы хотите только изменить цвет материала на одной из ваших сеток, вам нужно будет создать для него новый материал (или клонировать существующий).

Надеюсь, что это поможет.

+0

Я приложил компонент к объекту, а не материального. Как получить материал объекта из моего сценария? –

+0

Я прикрепил сценарий как к объекту, так и к сетке, и он все еще не работает. Вот ссылка на проект, который иллюстрирует проблему: http://vrld.co/uTVmqC/1 –

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