初始化组件
简介
在流水线似的开发中,某个脚本可以重复利用,其脚本上的属性有些也是固定的,在Inspector面板不想一次次拖拽,一次次给其赋值。
示例
解释说明
第一种:点 isOn 给脚本属性赋值
第二种:右键脚本,点击 “初始化脚本属性值”
第三种:分别右键脚本上的属性 点击“重置”
第四种:(脚本要放在Editor文件夹下)
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InitComponent : MonoBehaviour
{
#region 示例属性
[ContextMenuItem(“重置”, “RestHp”)]
public int Hp;
[ContextMenuItem(“重置”, “RestName”)]
public string Name;
[ContextMenuItem(“重置”, “RestCamera”)]
public Camera cam;
#endregion
void Start()
{
}
void Update()
{
}
#region 第一种方式
public bool isOn;
private void OnValidate()
{
if (isOn)
{
Hp = 100;
Name = "孙悟空";
cam = Camera.main;
isOn = false;
}
}
#endregion
#region 第二种方式
[ContextMenu("初始化脚本组件的属性值")]
private void InitComValue()
{
Hp = 50;
Name = "玉皇大帝";
cam = Camera.main;
}
#endregion
#region 第三种方式
void RestHp()
{
Hp = 0;
}
void RestName()
{
Name = null;
}
void RestCamera()
{
cam = null;
}
#endregion
}
第四种
[MenuItem(“CONTEXT/Transform/test”)]//给组件添加按钮:CONTEXT+组件名+按钮名
static void Test4(MenuCommand menuCommand)//MenuCommand 正在操作的组件
{
Transform trans = (Transform)menuCommand.context;
Undo.RecordObject(trans, “trans”);//记录在此函数之后对trans对象做出的任何更改
trans.localScale = Vector3.forward;
Debug.Log(trans.localScale);
Undo.DestroyObjectImmediate(trans.gameObject);//Undo记录操作
}