2017-08-17 9 views
0

私は、プレイヤーが別のオブジェクトをクリックしてそれらの方向に引っ張ることができるゲームを作りたいと思います。これをachiveするために、私はこのコードを使用:オブジェクトのクリックを検出する方法

void FixedUpdate() 
{ 
    if(Input.GetMouseButton(0)) 
    { 
    // Move the player 
    Rigidbody2D playerRigBod2D = thePlayer.GetComponent<Rigidbody2D>(); 
    playerRigBod2D.AddForce(transform.position - thePlayer.transform.position); 

    // Draw a line towards the player 
    GetComponent<LineRenderer>().SetPosition(1, thePlayer.transform.position);  
    } 
} 

これは、このプレハブのただ一つのオブジェクトと正常に動作しますが、私はより多くを追加すると、プレイヤーはこれらのオブジェクト間でのポイントに引っ張られます。 transform.positionは、このスクリプトが正しく適用されているオブジェクトのそれぞれに対して一意でなければならないので、私はなぜそれをどうにかして作ることはできませんか?

あなたの1がこの上でいくつかの光を当てることができれば、私はあなたがクリックされるとあなたに感謝:)

+0

このスクリプトは各プレハブにありますか? –

+0

'Input.GetMouseButton'は、マウスのクリックを検出するために使用されます。オブジェクトのクリックを検出するには、レイキャストまたはユニティ・イベント・システム(推奨)が必要です。 – Programmer

答えて

1

を、添付このスクリプトを持つすべてのオブジェクトは真if(Input.GetMouseButton(0))を検出しているので、すべての適用され、感謝するだろう同時にプレイヤーに力を与える - 終了位置を平均として残す。
一般的なクリックではなく、特定のオブジェクトをクリックしたときを検出する修飾子を追加する必要があります。

+0

正しい。オブジェクトがクリックされたことを検出しようとしている場合は、最も簡単な方法(しかしあまり柔軟ではありません)は[OnMouseUp](https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseUp.html)を実装することです。 – apk

+0

ありがとう!私は、マウスボタンが押されている間にプルが起きるようにしたいので、OnMouseDownではtrueに設定され、OnMouseではfalseに設定されています –

関連する問題