所以我有一個操縱桿物件,它為每個軸提供了 -1 到 1 的值。
float horizontalMove = joystick.Horizontal * speed;
float verticalMove = joystick.Vertical * speed;
rb.velocity = new Vector3(horizontalMove, verticalMove, 0);
現在,我想要的是,無論你向每個方向拉多遠的操縱桿,它總是會導致速度 1。就像我當前的代碼的作業方式一樣,但我的操縱桿總是被拉到邊緣。我也做到了。1個方向可以設定為0。
uj5u.com熱心網友回復:
您可以使用.normalized向量的屬性,以確保它的長度為 1 或等于Vector3.zero。
rb.velocity = new Vector3(horizontalMove, verticalMove, 0).normalized;
與Mathf.Sign在每個軸上使用不同,矢量的角度被保留,因此玩家仍然可以在任何方向上移動,而不僅僅是沿著軸和對角線。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/431626.html
