Unity入门总结

Part_1

1.复杂效果实现都是简单组件搭载脚本的融合

2.摄像机移动,拉近距离,进入大致场景(只变一个轴的数据,例如z轴)

3.渐变效果的两种实现方式(CanvasGroup)

比较Alpha值的关系,使用Lerp函数,判断两者绝对值,最后赋值结束

DG组件,DOFade();

4.定义脚本后,都要及时在Start()函数中查找声明。

5.按钮组件在Start()函数中,监听鼠标点击事件,生成方法抛出异常。

6.SetActive设置游戏对象活跃状态(true,false)

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文件存储预制体路径,以逗号,标志为路径分隔符(TextAsset)

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 used for cursor - check importer settings or texture creation.)

10.网络问题(Timed out while fetching user / orgs)

11.继承解决重复性问题(NPC光标变化.......)

13.关掉无用的射线检测Raycast Target(文本,图片.......)

14. 不可访问受保护级别限制的成员('xxx' is inaccessible due to its protection level)

15.功能未实现(Object reference not set 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 set 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.大致状态(巡逻、攻击、站立)

猜你喜欢

转载自blog.csdn.net/weixin_51669718/article/details/122294942