一、碰撞交互事件OnTriggerEnter
1、在場景中添加兩個幾何體(例如Cube和Sphere)
2、添加Rigidbody(剛體)component
點擊Cube(正方體)對象,在面板找到這個按鈕,添加component
搜索Rigidbody
默認狀態(tài)下collider(碰撞)是被開啟的。
3、創(chuàng)建C#腳本,增加OnTriggerEnter事件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class e : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnTriggerEnter(Collider other)
{
Debug.Log("碰撞發(fā)生啦!");
var renderer = GetComponent<Renderer>();
renderer.material.SetColor("_Color", Color.blue);
}
}
4、將shpere(球體)設(shè)置為觸發(fā)器,不需要添加剛體和代碼。
5、將正方體擺放在球體上方,自由降落,可以看到穿過球體的過程中執(zhí)行了碰撞交互事件(變藍色)
二、碰撞交互事件OnCollisionEnter
1、將Is Trigger取消勾選。
2、將代碼修改為:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class e : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnCollisionEnter(Collision collision)
{
Debug.Log("碰撞發(fā)生啦!");
var renderer = GetComponent<Renderer>();
renderer.material.SetColor("_Color", Color.blue);
}
}
三、總結(jié)
(1)OnTriggerEnter方法使用時,被動碰撞體必須包含一個 Collider(碰撞),一個Rigidbody(剛體),被動碰撞體上需要啟用isTrigger(觸發(fā)器)。剛體不能勾選IsKinematic。
(2)如果兩個GameObject都有Collider都開啟isTrigger時,或者兩個GameObject都沒有Rigidbody組件時,碰撞將不發(fā)生。
(3)當觸發(fā)OnTriggerEnter方法,OnCollisionEnter則不會被執(zhí)行。文章來源:http://www.zghlxwxcb.cn/news/detail-493067.html
官方:Collider.OnTriggerEnter(Collider)
官方:Collider.OnCollisionEnter(Collision)文章來源地址http://www.zghlxwxcb.cn/news/detail-493067.html
到了這里,關(guān)于【Unity】 基礎(chǔ)交互入門(碰撞交互事件OnTriggerEnter和OnCollisionEnter)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!