C# 在播放模式下,如何获得播放器沿特定轴的位置?
我的播放器在播放期间向前运行,所以我想做的是将其当前位置存储在特定轴上,比如在更新函数内的变量中存储z,并在其他位置使用该位置。我还想知道,如果可能的话,我们必须使用什么样的数据类型来存储这些值,比如球员在z轴上的当前位置。我在某处看到了这个代码:-C# 在播放模式下,如何获得播放器沿特定轴的位置?,c#,unity3d,C#,Unity3d,我的播放器在播放期间向前运行,所以我想做的是将其当前位置存储在特定轴上,比如在更新函数内的变量中存储z,并在其他位置使用该位置。我还想知道,如果可能的话,我们必须使用什么样的数据类型来存储这些值,比如球员在z轴上的当前位置。我在某处看到了这个代码:- var playerPos:Vector3 = playerObject.transform.position; 但是idk如果它是在第一个地方,它是如何工作的您的代码片段是用javascript编写的 播放器位置是一个向量3,其中单个值(x、y
var playerPos:Vector3 = playerObject.transform.position;
但是idk如果它是在第一个地方,它是如何工作的您的代码片段是用javascript编写的 播放器位置是一个向量3,其中单个值(x、y和z)是浮动的。因此,这将为您提供单个值:
Vector3 pos = playerObject.transform.position;
float x = pos.x;
float y = pos.y;
float z = pos.x;
这可以缩短,但为了演示的目的,我这样做了。显然,您需要以某种方式获取playerObject
这样做就像在unity中编写代码的基础,因此,如果您不熟悉这一点,我建议您在这里查看unity教程->很接近,但代码中的当前语法是针对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)的步骤
修改位置:
修改位置与访问位置不同。你可以这样访问
float x = playerObject.transform.position.x;
但是不能像这样更改x
:
playerObject.transform.position.x = 6f;
Vector3 newPos = playerObject.transform.position;
newPos.x = 5f;
newPos.y = 4f;
newPos.z = 3f;
playerObject.transform.position = newPos;
必须创建一个新的Vector3
,修改要修改的轴(x
、y
和z
),然后使用该新变量(Vector3
)更改transform.position
变量
应该是这样的:
playerObject.transform.position.x = 6f;
Vector3 newPos = playerObject.transform.position;
newPos.x = 5f;
newPos.y = 4f;
newPos.z = 3f;
playerObject.transform.position = newPos;
我给你的建议是永远使用这个词。它显示每个属性或方法返回的内容。这将阻止你问这样的问题。例如,返回向量3
当您单击该矢量3
时,您将看到许多可以从中访问的其他变量