Unity笔记——物理引擎中碰撞器(Collider)的运用

通过碰撞器(Collider)组件的运用,我们可以对游戏中的物体设置碰撞、反弹效果。
1、种类介绍
Unity中内置了6种碰撞器:
1)盒子碰撞器(Box Collider)即方形碰撞器,适用于冰箱、桌子……
2)球形碰撞器(Sphere Collider)即圆形碰撞器,适用于篮球、石头……
3)胶囊碰撞器(Capsule Collider)由一个圆柱体和上下两个半球组成,主要用于 人物角色控制器。
4)网格碰撞器(Mesh Collider)在物体网格上构建的碰撞器,用于复杂的网格检测。
5)车轮碰撞器(Wheel Collider)即字面意思。
6)地形碰撞器(Terrain Collider)字面意思。
碰撞器的添加:
首先选中游戏体Ball,点击Component>Physics>Box Collider,可以在6中碰撞器中选择自己需要的。如下图1.1所示。
这里写图片描述
图1.1

2、碰撞器参数:
Is Trigger:启用时Collider用于触发事件 Material:物理材质(比如画画用的颜料)
Size:碰撞器在XYZ轴上的尺寸 Radius:球形碰撞器半径的大小
Height:胶囊碰撞器圆柱体的高度

3、碰撞过滤
对不需要进行碰撞的游戏体可以进行碰撞过滤。
实例代码如下:

void Start () {
        Physics.IgnoreCollision(BallA.GetComponent<Collider>(), BallB.GetComponent<Collider>());
        Physics.IgnoreCollision(BallA.GetComponent<Collider>(), BallC.GetComponent<Collider>());
       }

控制球A不和球B、C发生碰撞。

4、碰撞层
通俗来讲,碰撞层就好比一个标识符,可以设置不同层之间的游戏体发生碰撞,也可以设置同层游戏体之间发生碰撞。碰撞层的添加如下图1.1所示。
Edit>Project Settings>Tags and layers
这里写图片描述
图1.2

5、简单案例
1、案例说明:
demo运行后,小球受重力影响落下来,对第一列球忽略碰撞重叠在一起,其他列发生物理碰撞(相同颜色的球重叠)。
界面如图1.3,1.4所示。
这里写图片描述
图1.3

这里写图片描述
图1.4

2、制作流程:
创建一个Plane充当地板,创建12个小球(Sphere),添加3个碰撞层(红、绿、蓝),更改小球的碰撞层。为地板和球添加纹理图片。
简单界面如上图1.3所示。

3、在Assets内点击鼠标右键,Create>C#Script,重命名为Script2,双击打开脚本编写代码。

using UnityEngine;
using System.Collections;
public class Script3 : MonoBehaviour {
    public Transform RedBall;
    public Transform GreenBall;
    public Transform BlueBall;
       // Use this for initialization
       void Start () {
        Physics.IgnoreCollision(RedBall.GetComponent<Collider>(), GreenBall.GetComponent<Collider>());
        Physics.IgnoreCollision(RedBall.GetComponent<Collider>(), BlueBall.GetComponent<Collider>());
       }

       // Update is called once per frame
       void Update () {

       }
}

6、物理材质
在游戏开发过程中,往往需要特殊的碰撞效果,比如:篮球从空中落到地板上时回弹起,铅球落到沙坑里不会弹起。
物理材质常用的3个参数:弹性(Bounciness) 动摩擦系数(Dynamic Friction) 静摩擦系数(staticFriction)。
弹性(Bounciness):范围在0~1之间,0表示没有弹性,1表示完全反弹(没有能量损耗)。
动摩擦系数(Dynamic Friction) 静摩擦系数(staticFriction):范围在0~1之间,0表示没有摩擦,1表示摩擦很强类似橡胶面。

各向异性摩擦(Friction Direction2)?
指物体不同方向上摩擦力不同。比如:汽车向前、向后的摩擦力很小,但向左向右摩擦力就会很大。

案例描述:小球从空中落下来,弹跳碰撞落到墙面上。如下图1.5所示。
这里写图片描述
图1.5

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值