unity3D技术分享Unity技术分享

Unity和Vs的100个小窍门

2019-05-10  本文已影响21人  boy真鬼

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选项

image.png

2. Pixel Perfect Camera组件可以让像素画现实的更清楚

不过需要在Window/PackageManage 添加2DPixelPerfect

3. Sprite Y-based Sorthing精灵可以按照y轴坐标来排序显示

Sprite renderer精灵前后控制

image.png
image.png
image.png
image.png
image.png
image.png

4. Destory deley

image.png

等待2s删除

5. Create material from shader

右键点击shader创建material会创建相应shader的材质球并用shader命名

6. 执行没有空对象的代码Execute code without empty object

不需要再场景中创建空物体就可以执行代码

image.png

7. 保存播放模式的修改save changes in play-mode

在运行模式下复制组件(物体),在正常模式下复制(物体,物体注意脚本挂载问题)。

8. Random.value随机数

image.png

9. Struct instead of Class

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

image.png

10. Auto-statements

给出表达式的前缀,双击Tab能生成其余部分

11. Coroutine协程

image.png

12. 动画可以保存绝大部分东西

要改变代码需要加上[System.Serializabele]

13.14.Aimation动画快捷键

A可以选中动画中所有东西,f可以聚焦显示所有帧,C可以打开关闭曲线视图,按K可以添加关键帧

15. 速度设置成-1可以倒放动画

16. 比较两个点距离

不要使用vector3.distance, 把两个点相减并获得sqrMagnitude属性,同时把比较的数平方。

目的不算平方根,算平方根比较耗时。

image.png image.png

17.TextMeshPro替代默认text组件

可以获得更多的控制属性,和更清晰的显示效果

18.SerializeField属性可以在面板显示private变量

image.png

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

image.png

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

image.png

21. 可以吧文件夹快捷方式放到Unity项目里方便打开常用文件夹

22.23.Focus选中一个对象按f可以聚焦显示,在按两下f可以聚焦跟踪

24.在场景视图选中摄像机按Ctrl+Shift+F可以吧摄像机对其当前场景试图(其他物体也可以用此方法改变坐标)

25.比较Tag,CompareTag函数

比较两个标签时尽量不要用双等号,用CompareTag函数更有效率

image.png image.png

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

image.png

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

image.png

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

image.png

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

30. 查找文档

image.png

31. 了解版本改动信息Documentation

image.png

32. 按下Alt可以展开,关闭所有子对象

33. Unity界面布局可以自己调整,并保存

34. Edit/Preferences Color菜单里,可以改变编辑器颜色,包括场景背景颜色。

35. 可以调整Playmode tint颜色是unity在播放时改变颜色

image.png

36.toogle场景效果

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

image.png

37.[MenuItem]

image.png

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

image.png

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

image.png

40. 可以锁定某一层,放置不小心移动。

41. 创建层 可以通过/创建子菜单 方便整理项目

image.png image.png

42. Project Settings player下Scripting define symbols

定义C#全局宏定义, 控制编译时包含或忽略的某段代码

image.png image.png

43. 取色器可以识别unity编辑器以外的颜色

44. 颜色可以复制粘贴。

45. Shift+空格可以最大化窗口

46. 序列化结构和类[System.Serializabele]可在面板中编辑,可做动画

image.png

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

image.png

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

image.png

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

image.png

50. untiy允许锁定Inspector 方便大家打开第二个inspector在两个对象之间考虑参数

51. 检视视图下拉菜单Debue选项,可以看变量的所有变量,包括私有变量

image.png

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

image.png

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

image.png

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

image.png image.png image.png

55.快捷创建脚本

image.png

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

57.保持photoshop图层

image.png

58.在检视视图给对象设置图标

59.点击other可以自定义图标

image.png

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

image.png

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

image.png

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

image.png image.png

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

image.png

65.editorwindow自定义窗口

66.自定义检视面板代码

image.png image.png

67. qwert切换工具

68. 使用RectTransform也可以用来缩放3d物体

image.png

69. 按住Ctrl移动物体每次移动整数单位

70. 在Editor/Snap settings里可以控制按住Ctrl每次位移大小

image.png

71. 按住v可以捕获物体定点,也可以定点对齐

72. 创建自定义的程序集可以缩短c#的程序时间,

创建AssemblyDefinition移动到想要文件夹下,这个文件夹下脚本都会编辑到次程序集

image.png

73. time.timescale=0时, yield return new wait WaitForSeconds永远不会生效

可以将WaitForSeconds换成WaitForSecondsRealtime

image.png image.png

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

image.png

75.不要使用Camera.main

其实就是下面车一串代码

image.png

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

image.png

77. [Range(0f,10f)]在检视视图创建滑动条

78. [Space]在检视视图添加一个空行

79. [Header(“文字”)]在检视视图添加一行文字

80. [Tooltip(****“****Remenber,Dwayne is alwys cool.****”****)]在检视视图鼠标悬浮时的提示。

81. 再浏览器和unity编辑器都可以打开素材商店

82. 可以把一个场景文件拖到另一个场景文件上合并他们

83. Ctrl+D复制一个游戏对象

84. 也可以复制一个数组项

image.png

85. Editor Presets

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

image.png

86. 遍历对象的所有直接子对象

Foreach(Transform child in transform)

{

Debug.log(child.name);

}

87. transform.SetSiblingIndex(1)可以修改物体在层次视图的显示顺序。

88. 在Editor/Selection可以保存当前选中对象。

image.png
  1. Region #endRegion给代码分区并添加折叠块

不过要小心不要让代码变得越来越长

  1. EditorApplication.isPaused = true;可以暂停编辑器
image.png

** 暂停按钮旁边的逐帧运行按钮,可以让程序每次运行一帧**

92. Statistics可以显示大致游戏数据

93. 更详细的性能信息在ProfilerWindow里查看

94. 可以用下面几行代码在Profiler里检测程序的具体运行情况

Void Update()

{

Profiler.BeginSample(“expensive”);

CalculateSomething();

Profiler.EndSample();

}

image.png

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

image.png

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

image.png

97.InvokeRepeating函数在已经激活的游戏对象上会永远激活下去。

InvokeRepeating(“DoSomeThing”,0.5f,0.5f);

image.png

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

image.png
image.png

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

image.png

100.永远不要再做MMORPG了

(视频里这么说的 我也不知道为啥。)

上一篇 下一篇

猜你喜欢

热点阅读