我编写了一个附加到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);
}
}
}
}
答案 0 :(得分:2)
你需要确保宝藏比玩家更快地移动,这样才能赶上初学者。然后在宝藏或播放器上有一个小脚本,用于检查onTriggerEnter调用。当宝藏触及玩家然后触发一个破坏或禁用它的功能并增加玩家分数然而是合适的。