Как установить цвет сущности из скрипта в 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 } ]
  );
}
Другие вопросы по тегам