unity3d入门教程七

unity3d入门教程七

17.1物理系统



在物理系统中的物体具有质量和速度的是刚体



不用写代码就会自由落体运动了

17.2静态刚体


给 '地面' 添加一个 Rigidbody 2D 组件,使之成为刚体

将刚体类型设为 Static

此时地面就静止不动的刚体

上面的求可以下落,只是此时两者无碰撞,一直下落,下节讲碰撞的效果

17.3刚体的碰撞


上一节的球落地会直接穿过地面





17.4刚体的反弹





18.1运动学刚体


将飞机设置为kinematic刚体后,因为无质量,变不会自由下落,但会与其余刚体发生碰撞是能检测出来的

18.2碰撞检测




1 添加两个物体,'飞机' 和 '小球'

2 添加刚体组件 Rigidbody 2D

设为 Kinematic

3 添加 碰撞组件 Box Collider2d

勾选 Is Trigger ( 碰撞触发器 )

4 添加脚本组件 , 重写事件函数OnTriggerEnter2D()

复制代码
    void OnTriggerEnter2D(Collider2D collision)
    {
        Debug.Log("飞机:探测到了碰撞 ... ");
}

小球和飞机刚体碰撞组件都添加了,飞机的脚本如下

小球暂无脚本

球不动,飞机向上飞,当碰撞到小球时,就会输出控制台

此时给小球添加脚本

碰撞后,小球和飞机都进行了输出

18.3碰撞事件回调

碰撞事件回调,有三个:

OnTriggerEnter2D :两个碰撞体开始相遇

OnTriggerStay2D : 两个碰撞体接触中

OnTriggerExit2D: 两个碰撞体分开

一般只使用第一个第一次碰撞的函数即可,后面两个方法用不到

只要拿到组件无论是collider2D还是transform等组件,有了组件就可以知道其挂载的游戏对象的名称等信息

通过collider2D拿到碰撞到的游戏对象的名称等信息






18.4目标的识别



1 添加一个新的 Tag

菜单里找 Edit | Project Settings | Tags and Layers ...

点 + 号,可以添加一个自定义 Tag

点 -- 号,可以删除一个自定义的 Tag , 重启项目后生效

2 设置 Tag

在场景中选中一个物体,在 Inspector 窗口里设置 Tag




18.5碰撞的规避

此部分比较难,可以练习一下,前四节必须掌握





系统碰撞的时候自动计算,减轻CPU的消耗

相关推荐
babywang01 天前
Unity笔记--AssetBundle详解
unity·游戏引擎
魔士于安1 天前
经典Game
游戏·游戏引擎·贴图·技术美术·模型
淡海水1 天前
01-04-认知篇-Unity内存全景
unity·c#·游戏引擎·.net·gc
598866753@qq.com1 天前
Codex与Unity
unity·游戏引擎
淡海水1 天前
01-03-认知篇-C#内存模型深度解析
unity·c#·游戏引擎·.net·gc
警醒与鞭策2 天前
Direct3D 12 中的内存管理
3d·游戏引擎·direct3d
淡海水2 天前
16-02-C#常用数据结构源码-附录B-源码索引速查
unity·c#·游戏引擎·il2cpp
速易达网络2 天前
无人机远程操控仿真
游戏引擎·cocos2d
郝学胜-神的一滴2 天前
游戏引擎原理与实践 02:揭开3A游戏背后的技术面纱
开发语言·计算机网络·程序人生·游戏·游戏引擎
警醒与鞭策2 天前
【无标题】
android·unity·性能优化·游戏引擎·perforce