1.14 从0开始学习Unity游戏开发--物理引擎

上一篇文章我们讲了如何动态创建物体,以及如何用Prefab机制复用我们制作好的物体和逻辑,那么本篇我们将会讲解如何利用这些功能,结合Unity自带的物理引擎,实现一个简单的FPS游戏的效果。
摘要由CSDN通过智能技术生成

上一篇文章我们讲了如何动态创建物体,以及如何用Prefab机制复用我们制作好的物体和逻辑,那么本篇我们将会讲解如何利用这些功能,结合Unity自带的物理引擎,实现一个简单的FPS游戏的效果。

物理组件

首先我们需要先了解如何使用Unity自带的物理引擎,在前面的系列文章里面我们其实心理都有了方法论,Unity的绝大部分功能都是靠物体上挂的组件来实现的,那么物理引擎相关的功能也不例外。

我们之前一直在操作Cube,那么剩下还有一个Box Collider组件没有讲,其实这个就是物理引擎相关的组件之一:

Collider顾名思义,就是碰撞体的意思,很显然,如果一个物体需要参与到物理计算中,那么这个物体一般需要具有一定的形状大小,这样才能提供合理的物理效果。

那么Box Collider其实也很显然,这是一个Box形状的碰撞体,我们如何去掉勾选Mesh Renderer组件,那么可以在Scene场景中看到绿色的线框,这其实就是编辑器帮我们可视化了这个Collider的形状:

除了Box的形状,我们还可以使用球形(Sphere Collider),胶囊体(Capsule Collider)等等,可以直接在Add Component里面搜索Collider就能比较快的找到所有可以用的内置Collider组件,注意带2D后缀的是专门给2D游戏用的,我们现在做的是3D游戏,不应该使用2D组件。

我们现在还是用Box来做示范,那么这里这个Box的大小就是我们这个Cube所参与物理计算的大小,这里你可能就问了,既然这个Collider组件本身有大小设置的参数,那我们是不是可以让参与物理计算的大小和实际渲染看到的大小不一致呢?

当然是可以的,我们如果稍微调整一下Collider的Size,XYZ都+1,重新勾选Mesh Renderer组件,那么可以看到绿色的线框是会出现在渲染效果(橙黄色线框)外部,像是包裹了的样子:

这也就说明了,物理计算和渲染是完全分离的,并不是你看到这个物体渲染成什么样子,物理计算就是按照这个视觉效果来,而是由独立的一个大小轮廓计算的。

当然如果你希望物理计算跟你的渲染效果强行绑定,那么Unity也提供了一个Mesh Collider,顾名思义,这个Collider是跟渲染用的Mesh绑定,会直接贴合Mesh的形状创建Collider参与物理计算:

我们将Box Collider删掉(点击右边三个点,选择Remove Component),添加Mesh Collider,Unity默认给我们设置了当前Mesh Filter组件里面的Mesh到Mesh Collider组件中,如图红框。当然你也可以设置其他Mesh作为Collider的形状,同样我们取消Mesh Renderer组件的勾选,那么可以看到绿色线框显示的虽然轮廓上跟Box Collider类似,但是明显是由三角形组成的,也就是说这个Collider是由跟Mesh一样的三角形组合而成。

当然Mesh Collider也不会给调整大小的选项,如果要调整大小,需要调整GameObject本身的Transform大小(Scale),也就是说这个Collider就和渲染效果直接绑定的。

那么你可能会问了,既然Mesh Collider这么好,为什么默认给的是Box Collider?

很显然,Collider的形状越复杂,计算的性能消耗也就越大,如果我们能用简单的形状近似我们目前渲染的形状,那么就可以减轻物理引擎计算的性能消耗,并且物理效果又不会有太多不真实。这其实就是游戏开发中常常会做的性能和效果之间的权衡,也就是大差不差就好,游戏能流畅跑才能玩的了,计算的再准确,但是帧率很低没法玩也是白搭。

说了这么半天,我们还没讲解这个Collider到底如何使用,其实很简单,只要包含了Collider组件的物体,这个物体上挂的任何组件,都会在Collider发生碰撞的时候触发特定的函数:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值