zoukankan      html  css  js  c++  java
  • Unity3D游戏开发之简单的碰撞检測

    在“Project”面板中单击“Create”旁边的小三角,选择“javascript”创建一个名为“collision”的js文件。双击它,系统启动Monodevelop来编辑js文件。
            清除里面默认创建的代码。写上。

            function OnCollisionEnter(obj:Collision)
            {

                    Debug.Log(obj.gameObject.name);
            }


            onCollisionEnter函数解释:这个函数是在被绑定的物体与其它物体发生碰撞的时候被调用。


            obj參数解释:被撞的物体參数,类型是Collision。在本例中就是“地板”.携带变量gameObject,是我们碰撞的物体name,就是我们为地板设置的name。

    将脚本文件拖到球上实现绑定:


            这步非常easy操作,在"Project"面板中选中collision脚本,按住鼠标左键不放。直接拖入“Hierarchie”面板中,放到立方体上,松开鼠标即完毕绑定。




    点顶部的小三角执行程序:


            程序执行结果,当球与地板碰撞时,unity3d底部状态栏会输出地板的name

            

            搞定。 

    OnControllerColliderHit(),这个是用于角色碰撞的。物体假设附加了Charactor Controller(Unity自带的用于角色控制的脚本)则使用这个函数检測碰撞,这是不须要加刚体的。一般的刚体之间碰撞使用OnCollisionEnter(),范围触发用OnTriggerEnter(),假设你是让两个CUBE碰撞。请确保当中一个附加了RigidBody,

     collision是个变量。通过它能够获得你所碰撞的目标的属性以及碰撞点信息和相对速度,如:collision.collider.某个组件或脚本。 void OnCollisionEnter(Collision collision){if(collision.collider.tag=="enemy")//tag是物体的标签,相当于物体的类别名称。

    在每个物体的组件栏(也就是加脚本的那个区域)的最上面能够找到,默认的是UnTagged,也就是没有标签,你找找。然后点击会出现一个下拉列表,默认的已有几个Tag,你也能够加自己定义的。点击下拉列表最下方的Add Tag就能够加Tag,最后选择一个Tag作为物体的名称就能够了。

    {Destroy(collision.collider.gameObject);//假设检測到对方是敌人,则消灭对方。

    }}

  • 相关阅读:
    hdoj 3376,2686 Matrix Again 【最小费用最大流】
    Trustie站点代码托管使用指南
    POJ 2442 Sequence(堆的使用练习)
    猛犸机器学习开发实践
    关于《金字塔原理》的主要内容
    实战案例:如何快速打造1000万+播放量的抖音网红?
    【限时特惠】网易云易盾验证码全线95折!智能无感知、滑动拼图、点选验证-7天免费体验!
    当GDPR来敲门,中国互联网企业该如何应对?
    H5活动产品设计指南基础版
    Box(视图组件)如何在多个页面不同视觉规范下的复用
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6789101.html
Copyright © 2011-2022 走看看