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

问题描述 投票:0回答:1

我编写了一个附加到

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);
            }
        }
    }
}
c# unity-game-engine 2d
1个回答
2
投票

您需要确保宝藏移动得比玩家快,这样它才能赶上初学者。然后在宝藏或玩家上编写一个小脚本来检查 onTriggerEnter 调用。当宝藏接触到玩家时,然后触发一个功能来摧毁或禁用它,并增加玩家的分数,但是这是适当的。

© www.soinside.com 2019 - 2024. All rights reserved.