Unity的C#编程教程_4_游戏对象的碰撞检测

Collider of GameObjects

  • 在场景新建一个 Cube 对象,比如取名 PowerUp
  • 然后在素材文件夹新建一个 material,设置个颜色
  • 然后把 material 拖动到游戏对象上进行着色
  • Box Collider
    • Is Trigger 打勾,表示用于“触发事件”,同时被物理引擎忽略(即可以穿透,不是个实在的物体)
  • 增加 Rigidbody 组件
    • Use Gravity 去除勾,确保不受重力影响
  • 新建 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等
Tags: