Unity编辑器增强:使用脚本来同步设置多个相同Component的属性

查看: 77|回复: 0
[复制链接]

皇家骑士 发表于 2018-7-11 20:24:58 | 显示全部楼层

欢迎访问本论坛,注册你的账号并登录,来与我们交流吧!

欢迎 登录 与我们交流!没有帐号?立即注册

x
如果你受够了一个一个去选择某个对象下方的多个拥有相同Component的对象,并且想要一次性修改这些Component的某些属性,那么你可以尝试创建一个编辑器中使用的辅助脚本。
类似下方的脚本能够自动设置目标Component的指定属性值。

在这里我实现了一旦修改Setter的属性值后会立即Update对应目标的值的效果,但如果你希望通过手动点击来让对应的值生效,你也可以自行更改这个脚本。
下方脚本能够自动同步color和sortingOrder属性的值到指定的一个或多个SpriteRenderer组件,对于一些组件比较零碎的场景,可以使用这种脚本来让开发更顺畅。

代码如下:

[C#] 纯文本查看 复制代码
using System.Collections.Generic;
using UnityEngine;

namespace EditorHelper
{
  [ExecuteInEditMode]
  public class SpriteRendererSetter : MonoBehaviour
  {
    public string note;
    public List<SpriteRenderer> targets;

    public bool syncing = false;
    public Color color;
    public int sortingOrder;

    private void ApplyToTargets()
    {
      targets.ForEach(sr => {
        sr.color = color;
        sr.sortingOrder = sortingOrder;
      });
    }

    private void Update()
    {
      if (syncing)
      {
        ApplyToTargets();
      }
    }
  }
}


相关帖子:
* Unity编辑器编程:在编辑模式下,通过脚本来选中当前场景中的特定GameObject
* Unity技巧(重要的基本功能):给当前选中的GameObject编组保存,并在下次使用这些选中的组
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表