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

相关推荐
玖玥拾1 小时前
Cocos学习笔记:粒子系统与对象层批量处理
游戏引擎·cocos2d
不知名的老吴5 小时前
Unity3D 2022安装教程及全流程下载步骤指南
unity·游戏引擎
程序员也有头发6 小时前
如何使用AI工具开发Unity
unity·游戏引擎·ai编程
caimouse6 小时前
Godot 引擎官方常见问题(FAQ)整理
游戏引擎·godot
一锅炖出任易仙7 小时前
创梦汤锅学习日记day29
学习·ai·ue5·游戏引擎
SmalBox8 小时前
【节点】[VoronoiNoise节点]原理解析与实际应用
unity3d·游戏开发·图形学
晓13139 小时前
【Cocos Creator 3.x】篇——第三章 脚本编程
前端·javascript·游戏引擎
可别39010 小时前
cesium实现网格化
游戏引擎·cocos2d
游乐码1 天前
Unity基础(十二)资源异步加载
unity·游戏引擎
weixin_441940011 天前
vuforia ar unity实验教程
unity·游戏引擎·ar