Unity 5 2D让硬币向玩家移动

时间:2016-10-11 14:11:29

标签: unity3d 2d unityscript unity5

我编写了一个附加到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);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

你需要确保宝藏比玩家更快地移动,这样才能赶上初学者。然后在宝藏或播放器上有一个小脚本,用于检查onTriggerEnter调用。当宝藏触及玩家然后触发一个破坏或禁用它的功能并增加玩家分数然而是合适的。