2016-05-29 34 views
0

Unityで磁石PowerUpを作成しようとしています。私は2つの問題を抱えていUnityでの磁石スクリプトの問題

public GameObject attractedTo; 

private float strengthOfAttraction = 3f; 

void FixedUpdate() 
    { 
    Vector3 direction = attractedTo.transform.position - transform.position; 
    gameObject.GetComponent<Rigidbody>().AddForce (strengthOfAttraction * direction); 
    } 

: 1のみ、新たに出現した硬貨は、何らかの理由でプレイヤー 2に魅了されているが、コインはまっすぐにのみ移動私はコインゲームオブジェクトに添付このスクリプトを使用しましたほとんどの人がプレイヤーを通り過ぎます。

これをどのように修正できるのですか? ご協力いただければ幸いです!

+0

re1。乗算にTime.fixedDeltaTimeを追加し、何が起こるかを見てください。あなたはまっすぐ行くのに何を期待しますか? re2。あなたはコインをどのように産み出すのですか?どのコードが 'attractedTo'フィールドの値を設定しますか? –

答えて

0

コードの主な問題。コインをプレイヤーに近づける方法については、手順のロジックを再作成する必要があります。

最初に大きな問題はこれです。

void FixedUpdate()したがって、1フレームあたりの時間が固定されます。 Vector3 direction = attractedTo.transform.position - transform.position;

あなたのゲームオブジェクトでgameObject.GetComponent<Rigidbody>().AddForce (strengthOfAttraction * direction); 独自のコンポーネントを見つけることを試みるので、フレームが再計算されますし、新しいポインタ名directionを作成する:あなたは、変数のVector3を宣言し しようとしています。次にAddforceを呼び出します。 AddForce。そしてあなたは時間を使っていませんでした。

Addforce入力した方向に応じて剛体を押し込みます。それで、それはまっすぐに行くでしょう。そしてあなたはこれを毎秒固定フレーム量で行います。

最初に手順を修正してください。私の推薦はこれです。

スムーズフォロースクリプトを使用してください。 Unity3Dがあなたのリファレンスを取得しました。また、エディタのスクリプトセクションにもインストールされています。問題が見つかったら、このリンクに行き、彼のスクリプトをチェックしてください。

Smooth Follow Script

[更新回答]

だけ新しいコインを集めてきている第二の問題のために。

このような状況をすべて確認してください。

  1. あなたのプレーヤーは新しく生まれ、attractedTo変数は空白です。
  2. 新しいスポーンされていないコインはすでにプレイヤーを参照しているはずです。プレイヤーをスポーンした場合、プレイヤーに引き付ける必要があることをすべてコインに伝える必要はありません。 - > Player SpawnedのときにattractedToを割り当てます。

インスタントイニシアティブでこれを達成してから、TAGを持つすべてのゲームオブジェクトを見つけることができます。次に、getcomponentを次に割り当てますattractedTo

  1. あなたの非生存コインは、スクリプトコンポーネントを持っていません。
  2. あなたのスポーンされていないコインは無効になっています。
+0

お返事ありがとうございます!提案した後、私はこれを試しました: \t \t void Update() \t {ベクトル3方向= attractedTo.position + attractedTo.up *高さ - attractedTo.forward *距離; \t \t transform.position = Vector3.MoveTowards(transform.position、attractedTo.position、strengthOfAttraction * Time.deltaTime);} – Dragonfly

+0

さて、私の第二の問題は解決されたが、再び、唯一の新しく出現コインはプレイヤーにそこに魅了されています私は理由を知らない:/ – Dragonfly

+0

check返信返信 – Aizen

関連する問題