自己用的unity学习笔记(一)——组件操作
来源:互联网 发布:淘宝关键词提取器 编辑:程序博客网 时间:2024/05/22 12:35
组件操作
组件中,一般组件名就是该组件的类名,如果带括号,括号内为类名。
Unity内的组件,禁止new实例化。
成员变量加上public才能在组件面板上显示,并且不需要初始化(可以初始化)。
每个组件的各属性名称一般都是该组件类的变量名(一般是小写)(不一定,但大多都是)。
在代码组件中,对组件数据的修改,只能保持在运行情况下。
禁止使用已有的组件名称(即类名)
Transform组件
Vector3和vector2可以互转,因为v2中重写了隐式转换。
Transform下有SetSiblingIndex()函数,设置同级子物体的顺序。SetSiblingIndex(0)就是第一个。
SetAslastSiblingIndex()设成最后一个
还可以transform.GetSiblingIndex()获取对应物体的顺序,获取后直接给另一个物体,另一个物体就会插到对应位置,原物体会被挤下去。
Transform _transform;
_transform.ratation = Quaternion(四元数).AngleAxis(float a,Vectors3 b);
移动
Translate(向量,使用坐标空间);
第二参数默认是self
如果第一个参数是vector3是开头,第二个参数为world代表世界坐标,如果self则代表自身坐标方向。
如果第一个参数是transform是开头,第二个参数为world代表自身坐标,如果是self或者不填,就会乱了。
获取组件
_transform1 = GetComponent<Transform>();//最常用的方法
_transform1 = GetComponent(typeof(Transform)).transform;
_transform1 = (Transform)GetComponent(typeof(Transform));
_transform1 = GetComponent(“Transform”) as Transform;
GetComponentInChild<T>()获取子类的插件,只获取匹配的第一个
GetComponentsInChild<T>()获取子类的插件的数组,获取所有
旋转
Rotate() Rotate(Vector3.up);沿世界坐标的y周每帧旋转一度
第二参数也是world和self,默认self。如果是transform.up,就只能使用world,否则就会乱了。
RotateRound(vector3,axis,float 角度);朝着某个物体转。
Axis 为transform时,会沿着自己的轴的倾斜度旋转,但该轴应以向量的形式理解。
Position和localposition
Position一定是相对于世界坐标系的。
Localposition才是相对于父物体的位置。
Rotation 也一样,但rotation的输出是四元数
input输入操作
input输入一定要写在update中,不能写在fixedupdate中
键盘操作
数字的键盘枚举值是alpha+数字
Input.GetAxis
获取水平或垂直方面的值,最大不超过正负1,按下一刻起会从0,每次增加0.05一直到1。
float f = Input.GetAxis("Horizontal");//按下右键该值是负数,正数则为左键
float f = Input.GetAxis("Vertical");//按下下键该值是负数,正数则为上键
input.GetKey(),长按一直获取。
input.GetKeyDown(),只有按下那一刻获取一次,长按没作用
Gameobject操作
创建
GameObject a = new GameObject("new name");创建一个空物体,名字为new name
GameObject aa = GameObject.CreatePrimitive(PrimitiveType.Cube);创建一个cube,PrimitiveType是个枚举类型,可以直接点出来需要创建的物体名
aa.AddComponent<Rotations>();添加对应名称的组件
查询
查询的效率很低,耗时非常高,所以能拖过去就拖过去,不要find查询,尤其要避免在循环和update中使用。
GameObject.Find(名称); 通过名字查询,返回GameObject,如果名称相同,会返回最后一个。查询子物体,可以通过层级来查,例如:GameObject.Find(Plane/Cube)
Unity中和路径相关的都是左斜杠/,只要写和路径相关的字符串,前面都加上@符号。
设置父类
transform.SetParent(物体的transform[,第二参数bool]);
第二参数可不写,默认true,如果为true,则相对于父级位置、缩放和旋转修改该对象,使得该对象保持与之前世界坐标空间一样的位置,旋转和缩放
删除
Destroy(任意物体或组件);删除一切物体(包括物体的组件)或组件,如果有子物体,也会全部删除。因为该方法属于Object(GameObject的父类),参数是Object,Object是unity所有类的父类。该方法也会触发OnDestroy();
Destroy(this)不是销毁当前物体,而是销毁当前组件。
Transform组件禁止被删除。
时间类
帧是画面刷新
帧率:画面刷新的速率 帧数/时间 60帧/秒
Time.deltaTime;以秒计的每帧的时间。开始的一瞬间,会卡顿一下(因为要加载场景),那一帧的时间会远比其他帧的长。
Time.fixedDeltatime : 固定的帧率的fixedupdate每帧的时间
Time.time:是时间的累加,受时间缩放影响,是time.deltatime累加过来的,并不精准。
Time.realtimeSinceStartup: 从游戏开始到现在的真实时间。
Time.fixedTime: Time.fixedDeltatime累加的值。
TimeScale:时间速度的缩放,范围0-100,0会暂停,realtimeSinceStartup不会停止,其他都会停止(fixedDeltatime其实也没停,只不过不再调用了),速度过快会掉帧的。
注意:timeScale为0时,update和lateupdate不会停止,fixedupdate会停止。
GUI操作
GUI的00点是game视窗的左上角。
挂血条
人物头顶加一个空物体,获取空物体的世界坐标,将世界坐标转成屏幕坐标,然后将血条放在屏幕的空物体投影上,再让血条根据屏幕深度的z值变化
BeginGroup开始组,必须配套以EndGroup结束关闭容器。
摄像机Camera
摄像机参数
Clear flags : 摄像机渲染方式。
Skybox天空盒 Windows-》lighting->setting中更换天空盒。天空盒启用后,颜色调节没用。
Solid color 固定颜色。
Depth only深度渲染,只有物体会亮
Don,t clear
Culling mask 渲染层级选择,对应layers的层
Projection:投影方式
perspective透视投影,满足近大远小
Orthographic 正交投影
(透视投影才有的)
Fielf of view 视野
Clipping planes near摄像机近裁平面 far摄像机远裁面。物体离开开近裁面和远裁面会消失。
Viewport rect :有多个屏幕时,单个屏幕在摄像机中所占的大小,可以做小地图(一般不用这个方式)。
Depth:深度,多个摄像机时,哪个深度值高,就显示哪个摄像机
Tatget texture 目标贴图,可以使用摄像机将内容投影到贴图上,但一个摄像机只能有一个功能,要么投影贴图,要么投影到屏幕。
Occlusion culling 暂时将看不到的物体隐藏掉,节省资源。
- 自己用的unity学习笔记(一)——组件操作
- 自己用的unity学习笔记(一)——系统组件
- 自己用的unity学习笔记(一)——unity3d基础操作
- 自己用的unity学习笔记(一)——数学相关
- 自己用的unity学习笔记(二)——unity进阶
- Unity学习笔记——Unity基础一:unity界面、场景、游戏物体、组件等基本概念
- joomla component学习笔记(一)--创建自己的组件
- 小韵游戏开发学习笔记——第四期:认识Unity基本组件(一)
- 自己用的unity学习笔记(三)——数据结构相关
- 自己用的unity学习笔记(四)——unity3d UGUI
- Unity学习笔记(组件篇1) Unity AudioSource组件的扩展使用
- 自己用的C#基础学习笔记(一)——C#面向过过程
- python 学习笔记(一)—目录文件的操作
- 小韵游戏开发学习笔记——第五期:认识Unity基本组件(二)
- unity学习笔记(一)
- 自己进化的Unity人工智能(一)
- 菜逼的Unity学习笔记(一)
- Unity Shader学习笔记(一) shader的基础结构
- 【七月Python入门】 第四课面向对象基础
- 虚拟机克隆
- seekbar
- JavaScript中清空数组的三种方式
- HashMap为什么是线程不安全的?
- 自己用的unity学习笔记(一)——组件操作
- 源码剖析之epoll(1)
- combobox和combotree,搜索和多选功能的实现
- 大话数据结构笔记-查找
- select 中 option 的选中事件
- SQL SERVER版本补丁体系及升级
- SpringBoot | 常见几种异常配置方案
- 线程的生命周期
- 虚拟机的网络连接方式