AddTo用于生命周期绑定,当这个函数的生命周期结束时就解绑删除
AddTo用于生命周期绑定,当这个函数的生命周期结束时就解绑删除
observable是一个事件流,可以调用unity的生命周期
单例(非线程安全)
private static PoolManager _instance;
public static PoolManager Instance{
get{
if(_instance==null){//判断是否已经创建过这个单例
_instance=new PoolManager();
}
return _instance;
}
}
private PoolManager(){}//单例的构造方法
public Init(){}
可以在StarCommand中初始化pool
创建配置文件不能直接new,需要使用
GameObjectPoolList poolList=ScriptableObject.CreateInstance<GameObjectPoolList>();
来创建
AssetDatabase.CreateAsset(pooList,"Assets/Framework/Resources/gameobjectpool.asset");
AssetDatabase.SaveAsset();
将配置文件保存至xxxx路径,使用saveAsset方法保存
创建一个类使之继承自ScriptableObject 表示把这个类变成可以自定义资源配置的文件
//索引器就是一种特殊的属性 实例属性
//索引器不允许 static
//索引器允许重载
链式编程
索引器
this关键字
增加拓展性和稳定性
多人协同开发中避免错误。
file.Exists()判断文件是否存在
跟编辑器有关的脚本放在Editor文件夹下
不用知道函数返回什么类型,可以使用typeof()定义一个用于接收该函数返回值的变量
声微饭否?
可以使Command继承自EventCommand,因为EC自带访问全局dispatch并且含有Ievent可以传递数据,不需要自己手动写
在接口IScoreService中添加
IEventDispatcher dispatcher{get;set;}
回到继承这个接口的ScoreService中实现,同样是用inject自动注入
回调通常使用event,所以我们再创建一个ServiceEvent枚举
public enum ServiceEvent{
RequestScore();
}
在RequstScoreCommand的Execute中添加监听器,用来响应返回的数据
Retain();
scoreService.dispatcher.AddListener(ServiceEvent.RequestScore,OnComplete);
命令只执行一次,执行完毕之后就会自动销毁,我们需要维持这个命令存在的话就需要用到retain函数
在执行完oncomplete,也就是回调完成之后使用release函数进行释放
语义 |
描述 |
SV_POSITION |
裁剪空间中的顶点坐标,结构体中必须包含一个用该语义修饰的变量。等同于DX9中的POSITION。 |
COLOR0 |
通常用于输出第一组顶点颜色,不是必须 |
COLOR1 |
通常用于输出第二组顶点颜色,不是必须 |
TEXCOORD0-TEXCOORD7 |
通常用于输出纹理坐标,不是必须 |
Application.Quit();
退出当前APP
不要使用自动layout的组件
bucuo
overDraw
重复绘制 造成性能损耗
栈 结构
单机游戏 界面不多
不要引入UI框架 约束太多 使用起来麻烦 有一定的学习成本
不要给当前的项目引入过多无谓的复杂的东西