コード例 #1
0
    // Use this for initialization
    void Start()
    {
        level.Init();
        rigid = GetComponent <Rigidbody>();
        callInOnDrawGizmos = new List <System.Action>();

        audio = GetComponent <AudioSource>();

        //var funcs = new System.Action < HitMessageSender, UnityEngine.Collider >[3];
        //funcs[0] = (HitMessageSender a, UnityEngine.Collider b) => { };
        //funcs[1] = (HitMessageSender sender, UnityEngine.Collider collider) =>
        //{

        //};
        //funcs[2] = (HitMessageSender a, UnityEngine.Collider b) => { };
        //HitMessageSender.AddHitMessageSender(grippingAbleArea, funcs, new string[] { });



        handMovementMode = HandMovementMode.Close;

        // 進む方向の手を定義する
        ClimberMethod.SetHandForwardAndBack(ref rightHand, ref leftHand, Vector3.right);

        // 仮
        currentState = new AirState();
        nextState    = null;

        currentState.Init(this);
    }
コード例 #2
0
    // Update is called once per frame
    void Update()
    {
        if (unenableColliderResetTime > 0)
        {
            unenableColliderResetTime -= Time.deltaTime;
            if (unenableColliderResetTime <= 0)
            {
                GetComponent <BoxCollider>().enabled = true;
            }
        }

        var removeList = new List <int>();
        int i          = 0;

        foreach (var e in events)
        {
            var re = e.Action(this);        // イベントの実行
            if (re == false)
            {
                removeList.Add(i);
            }
            i++;
        }

        // index関係で逆順に削除
        removeList.Reverse();
        foreach (var index in removeList)
        {
            events.RemoveAt(index);
        }

        currentState.Update(this);

        //? 呼び出すタイミングの考察が必要
        if (nextState != null)
        {
            currentState = nextState;
            nextState    = null;

            currentState.Init(this);
        }

        // 衝突中の壁の法線方向をリセット
        wallNormals.Clear();
    }
コード例 #3
0
 void ChangeState(InterfaceClimberState newState)
 {
     nextState = newState;
 }