当前位置:网站首页>Unity扩展编辑器EditorWindow 小玩意(二)
Unity扩展编辑器EditorWindow 小玩意(二)
2022-08-10 05:37:00 【作孽就得先起床】
正如我在第一篇写的一样,那么如何应用是第二篇主要书写的就是应用
简单给物体对象变个颜色?
平常我们如果给一个cube对象变颜色有两种普通方法
1、代码写挂载脚本变颜色
2.创建材质改变颜色,挂载到物体上
原版本unity中此操作会在一定程度上节省内存,且会简化操作,但现在这个区别不大,用此案例仅做科普,现在适用一些复杂的操作简化操作,缩短游戏开发过程的时间,毕竟这属于自定义工具。
优点:
1.不需要运行即可达到效果,与材质性质一致,比较直观
这个东西是直接在代码中进行操作的,如果你看到这里不理解,可以先看看第一篇的内容
代码如下:
using UnityEngine;
using UnityEditor;//调用组件
public class Window : EditorWindow//修改继承
{
Color color;//作为过渡使用
[MenuItem("Window/Example")]//在菜单中创建选项
public static void Showwindow()
{
EditorWindow.GetWindow<Window>("Example");//在unity菜单栏中找到名称为Example的项目关联代码,指定窗口
}
void OnGUI()
{
GUILayout.Label("进行变色",EditorStyles.boldLabel);//,之后这里是黑体加粗,这里显示了一段文字
color = EditorGUILayout.ColorField("Color", color);
//上面这里会将你输入的内容保存到color里
if (GUILayout.Button("点我变色"))//它会生成一个名叫“点我变色”的按钮,当你点击时它会返回一个true
{
foreach (GameObject item in Selection.gameObjects)//遍历你选中的对象
{
Renderer ren=item.GetComponent<Renderer>();//查找该对象是否具有变色功能
if (ren!=null)//如果具备
{
ren.sharedMaterial.color= color;//进行变色
}
}
}
}
}
接着打开
打开变成这样
接着操作
效果如下:
边栏推荐
猜你喜欢
随机推荐
在Unity中让物体围绕自身的x、y、z轴进行旋转(亲测有效)
一小时极速掌握游戏资源远程热更新
在TypeScript中使用parseInt()
Gradle学习(二)Groovy
Easy to master Unity of eight prior to rendering
动态规划、背包问题 6/28 121-124
在Unity中利用代码动态更改场景中的天空盒
手把手教你改内核源码--sysfs虚拟文件系统2
Teach you to change the kernel source code--sysfs virtual file system 1
剑指 Offer(第 2 版)7/5 5-8
Unity中实现Animation Clip动画片段的倒播(该案例可以防止动画延迟)
Unity object pool implementation
以STM32F103C6T6为例通过配置CubeMX实现EXIT外部中断
解决错误 Could not find method leftShift() for arguments
在Unity中判断游戏物体是否在游戏屏幕范围之内
ASP.NET连接SQL Server的步骤
二叉树 6/15 76-80
unity3d著名项目-Dark Tree翻译
系统架构和问题定位
21天学习挑战赛--分班