Editor_ScriptableWizard,ShowNotification 学习04

using UnityEditor;
public class Editor_EnemyChange : ScriptableWizard {
    /**
     * 1.此脚本继承scriptableWizard
     * 2.使用menuItem创建菜单栏,在此方法中使用ScriptableWizard.DisplayWizard方法
     * 3.ScriptableWizard.DisplayWizard系统函数的调用,有可两个按钮(createButton,otherButton)
     * 4.1 认知系统函数 OnWizardCreate()  OnWizardUpdate()        OnSelectionChange()-->EditorWindow
     * 4.2 认知系统函数 OnWizardOtherButton()
     * **/
    [MenuItem("EditTools/创建对话框", false, 15)]
    public static void CreateWizard()
    {//以下为一        //ScriptableWizard.DisplayWizard<Editor_EnemyChange>("统一修改敌人的属性", "右下角的按钮,默认是create_( 可以选 中 prefab 让 enemyHealth 自增值)");
    }

    //系统默认的函数名 右下角的按钮
    void OnWizardCreate()
    {
        GameObject[] enemyGOS = Selection.gameObjects;
        foreach (GameObject item in enemyGOS)
        {
            CompleteProject.EnemyHealth eH = item.GetComponent<CompleteProject.EnemyHealth>();
            Undo.RecordObject(eH, "modify health and speed");//写上此句,使其有记录,可以ctrl+z 撤销修改的值
            eH.startingHealth += modifyEnemyHP;
            eH.sinkSpeed += modifyEnemySpeed;
        }
        Debug.LogError(" 可以选 中 prefab 让 enemyHealth 自增值 click 右下角");
    }

    public int modifyEnemyHP = 10;
    public int modifyEnemySpeed = 10;
    //系统 函数
    void OnWizardUpdate()
    {
        Debug.LogError("1.当前调用时会输出   2.当修改值时会输出");
        if (Selection.gameObjects.Length > 0)
        {
            helpString = "helpString是ScriptableWizard的定义内容-->选中了"+Selection.gameObjects.Length+"个物体";
            errorString = "";
        }
        else
        {
            helpString = "";
            errorString = "errorString是ScriptableWizard的定义内容-->当前并没有选中物体";
        }
    }
    //系统函数
    void OnSelectionChange()
    {
        OnWizardUpdate();
    }
    //以上为一
    //以下为二,otherButton
    [MenuItem("EditTools/创建对话框2,含有OtherButton", false, 15)]
    public static void CreateWizardOtherButton()
    {
        ScriptableWizard.DisplayWizard<Editor_EnemyChange>("修改", "create","otherButton");//注一个脚本不可同时写两个DisplayWizard
    }
    void OnWizardOtherButton()
    {
        Debug.LogError("OtherButtons--点击了,并不会自主关闭窗口");
              ShowNotification(new GUIContent(Selection.gameObjects.Length + "个被修改了"));
    }
}

这里写图片描述

这里写图片描述

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值