2016-08-29 3 views
1

私のプレイヤーはプレイ中に前方に走りますので、特定の軸に沿って彼の現在の位置を保存することは、更新関数内の変数にzと言ってその位置を他の場所で使用することです。私はまた、Z軸にプレーヤーの現在位置のような値を格納するために使用する必要があるデータ型の種類を知りたければ、これも可能です。私はどこかにこのコードを見て: -再生モードで特定の軸に沿ってプレーヤーの位置を取得する方法はありますか?

var playerPos:Vector3 = playerObject.transform.position; 

それは

答えて

2

あなたが接近していますあなたのコードの現在の構文はJavascript用です。

transform.positionを使用して、すべての軸の位置を取得します。 transform.positionVector3を返し、Vector3にはゲームオブジェクトの位置のすべての軸が含まれています。 Vector3x,yおよびzであり、すべてfloatデータ型である。 POSITION ACCESSING

playerObjectは以下の、あなたのゲームオブジェクトの名前であると仮定すると

は、個々の軸にアクセスする方法の一例です。

あなたはまた、
一度位置 を得ることができます

float z = playerObject.transform.position.z; 

軸Zを取得するにはY軸

float y = playerObject.transform.position.y; 

を取得するには、X軸

float x = playerObject.transform.position.x; 

を取得することと、それを変数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アクセスすることができます:あなたは(xyz)にしたい軸を変更し、新しいVector3を作成する必要があります

playerObject.transform.position.x = 6f; 

を、その新しい変数(Vector3)でtransform.position変数を変更します。あなたに

Vector3 newPos = playerObject.transform.position; 
newPos.x = 5f; 
newPos.y = 4f; 
newPos.z = 3f; 
playerObject.transform.position = newPos; 

私の提案は常にDocumentationを使用することです:

それはこのような何かをする必要があります。各プロパティまたはメソッドが返す内容が表示されます。これはあなたがこのような質問をするのを妨げるでしょう。たとえば、Transform.positionVector3を返します。

Vector3をクリックすると、そこからアクセスできる他の多くの変数が表示されます。

enter image description here

+1

これはまさに私が必要としていたものです。どうもありがとうございます... –

1

あなたのコードスニペットは、JavaScriptである最初の場所である場合、その作業はどのようにIDKの。

プレーヤーの位置は、Vector3で、単一の値(x、y、z)は浮動小数点です。だからこれはあなたに単一の値を与えるでしょう:

Vector3 pos = playerObject.transform.position; 
float x = pos.x; 
float y = pos.y; 
float z = pos.x; 

これは短縮することができますが、デモンストレーションの目的のために私はこのようにしました。明らかに何らかの形でplayerObjectを取得する必要があります。

このような何かを行うと、団結でのコーディングの非常に基本的に似ているので、あなたはそれに慣れていない場合、私はあなたがここに団結チュートリアルの表情を持ってお勧めします - >https://unity3d.com/learn/tutorials