void Start()
    {
        charMec = participant.GetComponent<BehaviorMecanim>();

        behaviorAgent = new BehaviorAgent(this.BuildTreeRoot());
        BehaviorManager.Instance.Register(behaviorAgent);
        behaviorAgent.StartBehavior();
    }
예제 #2
0
    /*
     * protected Node ST_ApproachAndWait(Transform target)
     * {
     * Val<Vector3> position = Val.V (() => target.position);
     * return new Sequence( participant.GetComponent<BehaviorMecanim>().Node_GoTo(position), new LeafWait(1000));
     * }
     */

    protected Node faceAndPoint(BehaviorMecanim part, GameObject facing, int time)
    {
        Val <Vector3> face = Val.V(() => facing.transform.position);

        return(new Sequence
               (
                   part.Node_OrientTowards(face),
                   part.Node_HandAnimation("pointing", true),
                   new LeafWait(time),
                   part.Node_HandAnimation("pointing", false)
               ));
    }
예제 #3
0
    protected Node WatchTV(BehaviorMecanim part, Transform p, InteractionObject s)
    {
        Val <Vector3> tvpos    = Val.V(() => TVLookAtPoint.position);
        Val <Vector3> standpos = Val.V(() => p.position);

        // Val<InteractionObject> sofapos = Val.V (() => s);
        //Val<float> dist = Val.V (() => 2.0f);
        return(new Sequence(
                   part.Node_GoTo(standpos),
                   part.Node_OrientTowards(tvpos),
                   part.Node_StartInteraction(butt, s)
                   ));
    }
예제 #4
0
    // Use this for initialization
    void Start()
    {
        part1 = participant1.GetComponent <BehaviorMecanim> ();
        part2 = participant2.GetComponent <BehaviorMecanim> ();
        part3 = participant3.GetComponent <BehaviorMecanim> ();

        canvasLight.GetComponent <CanvasGroup>().alpha = 0;
        canvasTV.GetComponent <CanvasGroup>().alpha    = 0;
        behaviorAgent = new BehaviorAgent(this.BuildTreeRoot());
        BehaviorManager.Instance.Register(behaviorAgent);
        behaviorAgent.StartBehavior();

        Player = GameObject.Find("Player");
    }
예제 #5
0
    protected Node TVOnOff(BehaviorMecanim part)
    {
        Val <Vector3> position = Val.V(() => TVTurnStandPoint.position);
        Val <Vector3> face     = Val.V(() => TVSwitch.transform.position);

        return(new Sequence
               (
                   part.Node_GoTo(position),
                   part.Node_OrientTowards(face),
                   // part.Node_HandAnimation("pointing", true),
                   part.Node_StartInteraction(hand, TVSwitchIK),
                   new LeafWait(500),
                   // part.Node_HandAnimation("pointing", false)
                   part.Node_StopInteraction(hand)
               ));
    }
예제 #6
0
    protected Node LightOff(BehaviorMecanim part)
    {
        Val <Vector3> position = Val.V(() => lightSwitchStandPoint.position);
        Val <Vector3> face     = Val.V(() => lightSwitch.transform.position);

        return(new Sequence
               (
                   part.Node_StopInteraction(butt),
                   part.Node_GoTo(position),
                   part.Node_OrientTowards(face),
                   // part.Node_HandAnimation("pointing", true),
                   part.Node_StartInteraction(hand, lightSwitchIK),
                   new LeafWait(500),
                   new LeafInvoke(() => lamp.enabled = !lamp.enabled),
                   // part.Node_HandAnimation("pointing", false)
                   part.Node_StopInteraction(hand)
               ));
    }
예제 #7
0
    protected override void Initialize(BehaviorObject obj)
    {
        base.Initialize(obj);

        this.character = this.GetComponent<CharacterMecanim>();
        this.behavior = this.GetComponent<BehaviorMecanim>();

        if (this.MarkerHead == null)
            this.MarkerHead = 
                this.GetComponent<Animator>().GetBoneTransform(
                    HumanBodyBones.Head);
    }