unity里面的Editor功能,Editor从字面理解为编辑器的意思,然我们可以利用它更方便的使用unity的引擎工具。
官方文档:https://docs.unity3d.com/ScriptReference/Editor.html
1.第一步,新建一个unity项目,然后新建一个脚本命名为MyActor,有两个属性【生命值/攻击力】;代码如下:
2.第二步,在项目中建一个Editor文件夹,这是做成可视化编辑器的关键;
3.第三步,直接写编辑器组件类,特别需要注意的是这个类需要继承Editor类,然后我把它命名为CatEditor.cs,并且放在Editor文件夹下; 代码如下:
4.最后,我们不需要运行项目,直接回到刚才对象的检视面板(Inspector),我们会发现,我们可以直接可视化操作MyActor.cs这个组件类
MyActor.cs
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
public
class
MyActor
:
MonoBehaviour
{
public
int
Health=100;//生命值
public
int
Attack=10;//攻击力
}
MyActorInspector.cs
using
UnityEditor;
using
UnityEngine;
[CustomEditor(typeof(MyActor))]
public
class
MyActorInspector
:
Editor
{
public
int
HealthProp;
public
int
AttackProp;
void
OnEnable()
{
MyActor
myActor = target
as
MyActor;
HealthProp = myActor.Health;
AttackProp = myActor.Attack;
}
public
override
void
OnInspectorGUI()
{
HealthProp =
EditorGUILayout.IntSlider("生命值",
HealthProp, 0, 100);
ProgressBar((HealthProp / 100.0f),
"生命值");
AttackProp =
EditorGUILayout.IntSlider("攻击力",
AttackProp, 0, 50);
ProgressBar((AttackProp / 100.0f),
"攻击力");
}
private
void
ProgressBar(float
value,
string
label)
{
//定义 Rect
Rect
rect =
GUILayoutUtility.GetRect(18, 18,
"TextField");
//创建progressbar
EditorGUI.ProgressBar(rect, value, label);
//添加一个空行
EditorGUILayout.Space();
}
}
来源:CSDN
作者:LQ小猩猩
链接:https://blog.csdn.net/LQ753799168/article/details/72614999