记录一下人物捡东西的两种情况·:
一、人物经过就自动收集的血包或者别的收集物体
二、人物需要按下某键之后才能捡起来的道具
自动收集
在被收集的物体上挂载上碰撞体组件,勾选is trigger,使之变成为触发器
(注意人物也要挂上碰撞体组件和人物的tag挂上“Player”
private bool isCollected = false;
public GameObject pickUpEffect;//捡起来的特效
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player") && !isCollected)
{
isCollected = true;
//下面写需要实现的效果和事件
//音效
BGMManager.instance.PlaySFXSournds(6);
//拾取特效
Instantiate(pickUpEffect, transform.position, transform.rotation);
Destroy(gameObject);
UIController.instance.UpdateGemsNum();//别的脚本的函数,单例模式
}
}
靠近并按键后才捡起道具
给道具添加上碰撞体,勾选is trigger。然后给道具挂下面的脚本
private string playerTag = "Player";//玩家的tag
private bool isCanPick = false;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == playerTag)
{
isCanPick = true;
}
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.tag == playerTag)
{
isCanPick = false;
}
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.P))
{
if (isCanPick)
{
Destroy(gameObject);
Debug.Log("玩家捡取物品");
}
}
}
仔细调节一下碰撞体的大小,让人物捡道具比较轻松一点。