标签 游戏 下的文章

Unity3D中两物体的碰撞以及激发Trigger事件

在游戏中经常有两个物体相撞,然后发生扣血,毁坏等事件,在Unity3d引擎中应该如何实现呢?

首先解决碰撞的问题。

碰撞有三个要素,分别是碰撞体(Collider),刚体(Rigidbody),和触发器(Trigger)。这三者一般是紧密相连的。

碰撞体就是俗称的判定区。比如在守望先锋中,你射出去的子弹经过敌人的身体这一判定区才会发生扣血事件。没打到敌人身体的,也就是没通过判定区的,不会触发扣血事件。

刚体就是俗称的障碍物。在GTA5中,由于你的车是刚体,所以在他撞到别的物体上时(墙壁,行人)会发生物理作用,就是会形变,或者改变运动状态。

触发器就是判断事件发生的装置。比如子弹穿过判定区,触发器判断到了,给程序返回一个扣血的方法。它一般是通过一个布尔值(bool),然后传递参数,返回方法进行工作。

理解了上面三个要素,我们再看应该如何造成血量扣减就方便的多。

例如有物体A在进行运动,在其运动路径上有物体B,然后它们各自有个碰撞体分别是ColliderA,ColliderB,我们可以在物体A上插入一个刚体组件RigidbodyA,插入一个触发器TriggerA。当它们相遇时(就是ColliderA与ColliderB有重叠区域),物体A上的RigidbodyA会使得ColliderA不能穿过ColliderB,并且触发器Trigger获得物体B的参数,返回到物体A的脚本里,调用Hurt方法进行扣血。

跟着这个思路,可以列出三个纲要

  • 加载组件>Collider,rigidbody。
  • 激发Trigger事件>bool值,获取对象。
  • 削减自身health值>调用类,调用方法,调用属性,获得并返回参数。

阅读全文

Unity3D中插入C#脚本

1.打开项目,project下新建一个名叫scripts的文件夹。(注意,在Unity3D中,包含script的文件夹必须有script的关键字)请输入图片描述
2.在scripts文件夹下新建一个C#脚本。请输入图片描述

阅读全文

Title - Artist
0:00
    bst g22 jinniu lilai opebet orange88 vinbet xbet yuebo zunlong shijiebei bet007 hg0088 ju111 letiantang m88 mayaba qg777 qianyiguoji sbf777 tengbohui tlc ule weilianxier waiweitouzhu xingfayule xinhaotiandi yinheyule youfayule zhongying 2018shijiebei w88 18luck 188bet beplay manbet 12bet 95zz shenbo weide1946 ca88 88bifa aomenxinpujing betway bodog bt365 bwin tongbao vwin weinisiren 88jt fenghuangyule hongyunguoji 918botiantang huanyayule jianada28 jixiangfang libo long8 hongzuyishi zuqiutouzhu </