zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    NSURLConnection与NSURLSession的区别
    微信支付流程
    支付宝支付流程
    配置openfire问题(Oracle)
    id和instancetype
    数组和集合
    静态变量,静态常量以及全局变量
    内存的那些事
    Block循环引用解析
    线程的几个小问题
  • 原文地址:https://www.cnblogs.com/Unity3Dqishituan/p/4074839.html
Copyright © 2011-2022 走看看