Unity3D實現碰撞檢測方法技巧好簡單哦
2019/11/1 點擊(jī):
一、碰撞檢測方法
碰撞事件:當一個用剛體控製的物體(tǐ)與另外一個物體碰撞時,就會觸發(fā)碰撞事件(目標物體必須帶有(yǒu) Collider 組件),比如一款射擊類遊戲,發射出的子彈可能會射中敵人也可能會射(shè)中箱(xiāng)子(zǐ),我們就需要監測這個碰撞事件監測方法:
OnCollisionEnter(Collision):當碰撞開始(shǐ)時調用,隻會調用該方法一次
OnCollisionExit(Collision):當碰撞結(jié)束時調用,隻會調用該方法一次
OnCollisionStay(Collision):當碰撞(zhuàng)進行中時,會持續調用該方法
Collision參數:一個類,用於傳遞碰撞信息對象
Collision.gameObject屬性:當前物體碰撞的物體的引用
gameObject.name屬性:當前物體的名字
碰撞事件:當一個用剛體控製的物體(tǐ)與另外一個物體碰撞時,就會觸發(fā)碰撞事件(目標物體必須帶有(yǒu) Collider 組件),比如一款射擊類遊戲,發射出的子彈可能會射中敵人也可能會射(shè)中箱(xiāng)子(zǐ),我們就需要監測這個碰撞事件監測方法:
OnCollisionEnter(Collision):當碰撞開始(shǐ)時調用,隻會調用該方法一次
OnCollisionExit(Collision):當碰撞結(jié)束時調用,隻會調用該方法一次
OnCollisionStay(Collision):當碰撞(zhuàng)進行中時,會持續調用該方法
Collision參數:一個類,用於傳遞碰撞信息對象
Collision.gameObject屬性:當前物體碰撞的物體的引用
gameObject.name屬性:當前物體的名字
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Coll: MonoBehaviour
{
void Start()
{
Debug.Log("StartforColl"); //輸出調試
}
void Update()
{
}
void OnCollisionEnter(Collision coll)
{
if (coll.gameObject.name != "Ground") //如果當前(qián)接觸到的物體不是地麵
Debug.Log("與物體" + coll.gameObject.name + "發生碰(pèng)撞");
}
void OnCollisionStay(Collision coll)
{
if (coll.gameObject.name != "Ground")
Debug.Log("與物體" + coll.gameObject.name + "重合");
}
void OnCollisionExit(Collision coll)
{
if (coll.gameObject.name != "Ground")
Debug.Log("離開物(wù)體" + coll.gameObject.name);
}
}
各(gè)位(wèi)大俠,是不是實現碰撞檢測功能超級簡單啊~~~
- 上一篇:unity3d中利用網格(gé)+貼圖繪製血條/進度條 2019/11/1
- 下(xià)一篇:PYTHON調用(yòng)C++DLL的參數傳遞方法 2019/9/16
