基本的には、敵のスクリプトからプレイヤーの位置を取得しようとしています。私はプレーヤー自身からポジションをチェックしています。ポジションは常に同じです(テスト中に私はプレーヤーをまったく動かさない)。何らかの理由で、私が敵のスクリプトから変換位置を取得したとき、それは異なる数を返し、その数は毎回同じではありません。ここにコードのいくつかがありますユニティリファレンストランスフォームは必ずしも同じではない
(-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をロックすることによって責任があるようです。それが何を引き起こしているのかは分かりませんが、これは問題を修正したようです。
プレーヤーオブジェクトへの参照はどうやって取得できますか?あなたのプレーヤーにタグを使用し、タグを検索します。 – Emad
スクリプトを取得しても実際にオブジェクト自体が見つかりませんか? scr_Characterは、プレーヤーの位置を取得するために使用する関数を持つプレーヤのメインスクリプトです。 public Vector3 getPosition() { return transform.position; } –