首先不能住我想说对不起我的英文不好和语法错误定制督察阵列/列表播放模式
我有一个问题,那就是当我在我的阵列我所做的编辑器按下播放键在我的自定义编辑器disapares(也是当我更新脚本)!
首先我有一个名为“ColorChangerSingle”的剧本是我声明脚本变量下
using UnityEngine;
public class ColorChangerSingle
{
public GameObject gameObjectToChange;
public Color color;
}
然后我有一个名为“ColorChanger”的剧本是剧本我做了一个自定义的检查和所有它得到是“ColorChangerSingle”
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ColorChanger : MonoBehaviour {
public static List<ColorChangerSingle> single = new List();
}
的静态列表,我有所谓的“CustomChangeColorInspector”自定义脚本检查是自定义脚本督察。
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(ColorChanger))]
public class CustomColorChangerInspector : Editor
{
public override void OnInspectorGUI()
{
for (int i = 0; i < ColorChanger.single.Count; i++)
{
EditorGUILayout.BeginHorizontal();
ColorChanger.single[i].gameObjectToChange = (GameObject)EditorGUILayout.ObjectField(ColorChanger.single[i].gameObjectToChange, typeof(GameObject));
ColorChanger.single[i].color = EditorGUILayout.ColorField(ColorChanger.single[i].color);
EditorGUILayout.EndHorizontal();
if (ColorChanger.single[i].gameObjectToChange != null)
if (ColorChanger.single[i].gameObjectToChange.GetComponent() != null)
ColorChanger.single[i].gameObjectToChange.GetComponent().material.color = ColorChanger.single[i].color;
}
EditorGUILayout.BeginHorizontal("box");
if (GUILayout.Button("Add To Array"))
{
ColorChanger.single.Add(new ColorChangerSingle());
}
if (GUILayout.Button("Remove Object In Array"))
{
ColorChanger.single.RemoveAt(ColorChanger.single.Count - 1);
}
EditorGUILayout.EndHorizontal();
}
}
,当我在“不玩模式”一切正常(设置对象/改变它们的颜色),但是当我按下播放阵列被“复位”,我认为这与做添加阵列“ ColorChanger“脚本,我将列表设置为一个新的ColorChangerSingle列表:/ 任何帮助,非常感谢!
图片:
https://gyazo.com/167ab826b6d578ec5a66d9d2586479e8
https://gyazo.com/847a063f9885478200c5a504be1dae2a
感谢您的时间,有一个伟大的一天! // Jrp0h
顺便说一句,我希望的产品类别是好的,我知道我可以清理代码很多,但我做了这个真的becuse IM在一个秘密项目工作快速,不希望使用该代码:)
我已经tryed将所有你推荐的东西,但同样的事情还是发生了: /但是m_Target究竟是什么?我应该如何添加它? – Jrp0h
@ Jrp0h好了,我不好意思,我没注意到你直接提到'ColorChanger.single [i]',所以你的自定义编辑器脚本并不知道他必须修改哪个脚本实例。你必须在这里使用一些不同的东西。我会在几分钟内更新我的答案,以增加这一点。 – Kardux
非常感谢!有些东西终于奏效我非常感谢你的帮助!我认为因为“ColorChangerSingle”的列表是静态的,我可以在不考虑脚本的情况下在所有脚本中引用它!以及我在C#编程中学到了很多东西:)但非常感谢你让我从挫折中解脱出来。 – Jrp0h