Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在播放模式下,如何获得播放器沿特定轴的位置?_C#_Unity3d - Fatal编程技术网

C# 在播放模式下,如何获得播放器沿特定轴的位置?

C# 在播放模式下,如何获得播放器沿特定轴的位置?,c#,unity3d,C#,Unity3d,我的播放器在播放期间向前运行,所以我想做的是将其当前位置存储在特定轴上,比如在更新函数内的变量中存储z,并在其他位置使用该位置。我还想知道,如果可能的话,我们必须使用什么样的数据类型来存储这些值,比如球员在z轴上的当前位置。我在某处看到了这个代码:- var playerPos:Vector3 = playerObject.transform.position; 但是idk如果它是在第一个地方,它是如何工作的您的代码片段是用javascript编写的 播放器位置是一个向量3,其中单个值(x、y

我的播放器在播放期间向前运行,所以我想做的是将其当前位置存储在特定轴上,比如在更新函数内的变量中存储z,并在其他位置使用该位置。我还想知道,如果可能的话,我们必须使用什么样的数据类型来存储这些值,比如球员在z轴上的当前位置。我在某处看到了这个代码:-

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
时,您将看到许多可以从中访问的其他变量