Как установить цвет сущности из скрипта в Amazon Sumerian?
Я изучаю Amazon Sumerian для разработки веб-VR. Я пытаюсь изменить свойство цвета из сценария этого объекта в update()
метод. Код выглядит так:
function update(args, ctx) {
ctx.entity.transformComponent.setTranslation(0.6, 166, distance);
distance += 10;
if (distance > 1500) {
distance = -10;
ctx.entityData.color = "blue";
}
}
Я пытался установить color
собственность по ctx.entity.color
а также ctx.entity.setAttribute('color', 'blue')
тоже, но это тоже не работает. Я также не смог найти никакой документации на их официальном сайте для настройки цвета. Я думаю, что есть простой улов, который мне не хватает.
Как правильно обновить цвет объекта из сценария?
2 ответа
Следующий подход недокументирован. Это может быть просто признаком неполной шумерской документации или указанием на то, что этот подход официально не поддерживается и, следовательно, может быть изменен в будущем. Но сейчас вы можете использовать следующий подход, чтобы выполнить то, что вы хотите.
function update(args, ctx) {
ctx.entity.transformComponent.setTranslation(0.6, 166, distance);
distance += 10;
if (distance > 1500) {
distance = -10;
// Color is a 4 component array in the order: red, green, blue, alpha
const blueColor = [0, 0, 1, 1];
ctx.entity.setDiffuse(blueColor);
}
}
Просто хотел дать ответ на этот вопрос.
В этом случае я пытаюсь изменить цвет рубашки ведущего объекта. Например, я хотел бы изменить цвет рубашки объекта Cristine Polo на красный динамически с помощью скрипта.
Ответ можно получить из официальной документации API сценариев Amazon Sumerian, которую я рекомендую всем начинающим:https://content.sumerian.amazonaws.com/engine/latest/doc/#content://sumerian-common/Guide / Quick%20Start
import * as s from 'module://sumerian-common/api';
export default function RotatorAction(ctx) {
ctx.start( EnabledAction );
}
function EnabledAction(ctx) {
ctx.start(
[ s.material.SetMaterialColorAction, { color: s.color.Red } ]
);
}