【发布时间】: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