[英]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.