实现旋转的效果
unity 提供了非常方便的Rotate方法 来实现物体的 旋转
创建一个 cube 物体,并添加 一个 Rotate脚本
除此之外 Vector3 有其它的旋转方法
可以根据提示 判断 具体是按照哪个轴旋转(x, y, z)
也可以通过 修改代码 观察 游戏调试 获得直观的 体验
Prefab 预设
可以通过预设 快速创建 相同属性的 物体
- 通过 create 创建
- 通过拖拽创建
删除 Pertab
删除 pertab 需要解除 关系 否则会 出现警告 ⚠️
解除 Pertab 关联
搭建最后的场景
- 地板
- 旋转的 cube
- 主角球
触发器:
顾名思义 触发器 就是 在物体有接触 时,发出信号,进行一些操作
- cube 作为触发器(被触发
勾选后 原本会 碰撞的 主角 就能穿过 cube 了
定义触发事件
看一下触发器的API
两个大类 2D 结尾的 为2D游戏的触发器 其它未标明的为 3D
我们需要区别的是 Collider 和MonoBehaviour
- 3D
-- Collider
---Enter
---Exit
---Stay
--MonoBehaviour
...
- 2D
-- Collider
...
--MonoBehaviour
...
Collider示例 Trigger 属于 MonoBehaviour功能
MonoBehaviours示例
看代码没什么不同,发现了 后续补充
将碰撞触发器 写在 主角的代码里 去触发碰撞:
- 定义一个 int i 接收 碰到了 几次 接收器 并输出到控制台
- 我们在碰撞前 做一个 if 判断 只触发 指定name 的接收器
- if true 后调用 Destroy 删除方法 删掉碰到的物体
运行下游戏
正常 吃掉了 name 匹配的两个 cube
最后:
正常情况下,触发检测 应该写在 要触发事件的物体上, 如果任何事件 都提前绑定到 角色上,这个角色 无疑 非常臃肿的。
模拟一个开门场景:
( 把触发器写在主角上 : 主角接触 门---- 触发自身碰撞检测 --- 检测 key 🔑 接触到 -- 播放开门动画
(把触发器写在门上: 主角接触门 ---门触发 检测 --检测 目标身 上的 key --播放开门动画
我们新创建一个 Capsule 胶囊模型 开启触发器 怎么修改我们的代码呢
--只需要把 other 改成 this 自身就好了