Unity编辑器扩展-第七集-应用键/显示提示词

2024-03-08 14:40

本文主要是介绍Unity编辑器扩展-第七集-应用键/显示提示词,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第六集链接:Unity编辑器扩展-第六集-创建窗口/批量填图_菌菌巧乐兹的博客-CSDN博客

一、本节目标+效果展示 

1.我们有时候需要多次使用编辑窗口,但是每次一点执行,就关掉了,就很烦,所以我们希望,点击按钮,执行了操作,但不关闭

2.我们可能需要提示词,做错了的提示词,完成了的提示词

二、做一个应用按钮

回忆:

    [MenuItem("基础扩展/批量赋值图片")]static void Rename_SpriteName(){//1.对话框名称 2.创建按钮 ScriptableWizard.DisplayWizard<SetName_SpriteName>("统一创建按钮", "赋值图片" );}

这个方法还可以有所改进:

   [MenuItem("基础扩展/批量赋值图片")]static void Rename_SpriteName(){//1.对话框名称 2.创建按钮 3.应用按钮ScriptableWizard.DisplayWizard<SetName_SpriteName>("统一创建按钮", "确定", "赋值图片" );}

备注:三个文字的顺序是1.对话框名称 2.创建按钮 3.应用按钮

第二个里面我改了一下创建按钮和应用按钮的名字

应用按钮

应用按钮的使用方法为:

void OnWizardOtherButton()

我们把之前在创建按钮里的方法,搬到应用按钮里

//把图片和图片的名称赋值给物体
public class SetName_SpriteName : ScriptableWizard
{public List<GameObject> oldList = new List<GameObject>();public List<Sprite> spriteList = new List<Sprite>();private void OnWizardOtherButton(){for (int i = 0; i < oldList.Count; i++){Undo.RecordObject(oldList[i], "赋值图片,改名称");oldList[i].name = spriteList[i].name;oldList[i].GetComponent<Image>().sprite = spriteList[i];}}
}

你会发现,和之前一样,然后对话框现在不关了,那关于创建按钮之前的方法,空着就行了,不要紧。

三、提示词

提示词有个两个别人写好的,直接用的参数:errorString、helpString

errorString长成

 helpString长成

使用方法也很简单,直接赋值就可以用

helpString = "已改完,请确认";

另一个一样。

四、案例

我们希望:

备注,如果$这里看不懂,可以去瞅一眼,很简单

unity | 处理string常用的知识(持续更新)_unity转义字符_菌菌巧乐兹的博客-CSDN博客

1.没有物体,提示要补充物体

        if (oldList.Count == 0){errorString = $"物体有{oldList.Count}个,请补充";}

 2.如果有物体了,没有图片,提示补充图片

        else if (spriteList.Count == 0){errorString = $"图片有{spriteList.Count}个,请补充";}

3.如果都有了,但是个数不一样,提示个数不一样

        else if (oldList.Count != spriteList.Count){errorString = $"物体有{oldList.Count}个,图片有{spriteList.Count}个,数目不同,请修改";}

4.如果以上都对了,就执行代码,并且显示已经执行了

        else{for (int i = 0; i < oldList.Count; i++){Undo.RecordObject(oldList[i], "赋值图片,改名称");oldList[i].name = spriteList[i].name;oldList[i].GetComponent<Image>().sprite = spriteList[i];}//清空错误提示errorString = "";//提示已经完成helpString = "已改完,请确认";}

五、全部代码

using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;//把图片和图片的名称赋值给物体
public class SetName_SpriteName : ScriptableWizard
{public List<GameObject> oldList = new List<GameObject>();public List<Sprite> spriteList = new List<Sprite>();private void OnWizardOtherButton(){if (oldList.Count == 0){errorString = $"物体有{oldList.Count}个,请补充";}else if (spriteList.Count == 0){errorString = $"图片有{spriteList.Count}个,请补充";}else if (oldList.Count != spriteList.Count){errorString = $"物体有{oldList.Count}个,图片有{spriteList.Count}个,数目不同,请修改";}else{for (int i = 0; i < oldList.Count; i++){Undo.RecordObject(oldList[i], "赋值图片,改名称");oldList[i].name = spriteList[i].name;oldList[i].GetComponent<Image>().sprite = spriteList[i];}errorString = "";helpString = "已改完,请确认";}}
}
public class Editor_Base
{[MenuItem("基础扩展/批量赋值图片")]static void Rename_SpriteName(){ScriptableWizard.DisplayWizard<SetName_SpriteName>("统一创建按钮", "确定", "赋值图片" );}
}

这篇关于Unity编辑器扩展-第七集-应用键/显示提示词的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/787422

相关文章

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程