簡體   English   中英

如何使用 c# 在 Unity 中僅修改 1 個維度?

[英]How do i modify only 1 dimension in Unity using c#?

我正在做一個簡單的游戲來開始統一,有一個立方體可以直行並躲避隨機產生的其他立方體(障礙物)。 為了使障礙物總是在玩家面前產生,我設置了一個代碼,使 7 個產生 position(塊在其中隨機生成)跟隨玩家的坐標,但在 Z 上加 100,因此它們不會在玩家上方生成。 現在,我的問題是,當生成障礙物時,它們的 X position 也會改變,當我 go 與玩家一起向右或向左時,它們會從平台上掉下來。 我怎樣才能讓他們只跟隨播放器的 Z position 而不是 X? 這是使生成器更改 position 的代碼:

public class MoveSpawn : MonoBehaviour
{

    public Transform player;
    public Vector3 offset;


    // Update is called once per frame
    void Update()
    {
        transform.position = player.position + offset;

    }
}

在將其添加到偏移量之前,我只需將玩家的 position 乘以 (0,0,1) (換句話說, Vector3.forward ):

public class MoveSpawn : MonoBehaviour
{

    public Transform player;
    public Vector3 offset;


    // Update is called once per frame
    void Update()
    {
        transform.position = player.position * Vector3.forward + offset;

    }
}

哦,這很容易。 因此,如果您只想查看 Cube 或 Unity 中的任何 object 的 Z(或任何其他)坐標,您可以簡單地使用: transform.position.z這與向量的操作相同。 像這樣的東西:

Vector3 offset = ...;
Debug.Log(offset.x) //returns x coordinate of offset

暫無
暫無

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

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