Unity、VS100个小窍门
整理自B站Up风农的翻译视频
<u>https://www.bilibili.com/video/av41803168</u>
视频取自Brackeys:<u>http://bit.ly/1kMekJV</u>
使用的版本是unity 2018.3和visual stdio 2017
有错误欢迎指出,会及时修正。
1. selection outline
场景视图右上角Gizmos可以选择selection outline和selection wire选项

2. Pixel Perfect Camera组件可以让像素画现实的更清楚
不过需要在Window/PackageManage 添加2DPixelPerfect
3. Sprite Y-based Sorthing精灵可以按照y轴坐标来排序显示
Sprite renderer精灵前后控制






4. Destory deley

等待2s删除
5. Create material from shader
右键点击shader创建material会创建相应shader的材质球并用shader命名
6. 执行没有空对象的代码Execute code without empty object
不需要再场景中创建空物体就可以执行代码

7. 保存播放模式的修改save changes in play-mode
在运行模式下复制组件(物体),在正常模式下复制(物体,物体注意脚本挂载问题)。
8. Random.value随机数

9. Struct instead of Class
只存储几个变量时,可以考虑用结构体而不是类,减少垃圾回收

10. Auto-statements
给出表达式的前缀,双击Tab能生成其余部分
11. Coroutine协程

12. 动画可以保存绝大部分东西
要改变代码需要加上[System.Serializabele]
13.14.Aimation动画快捷键
A可以选中动画中所有东西,f可以聚焦显示所有帧,C可以打开关闭曲线视图,按K可以添加关键帧
15. 速度设置成-1可以倒放动画
16. 比较两个点距离
不要使用vector3.distance, 把两个点相减并获得sqrMagnitude属性,同时把比较的数平方。
目的不算平方根,算平方根比较耗时。


17.TextMeshPro替代默认text组件
可以获得更多的控制属性,和更清晰的显示效果
18.SerializeField属性可以在面板显示private变量

19. Hidelnlnspector属性,可以在面板隐藏public变量

20. FormerlySerializedAs属性重命名一个变量并保留之前的值

21. 可以吧文件夹快捷方式放到Unity项目里方便打开常用文件夹
22.23.Focus选中一个对象按f可以聚焦显示,在按两下f可以聚焦跟踪
24.在场景视图选中摄像机按Ctrl+Shift+F可以吧摄像机对其当前场景试图(其他物体也可以用此方法改变坐标)
25.比较Tag,CompareTag函数
比较两个标签时尽量不要用双等号,用CompareTag函数更有效率


26.创建空白物体作为分隔符

27.Hierarchy视图查找带有组件的对象(需要打出完整组件名称)

28.Project视图 t: 文件后缀搜索

29. 调整代码行顺序Alt+ 上下剪头,不用复制粘贴
30. 查找文档

31. 了解版本改动信息Documentation

32. 按下Alt可以展开,关闭所有子对象
33. Unity界面布局可以自己调整,并保存
34. Edit/Preferences Color菜单里,可以改变编辑器颜色,包括场景背景颜色。
35. 可以调整Playmode tint颜色是unity在播放时改变颜色

36.toogle场景效果
场景试图下拉菜单,选择需要显示的特效

37.[MenuItem]

38.[ContextMenu]会绑定到上下文菜单里

39.把对象分割成不同的层,可以方便在场景中打开关闭

40. 可以锁定某一层,放置不小心移动。
41. 创建层 可以通过/创建子菜单 方便整理项目


42. Project Settings player下Scripting define symbols
定义C#全局宏定义, 控制编译时包含或忽略的某段代码


43. 取色器可以识别unity编辑器以外的颜色
44. 颜色可以复制粘贴。
45. Shift+空格可以最大化窗口
46. 序列化结构和类[System.Serializabele]可在面板中编辑,可做动画

47.Preferences菜单下碰撞矩****阵****可以控制层次间碰撞关系

48.同一个层次下 不同类型碰撞体之间的交互效果。

49. Inspector属性框可以做数学与运算

50. untiy允许锁定Inspector 方便大家打开第二个inspector在两个对象之间考虑参数
51. 检视视图下拉菜单Debue选项,可以看变量的所有变量,包括私有变量

52. debug.logs游戏对象,点击输出log时自动关联游戏对象。

53. DebugLog支持简单样式,美化控制台输出

54.随时间变化的变量,通过AnimationCurve做曲线



55.快捷创建脚本

56. unity可以读取一些应用文件的保存文件,比如psd maya
57.保持photoshop图层

58.在检视视图给对象设置图标
59.点击other可以自定义图标

60.61.在场景视图,和游戏视图中可以开启、隐藏某种组件图标

62. stringBuilder拼接字符串更有效率

63. ScriptableObject可以创建Editer对象适合保存游戏内物品和成就等信息,


64.Preferences可以选择游戏运行时脚本所对应的的行为

65.editorwindow自定义窗口
66.自定义检视面板代码


67. qwert切换工具
68. 使用RectTransform也可以用来缩放3d物体

69. 按住Ctrl移动物体每次移动整数单位
70. 在Editor/Snap settings里可以控制按住Ctrl每次位移大小

71. 按住v可以捕获物体定点,也可以定点对齐
72. 创建自定义的程序集可以缩短c#的程序时间,
创建AssemblyDefinition移动到想要文件夹下,这个文件夹下脚本都会编辑到次程序集

73. time.timescale=0时, yield return new wait WaitForSeconds永远不会生效
可以将WaitForSeconds换成WaitForSecondsRealtime


74.把频繁使用的组件变成私有变量提高性能

75.不要使用Camera.main
其实就是下面车一串代码

76.如果常用某个字符串,可以使用static readonly代替避免每次都申请一小块内存

77. [Range(0f,10f)]在检视视图创建滑动条
78. [Space]在检视视图添加一个空行
79. [Header(“文字”)]在检视视图添加一行文字
80. [Tooltip(****“****Remenber,Dwayne is alwys cool.****”****)]在检视视图鼠标悬浮时的提示。
81. 再浏览器和unity编辑器都可以打开素材商店
82. 可以把一个场景文件拖到另一个场景文件上合并他们
83. Ctrl+D复制一个游戏对象
84. 也可以复制一个数组项

85. Editor Presets
可以用编辑器预设保存组件的设置,可以保存或切换预设

86. 遍历对象的所有直接子对象
Foreach(Transform child in transform)
{
Debug.log(child.name);
}
87. transform.SetSiblingIndex(1)可以修改物体在层次视图的显示顺序。
88. 在Editor/Selection可以保存当前选中对象。

-
Region #endRegion给代码分区并添加折叠块
不过要小心不要让代码变得越来越长
- EditorApplication.isPaused = true;可以暂停编辑器

** 暂停按钮旁边的逐帧运行按钮,可以让程序每次运行一帧**
92. Statistics可以显示大致游戏数据
93. 更详细的性能信息在ProfilerWindow里查看
94. 可以用下面几行代码在Profiler里检测程序的具体运行情况
Void Update()
{
Profiler.BeginSample(“expensive”);
CalculateSomething();
Profiler.EndSample();
}

95. 右键点击预览窗口可以让他脱离出来,变成一个普通窗口

96.Mute your game静音按钮 游戏视图顶部有静音按钮,可以吧游戏静音

97.InvokeRepeating函数在已经激活的游戏对象上会永远激活下去。
InvokeRepeating(“DoSomeThing”,0.5f,0.5f);

98.Frame Debugger窗口可以显示每一帧详细的渲染信息。


99. Physics Debugger可以显示物体的碰撞形状,可以用来定位碰撞提相关的错误

100.永远不要再做MMORPG了
(视频里这么说的 我也不知道为啥。)
网友评论