unity
清除启动界面工程
cd /Users/<yourUserName>/Library/Preferences/
cat com.unity3d.UnityEditor5.x.plist
defaults read com.unity3d.UnityEditor5.x.plist
defaults delete com.unity3d.UnityEditor5.x "RecentlyUsedProjectPaths-0"
打印调用堆栈
string trackStr = new System.Diagnostics.StackTrace().ToString();
Debug.Log ("Stack Info:" + trackStr);
积累
- Unity是单线程设计的游戏引擎,子线程中无法运行Unity SDK
- Unity主循环是单线程,游戏脚本MonoBehavior有着严格的生命周期
- 倾向使用time slicing(时间分片)的协程(coroutine)去完成异步任务
组件图

常见热更方案
利用c#反射,动态加载程序集,实现代码更新
// 从指定网址下载
Assembly assembly = Assembly.LoadFile(assemblyFile);
创建Lua虚拟机,动态加载Lua脚本
-
腾讯-xLua方案
XLua.LuaEnv luaenv = new XLua.LuaEnv();
luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
luaenv.Dispose();
-
tolua-号称最快
LuaState lua = new LuaState();
lua.Start();
lua.DoString("print('hello world')");
lua.Dispose();