<0-26>
9. 创建游戏启动脚本LaunchGame.cs 游戏入口
10. 导入资源: read/write enabled--可读可写浪费资源Generate Mip Maps--自动生成小图取消勾选 Sprite(2d and UI)
11. Editor 文件夹---存放编译器脚本,打包不打入/// TextureSetting.cs 更改导入图片的类型
12. 制作 StartViewUI 预制体 ///取消图片Raycast Target
14. NormalSingleton.cs--普通单例类
15. MonoSingleton.cs---Mono类单例类 ///多了一个awake方法,确保类在场景中的唯一性
17. 加载模块接口ILoader.cs
18,加载管理LoadMgr--针对接口编程,外部同一方法,内部指定不同的加载逻辑--ABLoader or ResourceLoader
19, 自动化挂在脚本的两种方法:a--预制体和脚本同名,通过type挂载 b--通过给预制体添加特性 挂载脚本
20. 通过类型名挂载脚本
Type t = Type.GetType(temp.name.Remove(temp.name.Length-7)); //生成预制体的名称:StartView(Clone)
temp.AddComponent(t);
21. 特性Attrbute的用途:a,做标记,,[Serializable] /// b,携带数据,,挂载脚本(21-25不明白,太复杂,可以用同名代替)26.是废话
27.UI管理类的需求----UIMgr.cs stack 栈 /// UI部分的接口 IView.cs
28.查找物体的方法--- GameObject.Find();尽量不用 全局搜索 太耗性能 用transform.find()对象搜索 ViewBase.cs => 挂载的预制体上的脚本继承monobehaviour
29.30.31添加UI工具数据类 ---UIUtil.cs ***需要挂载在物体上 通过RectTransform属性的到物体的go btn Img Text 属性/// 给按钮加AddListener 给图片 setSprite /// 创建字典存储UI数据 ///查找得到数据
32. 在viewBase里调用 UIUtil(有需求才进行初始化) UIMgr里的栈和字典?
33.UIMgr里 UI的显示方法---- UI不能重叠,不用的要隐藏掉,覆盖的UI重复绘制,损耗性能
隐藏栈里的UI,显示根据提供的名称路径在字典里查找并显示,如果没有则生成UI预制体
34.完成界面的初始化 initview()和show()方法
35.界面上返回按钮的返回方法
36.硬代码const常量类/path ///安全的类型转换
37.startView.cs
38.UI 拼接 SelectedHeroView
39.SelectedHeroView.cs /// 给预制体添加路径,,添加同名脚本,,init()挂载按钮
40.SekctHero.cs /// HeroItem.cs
41. //******给集合指定一个容量,减少不必要的容量
_item = new List<HeroItem>(transform.childCount);
//**********在不确定集合大小的情况下使用
_item.Capacity = transform.childCount;
42. HeroItem.cs ---添加选择按钮点击事件 ,,改变颜色
43.******callbac********
44.数据存储分析
45.新建DataMgr.cs和 IDataMemory.cs
46.PlayerPrefsMemory.cs ///*************判断类型 及 类型转换**************
Type type = typeof(T);
//类型转换器
var converter = TypeDescriptor.GetConverter(type);
//****所有int型的typeof 都指向一个type
if (typeof(T)==typeof(int))
{
int value = PlayerPrefs.GetInt(key, 0);
return (T)converter.ConvertTo(value, type);
}
47.48.用字典优化if elseif 的重复逻辑
49.对应的set方法
50.DataMgr.cs对PlayerPrefsMemory.cs的调用