Example #1
0
    /// <summary>
    /// 委托给网格导航移动
    /// </summary>
    //protected void NavMeshMove(Vector3 pos, float radius = 0.5f)
    //{
    //    IsClearTargetPosition = false;

    //    NavMeshPosition = FixNavMeshPosition(pos);

    //    Agent.transform.position = FixNavMeshPosition(Agent.transform.position);

    //    Agent.radius = radius;
    //    Agent.speed = Attr.MoveSpeed;

    //    Agent.SetDestination(NavMeshPosition);
    //}

    protected void ControllerMove(Vector3 offset, bool isUseGravity = false)
    {
        if (offset == Vector3.zero)
        {
            SetBool("move", false);
            return;
        }

        SetBool("move", true);
        Controller.Move(offset * Time.deltaTime);

        if (isUseGravity)
        {
            Vector3 pos;
            if (XUtility.GetMoveLayerHeight(transform.position, out pos) && transform.position.y > pos.y)
            {
                Controller.Move(Physics.gravity * Time.deltaTime);
            }
        }
    }