簡體   English   中英

C#Player在Unity中移動

[英]C# Player move in Unity

該代碼可以很好地移動帶有左右箭頭的剛體,但是我不明白使用maxVelocity和absVelX的意義是什么,我不知道他們在代碼中的工作..當我刪除兩者時,它都可以工作非常好,但是在高級游戲水平上我似乎都需要。 這是林達(lynda)的課程表,名為“傑西·弗里曼(Jesse Freeman)的Unity 2d基本訓練”

using UnityEngine;

using System.Collections;

public class Player : MonoBehaviour {

public float speed=10f;
public Vector2 maxVelocity=new Vector2(3,5);
public bool standing;
public float jetSpeed=15f;

// Update is called once per frame
void Update () {
            //Force resetted each frame
            var forceX = 0f;
            var forceY = 0f;
            var absVelX = Mathf.Abs (rigidbody2D.velocity.x);
            var absVelY = Mathf.Abs (rigidbody2D.velocity.y);

            if (Input.GetKey ("right")) {
                    if (absVelX < maxVelocity.x)
                            forceX = speed;

            transform.localScale=new Vector3(1,1,1);//Sprite orignal pose

            } else if (Input.GetKey ("left")) {
                    if (absVelX < maxVelocity.x)
                            forceX = -speed;

            transform.localScale=new Vector3(-1,1,1);//Sprite reversal pose

            }
    rigidbody2D.AddForce(new Vector2(forceX,forceY));
}
}

從提供的代碼中可以看出,這些變量是定義速度的極限,並分配給了rigidbody2D.velocity.x (對abs的調用是比較絕對矢量的大小,而不僅僅是坐標)。

尚不清楚是否設置了“ rigidbody2D.velocity.x ,但是代碼假定它可能會比3並且程序會在該最大值處中斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM