所以,我想制作一个游戏,让玩家可以点击不同的物体并被拉向它们。为了达到这个目的,我使用了这段代码:
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应该对每个应用此脚本的对象都是唯一的?
如果你们中的一个人能够对此有所了解,我将感激不尽,谢谢你们。)
答案 0 :(得分:1)
当您点击时,附加了此脚本的每个对象都会检测到if(Input.GetMouseButton(0))
为真,因此同时向玩家施加一个力 - 将结束位置保留为平均值。
您需要添加一个限定符,用于检测玩家何时点击特定对象,而不是一般点击。