Exemplo n.º 1
0
    public void Npc_Move(Vector3 vector)
    {
        m_AnimatorManager.RoleMoveCtrl();
        if (m_AnimatorManager.GetRotation())
        {
            //移动;
            Vector3 directionVector = vector - this.transform.position;

            Vector3 forwardVector = this.transform.forward.normalized;

            forwardVector -= new Vector3(0, forwardVector.y, 0);

            this.transform.forward = Vector3.Lerp(forwardVector, directionVector, 0.3f);
        }
    }
Exemplo n.º 2
0
    void PlayMove(float x, float y, float degrees)
    {
        if (Mathf.Approximately(x, 0.0f) && Mathf.Approximately(y, 0.0f))
        {
            return;
        }

        m_AnimatorManager.RoleMoveCtrl();

        Vector3 q = this.transform.localEulerAngles;

        q.y = 90 - degrees;

        Quaternion to = Quaternion.Euler(q);

        m_AnimatorManager.SetRotation(to);
    }
Exemplo n.º 3
0
    void Update()
    {
        if (Obj == null)
        {
            return;
        }

        if (!mCanMove)
        {
            return;
        }

        Obj.mPosition = Obj.mGameObject.transform.position;
        if (Obj is CRoleObject)
        {
            RangeTools.MotifyRoleAoi();

            return;
        }

        if (!mTargetPos.Equals(Vector3.zero))
        {
            if (mMoveTarget != null)
            {
                mTargetPos = mMoveTarget.mPosition;
            }

            if (UtilTools.Vec2Distance(mObj.mPosition, mTargetPos) > mTargetDistance)
            {
                Vector3 dir = UtilTools.Vec3Direction(mTargetPos, mObj.mPosition);
                mAnimatorManager.SetRotation(dir);
                mAnimatorManager.RoleMoveCtrl();
            }
            else
            {
                mTargetPos = Vector3.zero;

                if (mOnArrive != null)
                {
                    mOnArrive();
                }
            }
        }
    }