• Unity2D碰撞检测 2018-04-24 22:50:59
    很简单的一个判断:打飞机游戏中检测飞机与敌方子弹是否碰撞。写起来却废了我这个菜鸟不少功夫。 最开始, 我想到的是用OnTriggerEnter检测飞机与子弹相撞,但是无论怎么调试,都无法触发,只能作罢。这一点以后要...

         很简单的一个判断:打飞机游戏中检测飞机与敌方子弹是否碰撞。写起来却废了我这个菜鸟不少功夫

         最开始, 我想到的是用OnTriggerEnter检测飞机与子弹相撞,但是无论怎么调试,都无法触发,只能作罢。这一点以后要了解一下,为什么无法触发。或许是自己一直没有写对?

      private void OnTriggerEnter2D(Collider2D coll)
       {
            if(coll.tag == "Player")
            {
                Debug.Log("碰撞发生");
                GameObject.Destroy(this.gameObject);
            }
        }

            然后就想到用OnColliderEnter检测碰撞。这里要注意OnColliderEnter中的参数Collision与OnTriggerEnter中的参数Collider的区别。Collision.gameObject是与当前物体碰撞的物体的引用,而Collider.gameObject是进入触发器范围内的目标物体的引用。也就是说:Collision.gameObject指向的是与OnColliderEnter方法所在脚本所挂载的游戏物体碰撞的游戏物体(对方);Collider.gameObject指向的是OnTriggerEnter方法所在脚本所挂载的游戏物体自身(因为触发器包裹的一般就是游戏物体自身)。

        private void OnCollisionEnter2D(Collision2D coll)
        {
            if (coll.gameObject.tag == "EnemyBullet")
            {
                Debug.Log("碰撞发生(角色脚本)");
                GameObject.Destroy(this.gameObject);
                Debug.Log("玩家角色被销毁");
            }
        }
        private void OnCollisionEnter2D(Collision2D coll)
        {
            if (coll.gameObject.tag == "Player")
            {
                Debug.Log("碰撞发生(子弹脚本)");
                GameObject.Destroy(this.gameObject);
                Debug.Log("敌方子弹被销毁");
            }
        }


            以上是两个脚本中的代码,前者挂载在飞机上,后者挂载在敌方子弹上。另外,如果不销毁游戏物体,仅做输出调试的话,会发现飞机与子弹相撞时子弹把飞机“推走了”。这显然不符合需求,特别是如果后期需要给飞机添加无敌功能的时候。这时我们可以把飞机的Rigidbody 2D组件下的Body Type 这个属性修改为“Kinematic(运动学的)”。至于Body Type的三个选项的详细介绍,可以参考这篇博客:https://blog.csdn.net/SerenaHaven/article/details/78851089

    展开全文
  • (一)Box Collider2D 碰撞检测 如图 依次给upwall、downwall、leftwall、rightwall设置“Tag”为“Wall”,并添加“Box Collider2D”,设置其“Size”,如下图 点击“Wall”就有了图1的四面墙。 设置“Image...
  • Add Component添加Box Collider 2D碰撞体)Add Component添加Rigidbody(刚体)首先对碰撞体和刚体做一个简单的区分两句话概括碰撞体: 碰撞体才能被射线检测到,否则无法被检测 碰撞体是产生碰撞的前提两句话...
  • 不论是2d还是3d的物体碰撞、触发检测之前,都要添加相应的组件collider,简单介绍几种比较常见的,Box Collider/Box Collider2D(箱式对撞机)、Capsule Collider/Capsule Collider2D(胶囊对撞机)、Sphere Collider/...
  • 2D碰撞器和3D碰撞器之间是不会产生碰撞的,可以理解为2D3D之间就是两个不同的世界,互不干扰
  • Unity2D碰撞事件解析 2017-08-22 16:37:21
    参见 http://www.xuanyusong.com/archives/3262
  • UGUI Image的2d碰撞检测 2017-03-14 14:10:33
    2d的碰撞检测和3d的碰撞检测比较相似,发生碰撞的两个对象至少有一个带有刚体组件,两个对象都要有碰撞器,和3d不同之处在于2d碰撞的刚体使用的是rigidbody2D,碰撞器使用的是BoxCollider2D。 操作示例: 1创建2个...
  • 1.利用PolygonCollider2D碰撞体创建Mesh网格 2.利用Mesh网格创建单一PolygonCollider2D碰撞体 3.利用Mesh网格创建复合PolygonCollider2D碰撞体 4.根据Mesh网格大小形状计算刚体质量 通过Mesh与PolygonCollider...
  • 博主上一篇贴子有讲到Unity3d的碰撞器触发的条件(f附上链接https://blog.csdn.net/qq_37055562/article/details/82730378),那么Unity2d碰撞器触发的条件和Unity3d的触发条件是一样的吗? 那么大家一起来看一下,...
  • unity 2d碰撞/ui组件碰撞 2019-08-13 09:18:01
    首先,ugui的碰撞是可以用Collision2D跟Rigidbody2D实现的(就跟3D碰撞一样)。之前试过不可以主要问题正在于Collision2D以及Rigidbody的设置上。 碰撞双方都添加Collider2D但是没有调整碰撞器的大小。新建一个...
  • Unity精灵动画 2D碰撞 2019-06-20 12:28:08
    图片导入 设置等: 常用的格式png jpg 将图片textureType设置为Sprite 将单个图片设置为SpriteMode设置为Single 将包含多个小图的一张大图SpriteMode设置为Multiple,在SpriteEditor中将素材进行切割,得到小的图片资源...
  • 环境: TiledMap 0.18.2 Tiled2Unity 1.0.10.3 Unity 4.6.8 ...1.下载Tiled2Unity并安装,...视图->图块碰撞编辑器,选中要添加碰撞的图块为其添加碰撞体。 3.运行Tiled2Unity,打开tmx文件,导入Unity工程。 4.在
  • unity2d 碰撞回弹 2019-04-02 09:01:19
    XY轴横版游戏中,两个角色碰撞时受力会互相撞飞。简单是思考以后想到两个办法。 1、重写碰撞(没研究过) 2、使用Oncollisionenter改变受力 此效果没有撞飞效果,但持续移动还是可以可以把角色缓慢推开。 ...
  • unity3d碰撞的添加 2019-01-28 16:59:23
    unity3d中实现碰撞要求碰撞的双方至少有一方具有碰撞体组件。 通过在Component中点击 Physics 2D→Polygon Collider 2D。 可对一个不规则形状的对象添加碰撞体。效果如下图所示 具体要想调整碰撞体的形状 做出...
  • 开门见山,NGUI中点击一个组件非常常用,一般来说UIButton也好,...在网上查了一些大家的做法,大多是用添加Polygon Collider2D不规则碰撞盒的方式再配合NGUI发送射线来实现。不过之前的教程都是较早的NGUI版本,需要手
  • 碰撞我个人觉得可以分为两大类: 比较物理的碰撞,和不太物理的碰撞。  比较物理的碰撞:比如奋斗的小鸟这种游戏,小鸟飞出去后会根据自己的速度还有重力碰到障碍物后可能会被弹回来。  不太物理的碰撞:...
  • 设置角色Rigidbody2D为kinematic,配置BoxCollider2D,记录移动方向为direction(Vector2) 碰撞检测时对direction.x ,direction.y分别进行Raycast判断,将没有遇到障碍的前进方向合成移动向量,再移动 问题:卡,...
  • Unity 3D碰撞检测 2019-12-19 10:26:15
    Unity3D中的2D碰撞检测碰撞器与碰撞碰撞时将调用的函数碰撞与触发器相碰撞时被调用的函数碰撞器与触发器碰撞时将调用的函数碰撞与触发器相碰撞时被调用的函数==以上两个碰撞不能将各自的函数或参数改变,否则将...
  • 本文一部分为半年前所写,时间间隔较大,若有逻辑上的错误敬请见谅。 碰撞检测是2D游戏开发里经常要用到的东西,...碰撞检测必不可少的是碰撞体组件和刚体组件,在2D游戏里面也就是xxcollider2D和Rigicbody2D,同时...
  • 假设两个物体A,B 两者都有碰撞体collider(Box Collider,Sphere Collider,Capsule Collider等)A,B都有刚体(Rigidbody)A或者B中有一个勾选isTrigger或者两者都勾选isTrigger A和B都可以进入OnTriggerEnter方法...
1 2 3 4 5 ... 20
收藏数 3,676
精华内容 1,470