还有这种操作?--掌握了这些小技巧,让你事半功倍(Unity3D)(一)

简介: 掌握一些Unity编辑器的小技巧,会让你开发以及使用更加快捷有效。这篇文章就分享一些Unity在使用使用的一些小技巧,有什么不对的记得留言哦。

一、前言

掌握一些Unity编辑器的小技巧,会让你开发以及使用更加快捷有效。这篇文章就分享一些Unity在使用使用的一些小技巧,有什么不对的记得留言哦。


二、原文地址

原文出处:蛮牛 原文作者:蛮牛教育讲师 邵伟老师 原文链接:www.manew.com/thread-1432…


三、正文


1.高亮选择

在Scene面板右上角的Gizmo下拉列表中,可以通过设置Selection Outline选项决定是否在选中物体时显示边缘高亮的标识。

网络异常,图片无法展示
|


2.Pixel Perfect Camera

在摄像机上挂载Pixel Perfect Camera组件能够使2D像素风格的游戏画面更加整洁清晰。此组件需要使用Package Manager安装2D Pixel Perfect包。

网络异常,图片无法展示
|


3.以Y轴为依据进行Sprite排序

对于2D游戏,将Transparency Sort Mode (Edit > Project Settings > Graphics ) 设置为Custom Axis,然后设置Transparency Sort Axis,场景中的Sprite可以根据Y轴进行排序。如下图所示,当设置为(0,1,0)时,Y坐标相对较大的Sprite排在Y坐标相对较小的Sprite之下,当设置为(0,-1,0)时,则相反。

网络异常,图片无法展示
|
网络异常,图片无法展示
|


4. 延迟销毁游戏对象

默认情况下,使用Destroy()方法会立即销毁游戏对象,如果想延迟一段时间再销毁,可在此方法中传递一个时间参数,如下:

Destroy(gameObject,2f);
复制代码


5.快速新建基于自定义Shader的材质

在Project面板中选中一个自定义Shader,右键选择新建材质(Create>Material),则材质默认使用的着色器为z之前选择的Shader,同时材质名称为Shader的名称。


6.脚本不挂载到游戏对象执行

通常情况下,新建的脚本要挂载到游戏对象上才能运行,如果在脚本中的方法前使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)],可以不用挂载到任何游戏对象上即可在程序运行时执行此方法,方便在在程序初始化前做一些额外的初始化工作。如下代码所示:

[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
public static void DoSomething()
{
    Debug.Log("It's the start of the game");
}
复制代码


7.保存程序运行时组件属性的改变

在程序运行时改变组件的各属性值,当停止运行后,这些改变将重置为编辑状态下的数值,。程序运行时改变了组件的属性值,可以点击组件右上角的齿轮按钮,选择Copy Component命令,停止播放后,在相同的组件上,执行Paste Component Value,从而能够保存在运行时对该组件做出的改变。

网络异常,图片无法展示
|


8. 获取一个随机布尔值

我们知道Random.value能够返回0~1之间的随机数,所以让此随机数与0.5f进行比较,就能够获取一个随机的布尔值True或者False,如下代码所示:

bool trueOrFalse = (Random.value > 0.5f);
复制代码


9. 使用Struct代替Class

如果数据结构仅保存了有限的几个数值变量,可以考虑使用struct代替Class,因为Class实例由垃圾回收机制来保证内存的回收处理;而struct变量使用完后立即自动解除内存分配。

网络异常,图片无法展示
|


10. Visual Studio 自动语句补全
网络异常,图片无法展示
|

当使用Visual Studio进行代码编写时,可双击Tab键来辅助完成像if、for、switch等语句的补全。


11.协程嵌套

在一个协程里开启另外一个协程,可使用以下方法:

void Start()
{
    StartCoroutine(FirstCo());
}
IEnumerator FirstCo()
{
    yield return StartCoroutine(SecondCo());
}
IEnumerator SecondCo()
{
    yield return 0;
}
复制代码


12.脚本变量参与动画制作

使用工具还可以改变脚本的变量。

网络异常,图片无法展示
|


13/14. Animation窗口快捷键

在Animation窗口中,按下Ctrl+A,所有关键帧将集中显示在窗口中;选择某些关键帧,按下F键,可将它们居中显示在窗口中;按下C键,可以在曲线视图和关键帧视图间切换;按下K键添加关键帧。


15.反向播放动画

在Animator窗口中,设置动画的Speed属性为-1可使动画片段反向播放。

网络异常,图片无法展示
|


16.快速比较距离

将两点之间的距离与一个固定距离进行比较时,可使两点相减然后取平方(即sqrMagnitude),然后用该值与某个距离值的平方进行比较。不建议使用Vector3.Distance方法获取两点之间距离,然后与给定的距离值进行比较。因为Vector3.Distance(a,b) 相当于 (a-b).magnitude,即求平方后开根,而sqrMagnitude方法省去了求平方根的操作,所以比magnitude执行快。 建议:

if ((pointA - pointB).sqrMagnitude < dist * dist)
{
}
复制代码

不建议:

if (Vector3.Distance(pointA, pointB) < dist)
{
}
复制代码


17.使用TextMeshPro

使用TextMeshPro能够获得更多的文字控制自由度,并且能够有效防止文字边缘模糊。如下图所示,第一行文字通过"Create > UI > Text"命令创建,第二行文字通过"Create > UI > TextMeshPro - Text"命令创建。

网络异常,图片无法展示
|


18.在Inspector面板中显示私有变量

将私有变量标记为SerializeField,可在Inspector面板中将其显示。

[SerializeField]
private int myNumber = 20;
复制代码


19. 在Inspector面板中隐藏公有变量

如果不希望在Inspector面板中显示公有变量,可将其标记为[HideInInspector]。

public int myNumber = 20;
复制代码


20. 变量重命名后继续保持值

当变量重命名后,如果希望继续保留其数值,可使用FormerlySerializedAs,如下代码所示:

[FormerlySerializedAs("hp")]
public int myNumber = 20;
复制代码

需要引用命名空间:

using UnityEngine.Serialization;
复制代码


相关文章
|
4月前
|
图形学
【unity小技巧】受伤屏幕闪红、死亡动画、死亡黑屏效果
【unity小技巧】受伤屏幕闪红、死亡动画、死亡黑屏效果
99 2
|
4月前
|
图形学 开发者
【Unity小技巧】unity移动物体的探究——使用8个不同方法
【Unity小技巧】unity移动物体的探究——使用8个不同方法
76 1
|
4月前
|
图形学
【unity小技巧】实现投掷物品,比如长矛,刀具,手榴弹和其他物体
【unity小技巧】实现投掷物品,比如长矛,刀具,手榴弹和其他物体
44 1
|
4月前
|
图形学
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
60 1
|
4月前
|
Go 图形学
【Unity小技巧】3D人物移动脚步和跳跃下落音效控制
【Unity小技巧】3D人物移动脚步和跳跃下落音效控制
29 1
|
4月前
|
图形学
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
127 0
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
|
4月前
|
图形学
【unity小技巧】Unity中实现一个战斗连击连招系统,可以动态添加减少连击连招段数功能
【unity小技巧】Unity中实现一个战斗连击连招系统,可以动态添加减少连击连招段数功能
74 0
|
4月前
|
存储 图形学
【unity小技巧】unity事件系统创建通用的对象交互的功能
【unity小技巧】unity事件系统创建通用的对象交互的功能
41 0
|
4月前
|
图形学
【unity小技巧】unity通过代码进行更改后处理效果
【unity小技巧】unity通过代码进行更改后处理效果
47 0
|
4月前
|
图形学
【unity小技巧】unity3D寻路指示轨迹预测
【unity小技巧】unity3D寻路指示轨迹预测
54 0
下一篇
无影云桌面