我编写了一个附加到
Player
的脚本,在收集 Magnet
Power-Up
时,找到所有带有标签 GameObjects
的活动 Treasure
并让它们跟随 Player
。
问题是,我希望所有活跃的
Treasure
GameObjects
不仅跟随,而且实际上走向 Player
并与之碰撞,以便收集积分。
下面是我到目前为止的代码,感谢任何帮助。
using UnityEngine;
using System.Collections;
public class TreasureFollowPlayer : MonoBehaviour {
public GameObject[] treasures;
public bool magnetPowerUpEnabled = false;
void OnTriggerEnter2D(Collider2D col)
{
if (col.CompareTag("Magnetpowerup"))
{
col.gameObject.SetActive(false);
magnetPowerUpEnabled = true;
}
}
// Update is called once per frame
void Update() {
if (magnetPowerUpEnabled)
{
treasures = GameObject.FindGameObjectsWithTag("Treasure");
foreach (var treasure in treasures)
{
treasure.transform.position = Vector2.MoveTowards(treasure.transform.position, transform.position, 1.0f * Time.deltaTime);
}
}
}
}
您需要确保宝藏移动得比玩家快,这样它才能赶上初学者。然后在宝藏或玩家上编写一个小脚本来检查 onTriggerEnter 调用。当宝藏接触到玩家时,然后触发一个功能来摧毁或禁用它,并增加玩家的分数,但是这是适当的。