翻滚吧小球-Rotate旋转 Prefab 预制 与碰撞器(4)

实现旋转的效果     

unity 提供了非常方便的Rotate方法  来实现物体的 旋转

创建一个 cube 物体,并添加 一个 Rotate脚本


 围绕Y轴旋转

除此之外 Vector3 有其它的旋转方法 


可以根据提示 判断 具体是按照哪个轴旋转(x, y, z)

也可以通过 修改代码 观察 游戏调试 获得直观的 体验

up方法为例



Prefab 预设

可以通过预设 快速创建 相同属性的 物体 

- 通过 create 创建

- 通过拖拽创建


create


拖拽


删除 Pertab

删除 pertab 需要解除 关系  否则会 出现警告 ⚠️


警告


解除 Pertab 关联


解除关联

搭建最后的场景

- 地板

- 旋转的 cube

- 主角球


最终场景


触发器:

顾名思义 触发器 就是 在物体有接触 时,发出信号,进行一些操作

- cube 作为触发器(被触发 

勾选后 原本会 碰撞的 主角 就能穿过 cube 了


打开触发器

定义触发事件

看一下触发器的API

两个大类 2D 结尾的 为2D游戏的触发器   其它未标明的为 3D

我们需要区别的是 Collider 和MonoBehaviour

- 3D

    -- Collider

           ---Enter

           ---Exit

           ---Stay

   --MonoBehaviour

           ...

- 2D

    -- Collider

          ...

    --MonoBehaviour

         ...

API

Collider示例  Trigger 属于 MonoBehaviour功能


Collider

MonoBehaviours示例


MonoBehaviour

看代码没什么不同,发现了 后续补充  

将碰撞触发器  写在 主角的代码里 去触发碰撞:

 -  定义一个 int i  接收 碰到了 几次  接收器 并输出到控制台

- 我们在碰撞前 做一个 if 判断    只触发 指定name  的接收器

- if true 后调用 Destroy 删除方法   删掉碰到的物体


Player

运行下游戏 

正常 吃掉了 name 匹配的两个 cube

游戏画面


最后: 

正常情况下,触发检测 应该写在 要触发事件的物体上,  如果任何事件 都提前绑定到  角色上,这个角色 无疑  非常臃肿的。

模拟一个开门场景:

( 把触发器写在主角上 : 主角接触 门---- 触发自身碰撞检测 ---  检测   key  🔑  接触到  --  播放开门动画

(把触发器写在门上:  主角接触门 ---门触发 检测  --检测 目标身  上的 key  --播放开门动画

我们新创建一个 Capsule  胶囊模型  开启触发器 怎么修改我们的代码呢

 --只需要把 other  改成 this  自身就好了


Capsule
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 要产生碰撞必须为游戏对象添加刚体(Rigidbody)和(各种类型的3D/2D)碰撞器(Collider),刚体可...
    诸子百家谁的天下阅读 1,700评论 0 1
  • 更新:【面试题含答案】http://bbs.9ria.com/thread-288394-1-1.html 高频问...
    好怕怕阅读 4,793评论 3 52
  • 世界上最忠心的朋友,可能是狗!狗与人的关系通常都是这样形容。这可能和狗的记忆有关! 人类养狗的历史颇长,其开始的关...
    Elpheia阅读 356评论 0 0
  • 下午小孩给我打电话了,那时的我在出租车上。小家伙叽叽喳喳的又像是自言自语的样子,说我明天就要回去了,想我了想我了,...
    虾芒阅读 282评论 0 1
  • 1 jsonp 1.1 script预解释 基础知识:每一个script指的就是一个独立的域,不同的script代...
    果木山阅读 118评论 0 0