WOW8论坛

 找回密码
 立即注册
搜索
热搜: 地形 技能 Lua
查看: 20|回复: 0

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

[复制链接]
发表于 2018-7-11 20:24:58 | 显示全部楼层 |阅读模式
本帖最后由 皇家骑士 于 2018-7-11 21:47 编辑

如果你受够了一个一个去选择某个对象下方的多个拥有相同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编组保存,并在下次使用这些选中的组
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|WOW8论坛  

GMT+8, 2018-8-18 22:14 , Processed in 0.094897 second(s), 4 queries , File On.

WOW8 © 2018

Powered by Discuz! X3.3

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