2016-10-23 12 views
0

基本的には、敵のスクリプトからプレイヤーの位置を取得しようとしています。私はプレーヤー自身からポジションをチェックしています。ポジションは常に同じです(テスト中に私はプレーヤーをまったく動かさない)。何らかの理由で、私が敵のスクリプトから変換位置を取得したとき、それは異なる数を返し、その数は毎回同じではありません。ここにコードのいくつかがありますユニティリファレンストランスフォームは必ずしも同じではない

(-0.5, 0.4, -6.7) 
(-0.5, 0.5, -6.7) 
(-0.5, 0.6, -6.7) 
(-1.2, 0.6, -5.5) 
(-1.3, 0.6, -6.7) 

オブジェクトの実際のコードは(-1.3、0.6、-6.7)です。私は変換を直接取得し、それをオブジェクトと敵から呼び出して同じ問題が発生する関数を作成しようとしました。ここで

作成し、プレーヤーのスクリプトを取得するコード行は次のとおりです。両方のオブジェクトが持っているノートとして

クラスで宣言

scr_Character player; 
アウェイク機能で

player = FindObjectOfType<scr_Character>(); 

キャラクターコントローラーと、それぞれのメッシュを保持するサブオブジェクトを持つリジッドボディー。

どのようなヘルプが大幅に評価されます。

編集:

y軸はゆっくりと約0.1ごとに20フレームほどで下る下と低くなるように思えます。その後5フレームごとに実際に正しいコードが印刷され、間違ったコードでカウントダウンされ続けます。

私はトランスフォームも取得する子オブジェクトを作成しましたが、同じ問題があるようです。

playerTrans = GetComponentInParent<Transform>(); 

編集再び: 剛体の重心がyの値のため、それはジッタを停止し、Xをロックすることによって責任があるようです。それが何を引き起こしているのかは分かりませんが、これは問題を修正したようです。

+0

プレーヤーオブジェクトへの参照はどうやって取得できますか?あなたのプレーヤーにタグを使用し、タグを検索します。 – Emad

+0

スクリプトを取得しても実際にオブジェクト自体が見つかりませんか? scr_Characterは、プレーヤーの位置を取得するために使用する関数を持つプレーヤのメインスクリプトです。 public Vector3 getPosition() { return transform.position; } –

答えて

0

剛体がすべての問題を引き起こしていたように見えますが、私はそれをすべての軸で位置を固定するように設定しました。それは問題を停止したようです。しかし、それは適切なtransform.positionを取得することから参照を停止するように見えるので、私はVector3自体を取得するためにpublic関数を作成しなければなりませんでした。

関連する問題