void PutUse(BehaviorUse use)
    {
        OnBeforeAnyChange();
        var brain = GetBrain();

        brain.SetUse(use);
        GetBehaviorSystem().PutBrain(GetBrainId(), brain);
    }
예제 #2
0
    void PutTestUse(TestUse test)
    {
        var use = new BehaviorUse {
            behaviorUri = test.behaviorUri, id = NewGUID()
        };
        var brain = new Brain {
            behaviorUses = new BehaviorUse[] { use }
        };

        behaviorSystem.PutBrain(test.brainId, brain);
    }
예제 #3
0
    public IEnumerator TestBasic()
    {
        yield return(Setup());

        VoosActor actor = voosEngine.CreateActor(new Vector3(1, 2, 3), Quaternion.identity, _ => { });

        Assert.NotNull(actor);
        Assert.AreEqual(1.0, actor.GetTint().r, 1e-4);

        string brainId    = actor.GetBrainName();
        string behaviorId = NewGUID();
        string js         = @"
        export function onTick(api) {
          setTint(0.12, 0.34, 0.56);
        }
    ";

        behaviorSystem.PutBehavior(behaviorId, new Behavior {
            javascript = js
        });
        var use = new BehaviorUse
        {
            id          = NewGUID(),
            behaviorUri = IdToEmbeddedBehaviorUri(behaviorId)
        };
        var brain = new Brain {
            behaviorUses = new BehaviorUse[] { use }
        };

        behaviorSystem.PutBrain(brainId, brain);

        // Let it run at least one voos update
        yield return(new WaitForEndOfFrame());

        yield return(new WaitForEndOfFrame());

        Assert.AreEqual(0.12, actor.GetTint().r, 1e-4);
    }