我的球员在比赛期间向前跑,所以我想做的是沿着特定轴存储他的当前位置,让我们在更新函数内的变量中说 z 并在其他地方使用该位置。我还想知道我们必须使用哪种数据类型来存储这样的值,例如玩家在 z 轴上的当前位置,如果这样做甚至可能的话。我在某处看到这段代码:-
var playerPos:Vector3 = playerObject.transform.position;
但是我不知道它是如何工作的
最佳答案
你很接近,但你代码中的当前语法是针对 Javascript 的。
您使用 transform.position
获取所有轴的位置。 transform.position
返回一个 Vector3
并且 Vector3
包含游戏对象位置的所有轴。Vector3
有 x
、y
和 z
属性都是 float
数据类型。
访问位置:
假设 playerObject
是您的游戏对象的名称,下面是如何访问每个轴的示例。
获取X轴
float x = playerObject.transform.position.x;
获取Y轴
float y = playerObject.transform.position.y;
获取Z轴
float z = playerObject.transform.position.z;
您还可以一次获取位置并将其存储到Vector3
变量中,然后从那里访问每个单独的轴:
获取所有轴(x,y,z)
Vector3 playerPos = playerObject.transform.position;
float x = playerPos.x;
float y = playerPos.y;
float z = playerPos.z;
修改位置:
修改位置不同于访问它。你可以这样访问
float x = playerObject.transform.position.x;
但是不能像这样改变x
:
playerObject.transform.position.x = 6f;
您必须创建一个新的Vector3
,修改您想要的轴(x
、y
和z
),然后用新变量 (Vector3
) 更改 transform.position
变量。
它应该是这样的:
Vector3 newPos = playerObject.transform.position;
newPos.x = 5f;
newPos.y = 4f;
newPos.z = 3f;
playerObject.transform.position = newPos;
我对您的建议是始终使用 Documentation .它向您展示了每个属性或方法返回的内容。这将防止你问这样的问题。例如,Transform.position返回 Vector3
。
当您单击那个 Vector3
时,您会看到许多其他可以从中访问的变量。
关于c# - 我怎样才能在播放模式下沿特定轴获取播放器的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39203238/