コード例 #1
0
        private void Initialize(bool retry = true)
        {
            overlayViewer            = serializedObject.targetObject as OverlayViewer;
            TempUMAData              = overlayViewer.gameObject.GetComponent <UMAData>();
            ugb                      = overlayViewer.gameObject.GetComponent <UMAGeneratorStub>();
            TempSlot                 = new SlotData(overlayViewer.SlotDataAsset);
            rawImage                 = overlayViewer.ImageViewer;
            activeGeneratorCoroutine = new UMAGeneratorCoroutine();

            SetupGenerator();

            TempUMAData.Initialize(ugb);
            TempUMAData.SetSlot(0, TempSlot);

            baseOverlayProperty = serializedObject.FindProperty("BaseOverlay");
            overlaysProperty    = serializedObject.FindProperty("Overlays");
            texMergeProperty    = serializedObject.FindProperty("TextureMergePrefab");

            overlayDataList = new ReorderableList(serializedObject, overlaysProperty, true, true, false, false);
            overlayDataList.drawHeaderCallback = (Rect rect) =>
            {
                EditorGUI.LabelField(rect, "Overlays");
            };
            overlayDataList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) =>
            {
                var element = overlayDataList.serializedProperty.GetArrayElementAtIndex(index);
                rect.y += 2;
                OverlayDataAsset o    = element.objectReferenceValue as OverlayDataAsset;
                string           name = "Not Set";
                if (o != null)
                {
                    name = o.overlayName;
                }
                EditorGUI.PropertyField(new Rect(rect.x + 10, rect.y, rect.width - 10, EditorGUIUtility.singleLineHeight), element);
            };


            overlayDataList.onSelectCallback = (ReorderableList list) =>
            {
                SelectNewOverlay(list.index);
            };


            overlayDataList.onChangedCallback = (ReorderableList list) =>
            {
                SelectNewOverlay(list.index);
                ProcessCurrentOverlays(retry);
            };
        }