亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用OnAnimatorove函數控制人物的移動

發布時間:2020-07-27 04:47:07 來源:網絡 閱讀:808 作者:一直都在a 欄目:開發技術

     unity中控制人物移動有很多方法,經過這么長時間的學習后,我總結了一些;

  1. 利用transform的translate方法控制人物移動;(結合動畫的控制就不說了)

        

 float mx = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime;
 float mz = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime;
 
 transform.translate(mx,0,mz);

 2.利用Rigidbody組件rigidbody.MovePosition()方法進行移動(包含動畫控制部分),鼠標控制人物移動;

void  FixedUpdate()
{
    float h=Input.GetAxis("Horizontal");
    float v=Input.GetAxis("Vertical");
    Move(h,v);
    Turning();
    Animating(h,v);
}
void Move(float h,float v)
{
    Vector3 movement;
    movement.Set(h,0,v);
    movement=movement.normalized*speed*Time.deltaTime;
    rigidbody.MovePosition(transform.position+movement);
}
void Turning()
{
    Ray camRay=Camera.main.ScreenPointToRay(Input.mousePosition);
    RayCastHit hitInfo;
    if(Physics.RayCast(camRay,out hitInfo,distance,floorMask))
    {
        Vector3 playerToMouse=hitInfo.point-transform.position;
        playerToMouse.y=0;
        Quaternion newRotation=Quaternion.LookRotation(playerToMouse);
        rigidbody.MovePosition(newRotation);
    }
}
void Animating(float h,float v)
{
    bool walking=h!=0||v!=0;
    m_ator.SetBool("Walk",walking);
}

3.還有一種就是利用Rigidbody的velocity屬性來控制人物移動了

 float moveSpeed =10;
    Animator m_ator;
    Rigidbody rigid;
    Vector3 m_Pos;
    void Start () {
        m_ator = transform.GetComponent<Animator>();
        rigid = transform.GetComponent<Rigidbody>();
        m_Pos = transform.position;
    }
 void Update () {
        float mx = Input.GetAxis("Horizontal") ;
        float mz = Input.GetAxis("Vertical") ;
        Vector3 nowVelocity = rigid.velocity;
        if (Mathf.Abs(mx) > 0.01f || Mathf.Abs(mz) > 0.01f)
        {
            m_Pos = transform.position;
             transform.LookAt(m_Pos+new Vector3(mx, 0, mz));
            rigid.velocity = new Vector3(mx * moveSpeed, nowVelocity.y * moveSpeed, mz * moveSpeed);
            m_ator.SetBool("Walk",true);
        }
        else {
            rigid.velocity = new Vector3(0,nowVelocity.y*moveSpeed,0);
            m_ator.SetBool("Walk",false);
        }
        
       
 }


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻江县| 砚山县| 万安县| 洞口县| 大洼县| 安平县| 靖远县| 湘潭市| 筠连县| 六盘水市| 育儿| 衡南县| 安平县| 蒲江县| 巢湖市| 抚松县| 彩票| 平塘县| 罗城| 通榆县| 元谋县| 金沙县| 麦盖提县| 新田县| 刚察县| 康平县| 韶山市| 德格县| 中江县| 什邡市| 东方市| 永靖县| 定日县| 习水县| 鹤壁市| 将乐县| 平顺县| 吴桥县| 麟游县| 临颍县| 河北区|