个⼈Unity总结【未完待续版】⽬录
Part_1
1.复杂效果实现都是简单组件搭载脚本的融合
2.摄像机移动,拉近距离,进⼊⼤致场景(只变⼀个轴的数据,例如z轴)
3.渐变效果的两种实现⽅式(CanvasGroup)
⽐较Alpha值的关系,使⽤Lerp函数,判断两者绝对值,最后赋值结束
DG组件,DOFade();
4.定义脚本后,都要及时在Start()函数中查找声明。
5.按钮组件在Start()函数中,监听⿏标点击事件,⽣成⽅法抛出异常。
6.SetActive设置游戏对象活跃状态(true,fal)
7.命名空间中引⼊ UI 和 SceneManagement
8.通过按钮实现场景切换(CTRL+SHIFT+B添加场景)
SceneManager.LoadScene("number or filename");
9.渐变⽩⾊图⽚的射线检测会影响anyKeyDown之后的操作
10.Unity提供的存储数据⽅式(PlayerPrefs)
SetString DeleteAll DeleteKey
11.写代码要有逻辑思维,透彻分析问题三百石
12.尽⼒做到⾼通⽤性,⽅便后期加功能
13.对⽹上的教程不能依赖,仅限于扩充课外知识
14.⽤Tags标签替代游戏对象名称,提⾼效率,减少重复纠错时间
15.射线检测原理及代码理解,out决定引⽤⽅式,通过碰撞盒返回信息(主摄像机)
16.⼈物动画以及星标点击动画
17.锁轴(星标凹陷以及⼈物倾斜),new⼀个三维坐标向量赋值给形参
18.朝向改变⽅法(transform.LookAt(Vector 3);)
19.配置⽂件的三种⽅式:
C++写⼯具类,⽣成⼆进制代码的txt⽂件作为游戏地图
Json⽂件,⼀套脚本构成基本架构
txt⽂件存储预制体路径,以逗号,标志为路径分隔符(TextAst)
20.循环实例化所有游戏⼈物预制体,但隐藏所有除索引对应以外的游戏⼈物
21.所有变量都定义为私有封装,此处需要使⽤索引
22.命名规范,长没关系,⼀定要⽤英⽂把变量解释清楚
Part_2
1.旋转是⼀个四元数
2.三维向量的计算 a^2=b^2+c^2+2*b*c*cos∠
做红烧鱼的做法
3.视野的缩放与旋转操作和摄像机有关
4.偏移量不要是⼀个定值
5.出现问题,及时看if语句的判断条件
6.函数的执⾏顺序也会影响效果中国诗词大会作文
7.Animator优于Animation
8.动画也是组件,需要添加和使⽤代码操控播放
9.UI都要写成配置表或者配置⽂件的形式
Part_3
1.⼀定要掌握配置⽂件的写法
2.标签的设置和使⽤玫瑰的含义
3.配置⽂件的格式优选UTF-8,notepad可选择换⾏模式,选择/n
4.单例模式
5.私有变量的属性声明
6.UI界⾯的锚点设置
7.脚本分离,不同的脚本做不同的功能
8.学习其他⼤佬的⼯具写法
荔枝肉9.慢慢学会优化,简化重复代码
9.使⽤插件DG.tweening
Part_4
1.标签标签标签
2.功能的实现要考虑所有可能的情况
3.培养逻辑思维,多想
4.熟悉事件系统EventSystem,与触摸和射线检测关系密切
5.使⽤字典,⾼效频繁查询数据
6.路径问题或者游戏对象名错误(the object you want to instantiate is NULL )Part_5
1.游戏对象和脚本命名规范,⽅便挂载
生日祝福歌曲
2.反向思维,减少⽆效判断次数
3.私有变量运⾏后,改为公有再赋值会报错(必须改回去再运⾏⼀次)
4.配置⽂件的灵活变通,多种物品⼀个配置⽂件
5.学会对物品进⾏总结分类,归纳
6.Animator属性不存在(Parameter 'xxx' does not exist)
7.Animation(⽼动画系统) Animator(新动画系统)
8.请求的特性没有实现(The requested feature is not implemented)
9.⽆效的光标纹理(Invalid texture ud for cursor - check importer ttings or texture creation.)
10.⽹络问题(Timed out while fetching ur / orgs)
11.继承解决重复性问题(NPC光标变化.......)
13.关掉⽆⽤的射线检测Raycast Target(⽂本,图⽚.......)
14. 不可访问受保护级别限制的成员('xxx' is inaccessible due to its protection level)
15.功能未实现(Object reference not t to an instance of an object)
16.碰撞盒(Box Collider) ⼈物控制器(Character Controller)受重⼒影响
Part_6
1.输出字符串的格式不正确(Input string was not in a correct format.)
2.输⼊框不输⼊内容,输出空串,不能作强转
3.提⾼代码复⽤性,写死不⽅便扩展功能
4.抛出异常(throw new System.NotImplementedException();)
5.配置表命名⼀般以四位数或五位数开始,便于分类 1001、2001或10001、20001
6.普通物品命名:icon-xxx-number 装备物品命名:xxx-icon-number
7.画布参数不能改变,修改渲染模式Render mode(复习画布知识)
8.使⽤Sprite Editor精灵编辑器
9.复习Sprite相关知识点
Part_7
1.架构设计很重要,对后期帮助巨⼤
2.反向思维,解决⽆效循环,⾼效使⽤if语句
3.优化代码
4.修改Unix编码,改变⾏尾导致的Unity警告
5.⽗⼦物体同时挂载脚本报错,⼦物体⾝上找不到对应的组件报空
6.增强功能和脚本之间的连调性
Part_8
1.经典报空错误(NullReferenceException: object reference not t to an instance of an object)
2.勤检查脚本挂载,前缀名相同极易挂载错误
3.UI穿透
4.射线检测超星学习网
5.图⽚处理 tga(格式⼯⼚转格式、photoshop)
6.数据分离(⾼内聚,低耦合)
Part_9
端午节几月几日
1.改了两个BUG(⼈物属性变化、鞋⼦穿到盔甲上)
2.UI穿透(if(!EventSystem.current.IsPointerOverGameObject()))
3.设置多个摄像机的优先级,只能⼀个audio listener ⾳频监听器
4.摄像机根据层级顺序进⾏渲染(有效解决遮挡问题)
5.遮罩Mask图⽚挡住UI
6.表现形式
7.⼤致状态(巡逻、攻击、站⽴)