Unity四部曲(入门)

目录

目录

基础面板

Scene

Project

脚本

特性

GameObject

次要成员方法

Time

Transform

旋转

缩放

父子关系

解除子级关系

遍历子对象​编辑

练习题

坐标转换

Input

1.鼠标

2.键盘

3.默认轴

4.移动设备触摸相关

Resolution

Camera(组件)

代码API

光源组件

代码API

LightSetting

Light-Environment-Environment

Light-Environment-OtherSettings

碰撞检测

1.Rigidbody

2.Collider

不常用碰撞器

Physics Material

3.碰撞函数

4.刚体加力API

Addforce

AddTorque

velocity

AddExplosionForce

加力的模式

Constant Force

音效系统

音频文件

音频源和音频监听脚本

代码控制

麦克风输入

如何存储或传输:



基础面板

Scene

            右上角单个轴可以点,会切换3种视角                                                  

                                按住ctrl缓动                                                      可以单点↑

物体最左侧的小眼睛是不可见,但它仍然存在于场景中,只是单纯的看不见了

眼睛旁边的手指,取消之后可以让它无法在场景之中被选中,只能通过面板选择。能避免误操作

Project

按类型查找/按标签

想要对齐,需要先选中摄像机再ctrl+shift+F

import导入资源包,也可以直接拖。export导出资源包

脚本

继承MonoBehavior的类不需要构造物函数

可以不继承,就和Vs当中的类一样了,可以申明但不能挂在gamobject上。就是代码内部使用的一个数据类

继承:不能new,只能挂        不继承:不能挂,只能new

点击Execution可以设置脚本先后顺序,在自定义脚本之前的,是系统默认会先执行的脚本,不用管。

特性

很多只需要做了解

组件右边三个点里面

得到所有子对象,和得到父对象/多个父对象也同理

会返回一个bool值。  和直接if(lessong!=null)的效果是一样的判空是一个很常用的操作,即使没找到也不会报错

GameObject

unity中的static在右上角,可以勾选。  gameobject.isStatic 可以得到是否为静态(默认物体都不是

通过其他方式查找效率会更高。

比如FIndWithTag(如果有多个,无法准确找到),并且这两种都无法找到已失活的对象。

想要准确无误,可以用public(最后手段)

instantiate和destory都有很多重载少用

创建时添加脚本。和后续动态增加脚本

次要成员方法

可以带参数,但一般不建议用这个方法,效率低下

开发中,是不会用这三个方法的,做了解即可

Time

默认0.02秒,可以在设置当中调整

Transform

这个是世界坐标轴,如果用this.transform.forward 则是局部坐标系,是物体自己的面向

一个是相对世界原点,一个是相对自己的父对象。这个才是它面板上的值

在UI当中,用的也是localPosition

位置坐标要改就只能整体一起改

translate默认是按自己的面朝向

就用v3和space就行了,只靠后面的参数来决定轴

旋转

面板上显示的。一定是local

自转方法,可以分别传xyz,也可以直接传一个v3并设置Space。

如果不填第二个参数,默认是按自己的轴向转

公转?

up对应localEulerAngles.y ,因为是绕着y轴转,体现出来就是左右转。

缩放

没有单个的scale

另外,scale没有不停变大的API,只能自己去写 ,但是有朝向的API

如果配合公转,就会转的时候也一直看着那个对象

父子关系

此时运行会解除原来的父子级,然后建立新的父子级

 API方法,效果也是一样的

API的好处是有更多重载

在UI系统中会比较常用

解除子级关系

 但不会影响子级的子级

注意这里的CUBE(1)是名字,不是什么索引,这个物体在外面就叫这个名字。    并且不能找子级的子级

transform的find用来找子级,且能找到已失活的子级。GameObject的find则不能找失活物体。

遍历子对象

拓展方法只能是静态的,运算符重载也只能是公开静态的

练习题

返回类型为transform,如果没找到,每个子类型又去依次寻找,重复这个过程。目标就是递归值

坐标转换

记不住API到时候用到了再查,比如我想要得到自己面前两个距离的点,就不需要根据原点坐标,而是可以根据自己坐标系来得

Input

1.鼠标

2.键盘

用第一种就行有可能拼错

抬起和长按同理。Down、Up、GetKey

3.默认轴

因为都是浮点数,所以可以直接乘,在rotate。translate当中也都可以直接当成参数乘

鼠标的左右和上下移动

GetAxisRaw则只有1和-1,没有中间变化的小数

这两个可以搭配用来改键

手柄了解一下即可

4.移动设备触摸相关

可以f12点进去有很多方法

deltaPosition可以用来检测滑动

Resolution

常用

不常用

分辨率可以用代码,但一般在发布时设置

同理,可以用代码,但一般在发布时去设置

一般是PC用

Camera(组件)

这第四种几乎不用,它不会清除之前的物体图像

如果给摄像机Texture,那么摄像机就不会显示画面,它照到的画面会全部被映到渲染纹理上。

那么就可以拿这张图片做小地图,且它对应的摄像机不影响主摄像机画面。

其他用的比较少的:

一般默认都是使用渲染设置里的选项,不用在这里更改

代码API

谁的标签是MainCamera谁就是主摄像机,一般场景中只有一个Camera.Main

可以获取场上摄像机的数量

可以去遍历所有的摄像机用到了再说

二。

屏幕是一个平面。如果转成了屏幕坐标。那么它的z就是离摄像机有多远了

那么反过来,将平面的转成3D的世界坐标,也需要设置它的z值其实也可以不设

光源组件

黑色部分无光,白色部分才有光↓                贴图↓                                           效果↓

光晕效果,例如做一个蜡烛

给摄像机加一个组件才能看到耀斑

没有勾选的不会受到该光源影响

仅做了解,一般都不会去调整。。用到再查

代码API

代码主要是操作面板上的参数

练习

想要模拟太阳东升西落,可以让方向光的x轴不停旋转

LightSetting

Light-Environment-Environment

Gradient可以单独改三方颜色,但一般默认天空盒就行了

新建材质,更改选项

Light-Environment-OtherSettings

碰撞检测

1.Rigidbody

并且会被该选项影响,默认0.02的

如果帧间隔过长,可以选择插值运算

另外,最底下的Info只是一个可见的数据面板,展示当前参数。

2.Collider

形状越复杂消耗越高

组合多种碰撞器,而不是直接用网格

不常用碰撞器

如果网格碰撞器又加了刚体,则必须勾选Convex

做汽车时再来看

并且一定是有一个刚体父对象,

Physics Material

3.碰撞函数

onc与ont触发次数与FIxedUpdate的次数相关

传进来的这个Collision是一个碰撞信息集合体

而collider是所有碰撞器的基类

另外,允许子类重写,但一定不会写成public

移除脚本移除物体

4.刚体加力API

Addforce

和第二种效果完全相同,也是按照自己的坐标轴

AddTorque

扭矩力同样会与旋转阻力相关

绕y轴旋转

velocity

AddExplosionForce

力的大小,爆炸中心,爆炸半径

运行后会给自己添加一个爆炸产生的力

加力的模式

addforce有第二个参数,力的模式

忽略质量速度会比不忽略移动更快

Constant Force

自带的加力的组件。不用写代码

小总结

音效系统

音频文件

比较重要的:Load In Background  、Load Type、Preload Audio Data

音频源和音频监听脚本

一般只有背景音乐,会勾选PlayOnAwake

音高类似于加速?

如果调整了Spatial Blend的值到3D,那么就会影响3DSoundSettings中的设置。

3d游戏一般选择第二种模式LinearRolloff这种线性模式就已经挺真实了

谁身上挂了AudioLIstener,谁就是“耳朵”。 默认新建摄像机就有这个脚本,但场景上只能同时存在一个,所以需要移除多余的AudioLIstener。

100米内听到的都是最大声,100-700开始减弱,700米外完全听不到

代码控制

延迟播放(5秒)注意先获取

 else,就是没有在播放

因为一个对象可以挂载多个AudioSource。不过你得注意管理

麦克风输入

比如语音输入之类的

可以得到所有的麦克风

一般设备传空就行了,特别是手机上,用默认设备

如何存储或传输:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值