Beispiel #1
0
    public void Init(ActorManager am)
    {
        this.am = am;

        foreach (var behaivour in am.puppet.behaviours)
        {
            if (behaivour is ConsciousBehaviour)
            {
                consciousBeha = behaivour as ConsciousBehaviour;
            }
            else if (behaivour is UnConsciousBehaviour)
            {
                unConsciousBeha = behaivour as UnConsciousBehaviour;
            }
        }
        //behaviourFall.OnPreActivate += am.actorController.Fall;
        BehaPuppet.onRegainBalance.unityEvent.AddListener(am.actorController.OnRegainBalance);
        BehaPuppet.onLoseBalance.unityEvent.AddListener(am.actorController.Fall);

        BehaPuppet.onGetUpProne.unityEvent.AddListener(am.actorController.GetUp);
        BehaPuppet.onGetUpSupine.unityEvent.AddListener(am.actorController.GetUp);



        // 初始化 muscleGroup
        updateEntry = UpdateDelegate;
        ActorParts.MuscleGroup[] muscleGroup = am.actorParts.MuscleGroups;
        baseProps = new GroupProp[muscleGroup.Length];
        for (int i = 0; i < muscleGroup.Length; i++)
        {
            baseProps[i] = new GroupProp(muscleGroup[i], updateEntry);
        }

        BehaPuppet.InitMuscleGroup(baseProps);
        InitProps();
    }
Beispiel #2
0
 // 状态变换调用函数 在 bodyAction 的setter 中进行调用。
 public void State2Fall()
 {
     BehaPuppet.SetState(ConsciousBehaviour.State.Unpinned);
 }