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的消耗

相关推荐
qq_205279059 小时前
Unity TileMap 使用经验
unity·游戏引擎
心灵宝贝11 小时前
Mac Unity 2018.dmg游戏工具 安装步骤 简单易懂教程(附安装包)
macos·unity·游戏引擎
TO_ZRG12 小时前
Unity SDK 通过 Registry 分发及第三方依赖处理指南
unity·游戏引擎
7***n7517 小时前
C++在游戏中的Cocos2d-x
游戏·游戏引擎·cocos2d
龙智DevSecOps解决方案1 天前
Perforce《2025游戏技术现状报告》Part 1:游戏引擎技术的广泛影响以及生成式AI的成熟之路
人工智能·unity·游戏引擎·游戏开发·perforce
Y***K4341 天前
C在游戏中的Godot
游戏·游戏引擎·godot
Q***f6352 天前
C++在游戏引擎开发中的实践
游戏引擎
6***x5452 天前
C++在计算机视觉中的图像处理
c++·图像处理·计算机视觉·游戏引擎·logback·milvus
霜绛2 天前
Unity:lua热更新(三)——Lua语法(续)
unity·游戏引擎·lua
evolution_language3 天前
Unity场景(Scene)的注意事项和易错点
unity·游戏引擎·scene