Unity3D 代理的使用及獲取兩個碰撞器的碰撞點


歡迎來到unity學習unity培訓、unity企業培訓教育專區,這里有很多U3D資源U3D培訓視頻U3D教程U3D常見問題U3D項目源碼,我們致力於打造業內unity3d培訓、學習第一品牌。

 Unity中的事件機制封裝的並不是特別好,如果學過AS3的,會發現再也沒有比AS3封裝的更完美的了,包括事件機制用起來都是那么的完美。步入正題:
首先創建一個類,比如MyClass,在MyClass中定義代理:

public delegate void ColorChangeEventHandler(Color c, string Tag);

public event ColorChangeEventHandler OnColorChangeEvent;

 

如果在MyClass中調用了OnColorChangeEvent,又想讓其他類也接收到此消息,可以在希望接收到此消息到類中添加該代理到具體實現方法,比如:

ColorPicker=GameObject.Find("RTColorPicker").GetComponent<MyClass>();
ColorPicker.OnColorChangeEvent += OnColorChange;
void OnColorChange(Color rgbColor, string tagStr)
{
 
}

 

Unity3D 獲取兩個碰撞器的碰撞點

public virtual void DoCollisionEnter(Collision pOther)
{
                ContactPoint contact = pOther.contacts[0];
                Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal);
                Vector3 pos = contact.point;    //這個就是碰撞點
                Instantiate(MeteorLightPrefab, pos, rot) ;  //在碰撞點產生爆炸火焰
}

更多精彩請點擊 http://www.gopedu.com/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM