0

所以,我想做一个游戏,玩家可以点击不同的物体并被拉向它们。为了实现这一点,我使用了以下代码:

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 对于每个应用了这个脚本的对象来说应该是唯一的吗?

如果你们中的一个人能对此有所了解,我将不胜感激,谢谢:)

4

1 回答 1

1

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

于 2017-08-17T15:40:16.757 回答