unity:知识区(篇四)

Posted 肖尘

tags:

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

1.高亮显示Debug.Log对应的游戏对象

当使用Debug.Log方法输出信息时,可将gameObject作为此方法的第二个参数,当程序运行时,点击Console面板中对应的输出信息,可在Hierarchy面板中高亮显示挂载了此脚本的游戏对象。

void Start()

    Debug.Log("this is a message",gameObject);

2.风格化Debug.Log的输出信息

当Debug.Log方法的输出消息是字符串时,可以使用富文本标记来强调内容。如下代码所示:

Debug.Log("<color=red>Fatal error:</color> AssetBundle not found");

输出结果

3.绘制调试数据

当变量随着时间的推进而改变时,可使用AnimationCurve实例在程序运行时绘制此数据,如下代码所示:

public AnimationCurve plot = new AnimationCurve();
void Update()

    float value = Mathf.Sin(Time.time);
    plot.AddKey(Time.realtimeSinceStartup, value);

返回Unity编辑器,运行程序,点击plot属性,此时会随着时间动态绘制数据的变化情况,如下图所示:

4.导入后保留PSD文件的图层结构

将PSD文件另存为PSB格式,将其导入Unity后可保留文件图层结构,此时需要在Package Manager中安装2D PSD Importer,并且在文件的导入属性中设置Texture Type 为Sprite (2D and UI)。

5.为游戏对象指定/自定义图标

点击游戏对象Inspector面板左上角的下拉菜单,可为游戏对象指定一个特定颜色的标识,这对空游戏对象的可视化也比较有用。点击Other…按钮,可以用自己的图片来进行标识。

6.显示/隐藏Gizmo

点击Scene面板右上角的Gizmo下拉列表,可以选择显示或隐藏某类组件的图标和Gizmo标识;也可点击Game面板右上角的Gizmo按钮,显示或隐藏所有资源的图标和Gizmo。

7.字符串拼接

可使用StringBuilder进行字符串的拼接,不要使用字符串相加的形式,因为这样会带来额外的内存垃圾。如下代码所示:

StringBuilder myStr = new StringBuilder();
myStr.Append("Hello").Append("The").Append("World");

使用StringBuilder需要引用命名空间System.Text。

8.使用ScriptableObjects管理游戏数据

对于游戏数据比如武器、成就等,可使用ScriptableObjects在编辑器中进行有效组织。如下代码所示:

using UnityEngine;

[CreateAssetMenu(fileName = "New Item", menuName = "Item")]
public class NewBehaviourScript : ScriptableObject

    public string ItemName;
    public int ItemLevel;
    public Texture2D ItemIcon;


9.编辑器播放时修改脚本后的处理

选择 Edit > Preferences > General 命令,在Script Changes While Playing中,可以设置编辑器在播放状态下如果脚本发生改变后的处理,比如停止播放重新编译等。

10.自定义窗口

将类继承自EditorWindow,可以添加自定义窗口,在此基础上编写一些命令和工具,如下代码所示:

using UnityEngine;
using UnityEditor;

public class ExampleWindow : EditorWindow

    [MenuItem("Window/Example")]
    public static void ShowWindow()
    
        GetWindow<ExampleWindow>("Example");
    

效果如下:

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

unity:知识区(篇二)

unity:知识区(篇三)

Unity微信聊天框界面制作

Unity---遇到的一些坑和小知识

无用的知识(日历矩阵)

Inspector 左上角的复选框在 Unity 中有啥作用?