Unity引擎一些不容易发现的小技巧

8 篇文章 0 订阅

Unity引擎一些不容易发现的小技巧

1. transform可以直接遍历

之前我只知道可以通过GetChild来遍历tranform,但不知道可以直接遍历。

// 通过GetChild遍历
for (var i = 0; i < transform.childCount; ++i) {
	var child = transform.GetChild(i);
	Debug.Log(child.name);
}

// 直接遍历,更方便
foreach (var child in transform) {
    Debug.Log(child.name);
}

2. 延迟Destroy

但简单实用的技巧,一直没有发现。。

// 延迟2秒Destroy
GameObject.Destroy(gameObject, 2f);

3. 让SceneView的镜头跟踪指定GameObject

在运行时选中一个GameObject,按f可以让SceneView的镜头聚焦到这个GameObject,再按2下f可以让SceneView的镜头一直跟踪它。

这个技巧我在Unity2019.2.6里测试失败了,可能已经不支持了,大家可以试下自己的版本支不支持。

4. Layer的名字也支持用/分割。

如Actor/Monster,会显示如下:
在这里插入图片描述

5. Inspector里的数字框支持输入数学表达式

如在transform的Position里输入1+1,按回车后会自动变成2。

6. 同时查看2个GameObject的Inspector

点击Inspector右上角的?可以锁定Inspector,这时再选中其他物体,Inspector也不会改变。
同时可以打开一个新的没锁定的Inspector(通过?右边的小按钮),这样就可以同时打开2个不同GameObject的Inspector,对比着修改参数。

7. Debug.Log可以加上一个Object的参数,这样打印出来的log点击后会高亮这个Object。

Debug.Log("pos = " + transform.position, gameObject);

点击这条log,Hierarchy界面里对应的gameObject会高亮一下。这样就能很清晰地知道是哪个GameObject打印的log。

8. 通过AnimationCurve来显示一个不停改变的值的曲线。

有时我们会在Update里打印一个数值,来持续观察这个数值的改变。不过这样会导致Console界面里的log太多,而且不容易观看。
这时可以创建一个AnimationCurve的成员变量,每次将新的值添加到这个变量中,这样就可以在Inspector里查看这个值改变的曲线。

public class ExampleScript : MonoBehaviour
{
    public AnimationCurve plot = new AnimationCurve();

    void Update()
    {
        var val = Mathf.Sin(Time.time);
        plot.AddKey(Time.realtimeSinceStartup, val);
    }
}

在这里插入图片描述
在这里插入图片描述

9. 在Project界面里将1个Scene拖到另一个Scene上,会将这2个Scene合并出一个新的Scene。

10. Inspector里的List变量支持一次拖入多的Item。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值