博客
关于我
Unity Editor 基础篇(一):Build-In Attribute
阅读量:627 次
发布时间:2019-03-12

本文共 1827 字,大约阅读时间需要 6 分钟。

Unity 内置属性笔记

本文为个人学习笔记,基于 AddComponentMenu 属性进行整理和总结。如需查看原文,请访问指定链接。

1. AddComponentMenu 属性

通过使用 융용ENCH 的内置属性 AddComponentMenu,可以将脚本添加到组件菜单中,方便通过Inspector创建组件。

using UnityEngine;using System.Collections;public class People : MonoBehaviour{	[AddComponentMenu("Learning/People")]    public string name;}

该属性适用于右键点击物体后选择添加组件的场景。

2. RequireComponent 属性

RequireComponent 属性用于强制在物体上添加指定组件,若已存在则不重复。注意,在代码修改后需重新添加该属性。

[RequireComponent(typeof(Rigidbody))]public class People : MonoBehaviour{	// 扩展部分...}

注意事项: 在物体已挂载脚本时,建议避免直接修改脚本属性,否则可能导致该属性失效。

3. ContextMenu 和 ContextMenuItem 属性

用于添加右键菜单选项,前者为菜单项设置回调函数,后者为变量设置额外方法。

public class People : MonoBehaviour{	[ContextMenuItem("OutputInfo")]    public void OutputInfo()    {        Debug.Log(name + "|" + age);    }}

另外,ContextMenuItem 也可用于格式化字符串编辑器输出。

4. HelpURL 属性

定义自定义帮助链接,可供在Inspector中点击查阅详细文档。

[HelpURL("http://www.baidu.com")]public class People : MonoBehaviour{	// 扩展部分...}

注意事项: 助手链接需以 http:// 或 https:// 开头。

5. 初始化属性

[InitializeOnLoad] 指示脚本在编辑器启动时执行,适用于需在游戏性运行之外初始化逻辑的场合。

模板示例如下:

public class StartUpScript : MonoBehaviour{	[InitializeOnLoad]	private void Awake() {}}

6. 范围控制和多行为组件属性

高级属性如 Range、Multiline 和 Header 可以提升开发体验。

示例:

[Header("BaseInfo")][Multiline(5)]public string desc = "通过设置这些属性,便可高度定制游戏交互体验;";[Range(-10, 10)]public int level = 0;[Space(50)][Tooltip("性别选择")]public string gender = "未设置";

说明: Header 为属性添加标题支持、Multiline 实现多行输入,Space 控制属性间距。

7. 位工具属性

Tooltip 和 Space 是现代UI开发中常用的细节优化工具。

[Space(50)][Tooltip("性别设置")]public string gender = "未设置";

可用场景: 在Forbidden设想中,专门处理性别和其他用途属性时非常实用。

8. 可序列化属性

控制变量的可序列化和可视化特性。以下是重点学习内容:

[System.Serializable]public class Student{    public string name;    public int age;}public class Teacher : MonoBehaviour{    public Student student;}

注意事项: 需要系统性学习可序列化类型和属性组合使用方法。

通过对这些属性的深入理解,可以显著提升脚本管理效率和可维护性。

希望这份笔记对您的学习有所帮助!如需进一步讨论,请联系作者。

转载地址:http://gqzxz.baihongyu.com/

你可能感兴趣的文章
Python3.5中协程和未来/任务之间的区别?
查看>>
python3.5实现socket通讯(TCP)
查看>>
python3.6 ubuntu部署nginx、 uwsgi、 django
查看>>
Python3.6.3中,functools似乎不能用
查看>>
python3.6.5+cuda9+cudnn7.1+win10+tensorflow-gpu1.9.0下载配置
查看>>
python3.6使用pickle序列化class
查看>>
python3.6入门到高阶(全栈) day027 网络通信协议 osi七层模型
查看>>
Python3.6属性错误:模块‘;异步没有属性‘;运行‘;
查看>>
python3.6版本中的python-weka-wrapper安装失败,错误代码为%1
查看>>
Python3.7安装cv2踩过的坑
查看>>
python写txt文件
查看>>
python关于sorted排序函数详细解析 附实战代码(全)
查看>>
python3.8调用m文件,调用matlab
查看>>
python3.9新特性_Python 3.9 新特性速览
查看>>
Python3.x:遍历select下拉框获取value值
查看>>
python360百科_11月编程排行榜:Python超过Java成第二
查看>>
Python关于Paginator分页函数详细解析 附实战代码
查看>>
python3、ipython3、setup-tools、pip等环境搭建详细总结
查看>>
python3下使用cv2.imwrite存储带有中文路径图片或者绝对路径图片
查看>>
python3与django中@property详解
查看>>