当前位置:网站首页>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;//进行变色
}
}
}
}
}
接着打开
打开变成这样
接着操作
效果如下:
边栏推荐
猜你喜欢
随机推荐
作为测试,常用的adb命令
每日刷题(day02)——leetcode 622. 设计循环队列
Kernel performance analysis summary
Gradle学习 (一) 入门
分享一个专业TA的《Shader参考大全》
视差映射:更逼真的纹理细节表现(上):为什么要使用视差映射
The use of pointers from the exchange of two data values (C language implementation)
在TypeScript中使用parseInt()
lua循环
unityFps射击
开源游戏服务器框架NoahGameFrame(NF)简介(一)
Talking about 3 common shadow rendering techniques in games (2): shadow cone
在Unity中让物体围绕自身的x、y、z轴进行旋转(亲测有效)
电池级碳酸氢锂除杂质钙镁离子工艺原理
ArgumentException: GetComponent requires that the requested component ‘GameObject‘ derives from Mono
计算数字区间中数字出现次数
Talking about 3 common shadow rendering techniques in games (1): plane shadow
21天学习挑战赛--补种胡杨求最大连续胡杨数量
hanLP探索-语义距离计算的实现
电路分析中的电容器的基本知识