Unity Tips

[UnityEditor.InitializeOnLoad] 修饰类 每次修改这个类的内容,就会重新执行一变构造方法
[UnityEditor.InitializeOnLoadMethod] 修饰方法 也会在构造方法之后执行一遍
[UnityEditor.InitializeOnEnterPlayMode] 修饰方法 编辑器脚本来初始化静态变量或者静态事件处理器

[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
[RuntimeInitializeOnLoadMethod]
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]


执行顺序

[DefaultExecutionOrder(-50)] 脚本执行顺序

查找所有对象 包括隐藏
Resources.FindObjectsOfTypeAll<>()

// .NET 4.x
Debug.Log($"Player health: {Health}");

如果Maximum Allowed Timestep设置为0.1秒,当某次Update的时间(某帧)超过0.1时,
Time.deltaTime的时间其实还是0.1,因而导致比实际的时间慢了。
使用Time.unscaledDeltaTime替换Time.deltaTime来实现定时器。

await
WaitUntil

打印堆栈
string trackStr = new System.Diagnostics.StackTrace().ToString();
Debug.Log ("Stack Info:" + trackStr);

BitConverter.GetBytes(float)
BitConverter.ToSingle(byteArr, 0)

this.GetType().Name 当前类名

Enum.GetValues(typeof(MyEnum));

Application.logMessageReceived

csc.rsp C#编译选项

MonoPInvokeCallback:C调C#
ZFBrowser
https://blog.csdn.net/han15939423461/article/details/78033511
https://blog.csdn.net/yhx956058885/article/details/107004676

Assets/Plugins/Android/xxx.jar
Assets/zzz/Plugins/Android/xxx.jar
Asset/Plugins/Android/zzz/libs/xxx.jar

有project.properties时 jar包的Android属性要勾掉

下载文件
HttpWebRequest c#
UnityWebRequest
WWW 老api
WebClient

安卓中一个页面为Activity,只能有一个Application
iOS中一个页面为Controller

在iOS中静态库以.a和.framework的形式存在,动态库以.dylib和.framework的形式存在。
苹果禁止用户级App使用动态库,所以iOS中系统级的.framework是动态库,用户级的.framework是静态库。
.a是纯二进制文件,不能单独使用,要有.h文件配合。而.framework除了二进制文件外,还包含一些资源文件(头文件,plist等),由于自身包含了头文件,所以.framework可以单独使用

编辑器扩展
菜单栏:修饰函数 [MenuItem("Tools/XXXX")]
创建资源:修饰类 [CreateAssetMenu(fileName = "文件名", menuName ="菜单名")]
创建窗口:XXX继承EditorWindow,[CustomEditor(typeof(XXX))] 修饰
Inspector右键菜单:修饰函数 [ContextMenu("XXX")]
扩展Inspector属性:继承Editor,[CustomEditor(typeof(原有类))]

AssetDatabase.FindAssets()
AssetDatabase.GUIDToAssetPath()
AssetDatabase.LoadAssetAtPath<>()
AssetDatabase.ImportAsset();
Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);

手机性能优化
打开Graphics Jobs: 效果明显
关闭GPU Skinning(Compute Skinning):效果不明显
关闭Multithread Render:效果不明显

Unity中各类物理投射性能横向比较

Unity - 射线检测

Unity匿名函数的堆内存优化

逆向工具

你可能感兴趣的:(Unity Tips)