Unity3D学习之Unity基础

发布时间:2024年01月20日

文章目录


1. 第一部分:MONO中的重要内容

在这里插入图片描述

2. 延时函数

2.1 什么是延时函数

在这里插入图片描述

2.2 延时函数的使用

在这里插入图片描述
在这里插入图片描述
需要传入参数的函数需要包裹
在这里插入图片描述
在这里插入图片描述
否则会报错

在这里插入图片描述
写一个函数包裹
不能直接调用其他对象的函数,也是需要包裹在无参函数中

2.2.1 延时重复函数

在这里插入图片描述

2.2.2 取消延迟函数

在这里插入图片描述
是取消所有延时函数
在这里插入图片描述

取消指定函数

2.2.3 判断是否有延迟函数开启

在这里插入图片描述

2.2.4 延迟函数和依附对象的关系

在这里插入图片描述

1)失活,不会影响函数继续进行
2)对象删除或者脚本删除,不会继续延迟函数

3 协同程序

3.1 Unity中的多线程

在这里插入图片描述

在这里插入图片描述
unity一般多线程用法

用一个中间商 ,比如Queue
在这里插入图片描述
如果有数据需要复线程进行处理,放入queue2中,在update中进行判断,
如果有则传入复线程,然后进行计算后放入另一个queue中
在这里插入图片描述
主线程判断,如果子线程有产出,则取出来用
在这里插入图片描述

3.2 协同程序

在这里插入图片描述
在这里插入图片描述

3.3 协程的使用

在这里插入图片描述
这句的意思就是 打印i之后 再等待5秒后 再打印str

在这里插入图片描述
把逻辑分成了两部分,yield return是分界线
yield return 可以多个
有多少个相当于把代码分成了n+1份

在这里插入图片描述

协程函数可以开启多个
在这里插入图片描述

3.3.1 关闭协程

在这里插入图片描述

3.3.2 协同可以配合死循环

在这里插入图片描述
不会卡死主线程

3.3.3 yield return的内容

在这里插入图片描述

3.3.4 失活后组件的影响

在这里插入图片描述
只失活脚本,协程还是继续

3.3.5 用协程写一个计时器

在这里插入图片描述

在这里插入图片描述

3.3.6 创建100000个随机位置方块但不明显卡顿

改为分步创建

在这里插入图片描述
等一帧创建

在这里插入图片描述

3.4 协程原理

在这里插入图片描述

3.4.1 生成协程函数

在这里插入图片描述
在这里插入图片描述
MoveNext 是执行到下一个yield return 为止

在这里插入图片描述

在这里插入图片描述
可以通过MoveNext返回的bool值判断是否执行完

在这里插入图片描述

3.5 协程调度器

在这里插入图片描述
在这里插入图片描述

4 第二部分:Resources资源动态加载

4.1 特殊文件夹

4.1.1 获得工程路径

在这里插入图片描述

在这里插入图片描述

4.1.2 Resources 资源文件夹

需要手动创建,并且名字不能错
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.1.3 StreamingAssets资源流动文件夹

需要手动创建,PC可读可写,手机只可读
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1.4 persistentDataPath 持久数据文件夹

不需要手动创建,可读可写,比较重要,做热更新有用
在这里插入图片描述

在这里插入图片描述

4.1.5 Plugins 插件文件夹

在这里插入图片描述

4.1.6 Editor 编辑器文件夹

需要手动创建
在这里插入图片描述

在这里插入图片描述

4.1.7 默认资源文件夹 Standard Asserts

在这里插入图片描述

4.2 Resources资源同步加载

4.2.1 动态加载的作用

在这里插入图片描述

4.2.2 常用资源类型

在这里插入图片描述

4.2.3 资源同步加载 普通方法

1) Object文件
记得要把资源放在Resources文件夹内

  1. 把资源文件夹加载在内存中
  2. 实例化对象
    在这里插入图片描述
    Resources文件夹可以有多个,通过API加载时,会自己去同名Resources文件夹离找资源
    在这里插入图片描述

在这里插入图片描述
2)音效文件 AudioClip
可以在Resources文件夹内创建文件夹
在这里插入图片描述在这里插入图片描述

3)文本资源
在这里插入图片描述
在这里插入图片描述
4) 图片资源
在这里插入图片描述
在这里插入图片描述
5)其他类型之后讨论
6) 同名文件不同类型的文件加载
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 资源异步加载

同步加载会因为 主线程中每一帧跑不完资源,导致每一秒跑不完60帧,所以掉帧

4.3.1 异步加载是什么

开一个新线程进行内存加载
在这里插入图片描述

4.3.2 异步加载的方法

异步加载 不能马上得到资源,至少要等一帧
这句代码表示unity在代码内部开线程进行资源下载
在这里插入图片描述

监听结束后,马上进行一个资源下载结束的一个 事件 completed监听

加载完成后,资源存在了assert中
在这里插入图片描述

可以在 委托中加入一个函数
在这里插入图片描述
在函数中处理 得到资源后所做的事情
在这里插入图片描述
这里是做了实例化

在这里插入图片描述
一定要等completed后,才能使用
一定要在回调中监听

4.3.3 通过协程

在这里插入图片描述

Unity会判断ResourceRequest类型,要等判断加载完后再继续

在这里插入图片描述
还可以通过isDone函数 判断是否加载完
在这里插入图片描述
在这里插入图片描述

4.3.4 完成线性加载和协程的异同

在这里插入图片描述

4.3.5 封装一个简单的资源管理器

在这里插入图片描述
在这里插入图片描述

4.4 Resources卸载资源

在这里插入图片描述

4.4.1 如何手动释放资源

在这里插入图片描述

5 场景异步切换

在这里插入图片描述

5.1 通过事件回调函数异步加载

在这里插入图片描述
是存储在了unity的事件中,所以切换场景时不会被删除

5.2 通过协程异步加载

在这里插入图片描述
因为挂载脚本的object在切换场景被删除,所以协程被删除

在这里插入图片描述
所以需要切换场景时不会被移除
在这里插入图片描述
离开循环后,就认为场景加载结束
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 简单的场景管理器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 LineRenderer 画线功能

6.1 LineRenderer

在这里插入图片描述

6.2 Line Renderer组件

在这里插入图片描述
Position是点
在这里插入图片描述
第一个点和第二个点相连,第二个点连第三个点,以此类推

在这里插入图片描述
勾上loop后,首尾相连
在这里插入图片描述
width改粗细
在这里插入图片描述
添加曲线
右键添加key,改变首尾点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
是否使用世界坐标系
材质球一般不是我们来搞

6.3 代码添加线段

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.4 画一个圆

在这里插入图片描述

6.5 长按鼠标使用LineRenderer画出鼠标移动轨迹

在这里插入图片描述

在这里插入图片描述
每次都画一个新线
在这里插入图片描述

7 范围检测

在这里插入图片描述

7.1 范围检测

在这里插入图片描述

7.2 如何进行范围检测

7.2.1 盒状碰撞器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一个数字代表n层的组合

在这里插入图片描述

7.2.2 球状碰撞器

在这里插入图片描述

7.2.3 胶囊碰撞器

在这里插入图片描述

7.3 模拟游戏碰撞检测

在这里插入图片描述

在这里插入图片描述
1)

在这里插入图片描述

创建出的立方体检测范围是这样的
在这里插入图片描述
改一下创建的角度
在这里插入图片描述
在这里插入图片描述
要记得改角度

2)
在这里插入图片描述
在这里插入图片描述
3)
在这里插入图片描述

8 射线检测

在这里插入图片描述

8.1 射线对象

在这里插入图片描述
在这里插入图片描述

8.2 碰撞检测函数

在这里插入图片描述

8.2.1 获得不到碰撞到了谁

在这里插入图片描述
在这里插入图片描述

8.2.2 获取相交的单个物体信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.3 模拟射击游戏打到墙

在这里插入图片描述

链接:https://pan.baidu.com/s/1bDzl9AgKxWVU_yygz6PT4Q
提取码:1111

在这里插入图片描述
把资源放到Resources文件夹中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8.4 实现鼠标拖动物体

在这里插入图片描述
在这里插入图片描述
让物体在在地板
在这里插入图片描述
在这里插入图片描述
这样设置会让物体在地上嵌住
设置一下position的值即可

在这里插入图片描述
检测的时候检测的方块的层级
拖动的时候检测的是地板的层级

文章来源:https://blog.csdn.net/Lmz_0314/article/details/135677599
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。