unity:知识区(篇二)

Posted 肖尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity:知识区(篇二)相关的知识,希望对你有一定的参考价值。

1.C#运算符

【A++】先赋值再自增

【Sizeof】属于运算符、用于获取非托管类型的大小(以字节为单位)。

非托管类型包括下表列出的内置类型以及以下类型:枚举类型、指针类型、用户定义的结构,不包含任何属于引用类型的字段或属性

对于所有其他类型(包括结构),sizeof 运算符只能在不安全代码块中使用。 虽然可以使用 Marshal.SizeOf 方法,但此方法返回的值并不总是与 sizeof 返回的值相同。 Marshal.SizeOf 在封送类型后返回大小,而 sizeof 返回公共语言运行时分配的大小(包括所有填充)。

检索int的大小:// Constant value 4: int intSize = sizeof(int);

【Typeof】属于运算符、返回 class 的类型。

【&】属于运算符、返回变量的地址。

【*】属于运算符、变量的指针。将得到变量的实际地址

【?:】属于运算符、条件表达式。

如果条件为真 ? 则为 X : 否则为 Y.

Exp1 ? Exp2 : Exp3;

【Is】属于运算符、判断对象是否为某一类型。If( Ford is Car) // 检查 Ford 是否是 Car 类的一个对象。

C#判断

【If】判断语句关键字

代码结构:

if()

...



else

...


2.延迟销毁游戏对象

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

bool trueOrFalse = (Random.value > 0.5f);

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

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

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

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

[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
public static void DoSomething()

    Debug.Log("It's the start of the game");

5.获取一个随机布尔值

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

bool trueOrFalse = (Random.value > 0.5f);

6. Visual Studio 自动语句补全

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

7.协程嵌套

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

void Start()

    StartCoroutine(FirstCo());


IEnumerator FirstCo()

    yield return StartCoroutine(SecondCo());


IEnumerator SecondCo()

    yield return 0;

8.Animation窗口快捷键

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

9.快速比较距离

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

建议:

if ((pointA - pointB).sqrMagnitude < dist * dist)


10.使用TextMeshPro

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

以上是关于unity:知识区(篇二)的主要内容,如果未能解决你的问题,请参考以下文章

unity:知识区(篇四)

unity:知识区(篇三)

篇二:网络部分 面试知识点(下)

Unity3d导入的树木风区无法正常工作

SpringBoot系列之集成logback实现日志打印(篇二)

Linux三剑客awk命令篇二:命令操作符