初始化组件的四种方式

初始化组件

简介
在流水线似的开发中,某个脚本可以重复利用,其脚本上的属性有些也是固定的,在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记录操作
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐觉主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值