Beispiel #1
0
    public override void ControllerUpdate()
    {
        base.ControllerUpdate();
        GrapplingHookControllerState state = this.m_State;

        if (state != GrapplingHookControllerState.SetupPosition)
        {
            if (state == GrapplingHookControllerState.ThrowHook)
            {
                AnimatorStateInfo currentAnimatorStateInfo = this.m_Animator.GetCurrentAnimatorStateInfo(0);
                if (!currentAnimatorStateInfo.Equals(null) && currentAnimatorStateInfo.normalizedTime > 0.8f)
                {
                    this.SetState(GrapplingHookControllerState.None);
                    this.StartLadder();
                }
            }
        }
        else
        {
            Vector3 a  = LadderController.GetPlayerWantedPos(this.m_Ladder, LadderControllerState.EnterDown);
            Vector3 a2 = LadderController.GetPlayerWantedDir(this.m_Ladder);
            if (a.magnitude < 0.1f || a2.magnitude < 0.1f)
            {
                this.Stop();
                return;
            }
            a  -= this.m_Player.gameObject.transform.position;
            a.y = 0f;
            a2 -= this.m_Player.gameObject.transform.forward;
            if (a.magnitude < 0.1f && a2.magnitude < 0.03f)
            {
                this.SetState(GrapplingHookControllerState.ThrowHook);
            }
        }
        this.UpdateLookDev();
    }
Beispiel #2
0
 private void SetState(GrapplingHookControllerState state)
 {
     this.m_State = state;
     this.m_Animator.SetInteger(this.m_IGrapplingHook, (int)this.m_State);
 }