如何检测单击对象

时间:2017-08-17 15:35:26

标签: c# unity3d unity5 unity3d-2dtools unity3d-5

所以,我想制作一个游戏,让玩家可以点击不同的物体并被拉向它们。为了达到这个目的,我使用了这段代码:

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 :(得分:1)

当您点击时,附加了此脚本的每个对象都会检测到if(Input.GetMouseButton(0))为真,因此同时向玩家施加一个力 - 将结束位置保留为平均值。
您需要添加一个限定符,用于检测玩家何时点击特定对象,而不是一般点击。