【问题标题】:Unity 5 2D make coins move towards playerUnity 5 2D 使硬币向玩家移动
【发布时间】:2017-02-20 02:42:53
【问题描述】:

我写了一个脚本,我附在Player 上,它在收集Magnet Power-Up 时,找到所有带有标签Treasure 的活动GameObjects 并让他们关注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.0f 以上
  • 你能澄清一下这部分吗? actually go towards and collide with the Player
  • @UriPopov 谢谢你,提高速度后它工作正常。

标签: unity3d 2d unityscript unity5


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多