using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Collider_Class : MonoBehaviour {
// 用于Collider类的测试
public GameObject OneBullet;
Transform Father;
void Start ()
{
Father = GameObject.FindGameObjectWithTag("Player").transform;
}
void Update ()
{
if (Input.GetKeyDown(KeyCode.F))
{
GameObject NewBullet = GameObject.Instantiate<GameObject>(OneBullet, Father);
NewBullet.transform.GetComponent<Rigidbody>().AddForce(NewBullet.transform.forward * 2000,ForceMode.Force);//增加力
NewBullet.name = "Monster";
Destroy(NewBullet,5f);//摧毁
}
}
#region// 触发器的三个事件
// 进入触发范围会调用一次
void OnTriggerEnter(Collider other)
{
Debug.Log("有人进入触发区,名字是:"+ other.transform.gameObject.name);
}
// 当持续在触发范围内发生时调用
void OnTriggerStay(Collider other)
{
Debug.Log("怪兽持续在触发区,名字是" + other.transform.gameObject.name);
}
// 离开触发范围会调用一次
void OnTriggerExit(Collider other)
{
Debug.Log("怪兽离开触发区,名字是" + other.transform.gameObject.name);
}
#endregion
#region //碰撞相关的三个方法
// 碰撞开始会调用一次
void OnCollisionEnter(Collision other)
{
Debug.Log("进入碰撞区,碰撞到的物体叫:"+ other.transform.gameObject);
other.transform.GetComponent<Rigidbody>().AddTorque(new Vector3(0,10,0),ForceMode.Impulse);//让他旋转起来
}
// 当碰撞持续发生时调用
void OnCollisionStay(Collision other)
{
//检测和谁发生碰撞
if (string.Equals("Monster", other.gameObject.name))//如果名字匹配
{
print("怪兽撞击我们的隔离墙");
}
Debug.Log("持续碰撞,碰撞到的物体叫:" + other.transform.gameObject);
}
// 碰撞结束会调用一次
void OnCollisionExit(Collision other)
{
Debug.Log("离开碰撞,离开碰撞的物体叫:" + other.transform.gameObject);
}
#endregion
}
Unity 触发检测与碰撞检测的示例
Leoysq2023-10-15 16:24
相关推荐
Martina_03216 分钟前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光寂寞的船1 天前
【Unity知识速递】第8期 IL2CPP 托管堆内存碎片与原生堆交互机制深度解析寂寞的船2 天前
【Unity知识速递】第5期 Unity 6.2 深度解析:AI Assistant 登场,World Space UI 与 Sentis 全面升级寂寞的船2 天前
【Unity知识速递】第4期 MCP for Unity:用 AI 自然语言控制编辑器淡海水2 天前
09-04-内存-Unity原生对象生命周期寂寞的船2 天前
【Unity知识速递】第6期 URP性能优化完全指南:从内存到GPU的三维调优寂寞的船3 天前
【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜tealcwu4 天前
【Unity基础】为什么游戏需要物理按键映射?从 Unity Input Manager 到跨引擎输入设计tealcwu5 天前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南淡海水5 天前
10-01-互操作-C#与C++边界的内存管理