刚体的碰撞分为三种:进入碰撞、碰撞中和结束碰撞。
下面是关于碰撞的三个系统方法:
- OnCollisionEnter():刚体与刚体刚开始接触时,立即调用此方法。
- OnCollisionStay():刚体与刚体刚碰撞过程中,每帧都会调用此方法,直至碰撞结束。
- OnCollisionExit():刚体与刚体刚停止接触时,调用此方法。
休眠:让模型变为禁止。
示例:如果有刚体与这个物体发生碰撞,程序立即把碰撞对象的信息显示在屏幕中,并且碰撞结束后将碰撞的刚体设置成休眠状态。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class E6_03 : MonoBehaviour
{
string show = null;
// Start is called before the first frame update
void Start()
{
show = "未发生碰撞";
}
// Update is called once per frame
void Update()
{
}
private void OnCollisionEnter(Collision collision)
{
show = "进入碰撞,碰撞名称:" + collision.gameObject.name;
}
private void OnCollisionStay(Collision collision)
{
show = "碰撞中,碰撞名称:" + collision.gameObject.name;
}
private void OnCollisionExit(Collision collision)
{
show = "碰撞结束,碰撞名称:" + collision.gameObject.name;
//collision.gameObject.rigidbody.Sleep();
collision.gameObject.GetComponent<Rigidbody>().Sleep();
}
private void OnGUI()
{
GUI.Label(new Rect(100,0,300,40),show);
}
}