您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity入门 >
    关于碰撞面检测方法
    时间:2015-05-06 08:52 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


    unity3d制作2D游戏中我们熟知的碰撞检测应该是碰撞点的检测 collision,那么我们如果要实现一个多边形的碰撞面检测要如何实现呢


    一:最笨的办法就是在脚本里取范围区间来判断面的碰撞

    二:可以给物体的每个面添加一个子物体来判断碰撞对象,如果是不规则的多边形这样做是很麻烦的

    三:我现在所使用的是用碰撞点的法线来判断所碰撞的面,用一个正方体来举例,首先拿到碰撞点的法线对象


            public void OnCollisionEnter(Collision collision)
            {
                foreach (ContactPoint contact in collision.contacts)
                {
                        contact.normal;
                }
            }


    然后判断 取到的normal对象的值 他是Vector3类型的对象  x值表示左右的法线角度正方体是 1和-1; y、z分别表示上下 和前后法线的值.

    那么我的判断是:

    if(contact.normal.x=1)
    {
          print("碰到右边");
    } 
    if(contact.normal.y=1)
    {
          print("碰到上边");
    }


    OK,赶快测试下吧。。。


    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家