unity吃金币脚本
时间: 2024-12-29 11:17:51 浏览: 53
### Unity 游戏开发中实现吃金币功能
#### GoldCoin 脚本设计
为了实现在游戏中收集金币的功能,`GoldCoin`脚本定义了一个静态事件 `OnGoldCoinPickedUp`。当玩家角色与金币发生碰撞时,会调用 `OnTriggerEnter` 方法来触发该事件[^1]。
```csharp
using UnityEngine;
public class GoldCoin : MonoBehaviour
{
public static event System.Action OnGoldCoinPickedUp;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
// 触发拾取金币事件
OnGoldCoinPickedUp?.Invoke();
// 销毁当前金币对象
Destroy(gameObject);
}
}
}
```
#### ScoreManager 订阅事件处理逻辑
为了让得分机制生效,在 `ScoreManager` 中实现了对上述事件的监听。每当有金币被捡起的时候,都会执行相应的加分操作。
```csharp
using UnityEngine;
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
private int score = 0;
private Text scoreText;
private void Start()
{
scoreText = GetComponent<Text>();
// 注册金币拾取事件处理器
GoldCoin.OnGoldCoinPickedUp += HandleGoldCoinPickedUp;
UpdateScoreDisplay();
}
private void OnDestroy()
{
// 取消注册防止内存泄漏
GoldCoin.OnGoldCoinPickedUp -= HandleGoldCoinPickedUp;
}
private void HandleGoldCoinPickedUp()
{
++score;
UpdateScoreDisplay();
}
private void UpdateScoreDisplay()
{
scoreText.text = $"Score: {score}";
}
}
```
#### 创建金币预制件
按照项目需求创建一个圆柱形物体作为金币模型,并开启其触发器属性以便能够检测与其他物体之间的接触情况。之后为其附加名为 `CoinControl` 的控制脚本并保存为预制件以供后续重复利用[^3]。
阅读全文
相关推荐


















