Unity不规则碰撞

在项目中UI不规则碰撞遇到很少,Unity中也有不规则的碰撞组件(Polygon Collider 2D)但是这种组件只能接受2D射线碰撞,而NGUI的是3D射线碰撞,需要在UICamera中修改代码才能实现。 这篇文章讲的不是这种碰撞,我要说的的方法不用修改代码,步骤如下:

1、让美术个你要的形状面片

这个就是我美术帮我做的扇形面片


2、然后再在面片上添加Mesh Collider组件


3、添加Camera 并添加UICamera脚本

这个是我添加的摄像机,我将它的Depth设置为1,优先级比UI事件的摄像机要高。


这个就是正常的UI摄像机

4、将UICamera的 Event Type 设置为 3D World

这样这个面片技能接受NGUI的点击事件了。


注意:将UICamera的 Event Type 设置为 3D World 是为了能够区分重叠的碰撞面片,这是要想点击最上面就可以改变位置的Z轴来实现。 还有就是UI事件根据Depth来判断点击到哪个Widget,这时就有两个UICamera来接受事件了 当这两个碰撞重合该如何处理呢?这时需要设置Camera的Depth,Depth大的优先。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity中的碰撞通常是基于几何形状(如球、盒子、胶囊)来定义的,因此它们都是规则的。但是,如果你需要一个不规则碰撞,例如一个复杂的几何形状或者一个非凸多边形,你可以使用Mesh Collider来实现。 Mesh Collider是一种使用网格来定义碰撞的组件。它可以使用网格渲染器组件中的网格数据,或者使用自定义的网格数据来创建不规则碰撞。在使用Mesh Collider时,你需要确保网格是封闭的,也就是说没有任何开口或断裂。 如果你需要动态地创建不规则碰撞,你可以使用Physics API来手动创建和管理碰撞。这种方法需要更多的编程工作,但是可以实现更高级的碰撞效果。 总的来说,Unity提供了多种方法来创建不规则碰撞,你可以根据自己的需求选择最适合的方法。 ### 回答2: Unity中的不规则碰撞是指不能简单地用基本的几何形状(如方块、圆形等)来描述的碰撞。在游戏开发中,不规则碰撞通常是由复杂的多边形、曲线等形状构成的。 为了实现不规则碰撞Unity提供了多种方法。其中一种常用的方法是通过使用多边形碰撞组件来实现。这个组件可以与自定义的多边形形状一起使用,以便在游戏中检测和处理与其碰撞的物。 另一种方法是使用物理引擎的边界包围盒(Bounds)来检测不规则碰撞。物的边界包围盒是一个可以包裹物的最小立方或最小球。物在游戏中的碰撞检测通常通过比较边界包围盒之间的重叠程度来进行判断。 除了以上方法外,还可以使用Unity碰撞检测回调函数来自定义不规则碰撞的行为。通过编写脚本,在碰撞发生时执行特定的逻辑,例如触发特效、改变物属性等。 不规则碰撞在游戏开发中非常重要,因为它可以增加游戏的真实感和复杂性。比如在一个平台跳跃的游戏中,玩家角色和平台之间的碰撞就是不规则碰撞,它们的形状可以与实际的游戏对象相匹配。 总而言之,Unity提供了多种实现不规则碰撞的方法,开发者可以根据需要选择和使用。这些方法的应用可以使游戏更加真实、有趣和具有挑战性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值