Пример #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        FXTexture fxTexture = (FXTexture)target;

        displayCameras = EditorGUILayout.Foldout(displayCameras, "Rendering Cameras");
        if (displayCameras)
        {
            EditorGUILayout.HelpBox("Cameras which will provide to the RenderTexture.", MessageType.Info);
            EditorGUI.indentLevel++;
            var hasNullCamera = false;
            foreach (var cam in fxTexture.Cameras)
            {
                cam.Camera = (Camera)EditorGUILayout.ObjectField("Camera", cam.Camera, typeof(Camera), true);
                if (cam.Camera == null)
                {
                    hasNullCamera = true;
                }
                EditorGUI.indentLevel++;
                LayerDrawer.HandleLayer("Culling Mask", null, ref cam.CullingMask);
                EditorGUI.indentLevel--;
            }
            if (hasNullCamera)
            {
                fxTexture.Cameras = fxTexture.Cameras.Where(cam => cam.Camera != null).ToArray();
            }
            var newCamera = (Camera)EditorGUILayout.ObjectField("Add New Camera", null, typeof(Camera), true);
            if (newCamera)
            {
                fxTexture.Cameras = fxTexture.Cameras.Concat(new FXTexture.FXTextureCamera[]
                {
                    new FXTexture.FXTextureCamera()
                    {
                        Camera = newCamera
                    }
                }).ToArray();
            }
            EditorGUI.indentLevel--;
            EditorGUILayout.Space();
        }

        fxTexture.RenderTexture = (FXRenderTexture)EditorGUILayout.ObjectField("Target Texture", fxTexture.RenderTexture, typeof(FXRenderTexture), false);
        displayTexture          = EditorGUILayout.Foldout(displayTexture, "RenderTexture Details");
        if (displayTexture)
        {
            EditorGUI.indentLevel++;
            var editor = Editor.CreateEditor(fxTexture.RenderTexture);
            editor.OnInspectorGUI();
            Object.DestroyImmediate(editor);
            EditorGUI.indentLevel--;
        }
    }
Пример #2
0
        private ILayerMasked drawSiteToLayer(IntVector2 size, IEnumerable <IArea> areas)
        {
            var layer = new Layer2DObject(size.X, size.Y);

            _layerUtility.IterateValues(layer, (x, y, va) => layer[x, y] = 0);
            var layerDrawer = new LayerDrawer(layer);

            foreach (var area in areas)
            {
                layerDrawer.DrawArea(area);
            }
            return(layer);
        }