Unity的C#编程教程_4_游戏对象的碰撞检测
- 2020 年 7 月 13 日
- AI
- C/C++/C#
Collider of GameObjects
- 在场景新建一个 Cube 对象,比如取名 PowerUp
- 然后在素材文件夹新建一个 material,设置个颜色
- 然后把 material 拖动到游戏对象上进行着色
- Box Collider
- Is Trigger 打勾,表示用于“触发事件”,同时被物理引擎忽略(即可以穿透,不是个实在的物体)
- 增加 Rigidbody 组件
- 新建 C# script,命名为 Collectable,挂载到游戏对象下的组件中,并打开编辑
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Collectable : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
// 碰撞检测的专用方法之一:
// 做碰撞检测的前提是有 Box Collider + Rigibody
private void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
// 在销毁对象之前,可以给我们的 Player 加 PowerUp 的光环等动作
Destroy(gameObject);
// 也可以写成 Destroy(this.gameObject);
}
}
}
- 把 Player 游戏对象的 Tag 设置成 Player
- 记住存储编辑好的脚本文件
- 启动游戏,当我们 Player 对象移动碰到 PowerUp 游戏对象的时候,PowerUp 游戏对象消失
- 这个在游戏中可以用来比如吃金币,捡道具,吃Buff等