private void FormMain_Load(object sender, EventArgs e) { layout = new Layout(); layout.ZoomRatio = 1.0; layout.AddElement(new ImageElement() { Visible = true, Location = new Point(100, 100), Size = new Size(100, 100), Alpha = 100, FileName = Path.Combine(Application.StartupPath, "candy.png") }); layout.AddElement(new ImageElement() { Visible = true, Location = new Point(-1040, -1040), Size = new Size(100, 100), Alpha = 100, FileName = Path.Combine(Application.StartupPath, "candy.png") }); designerControl1.AddElementType(ImageElement.TYPE_NAME, typeof(ImageElement)); designerControl1.AddElementRenderer(ImageElement.TYPE_NAME, typeof(ImageElementRenderer)); designerControl1.Layout = layout; }
/// <inheritdoc/> protected internal override void Initialize() { importOptions = GetImportOptions(); formatField.OnSelectionChanged += x => importOptions.Format = (PixelFormat)x; generateMipsField.OnChanged += x => importOptions.GenerateMips = x; maximumMipsField.OnChanged += x => importOptions.MaxMip = x; srgbField.OnChanged += x => importOptions.SRGB = x; cpuCachedField.OnChanged += x => importOptions.CpuCached = x; isCubemapField.OnChanged += x => importOptions.Cubemap = x; cubemapSourceTypeField.OnSelectionChanged += x => importOptions.CubemapSourceType = (CubemapSourceType)x; reimportButton.OnClick += TriggerReimport; Layout.AddElement(formatField); Layout.AddElement(generateMipsField); Layout.AddElement(maximumMipsField); Layout.AddElement(srgbField); Layout.AddElement(cpuCachedField); Layout.AddElement(isCubemapField); Layout.AddElement(cubemapSourceTypeField); Layout.AddSpace(10); GUILayout reimportButtonLayout = Layout.AddLayoutX(); reimportButtonLayout.AddFlexibleSpace(); reimportButtonLayout.AddElement(reimportButton); }
/// <inheritdoc/> protected internal override void Initialize() { importOptions = GetImportOptions(); formatField.OnSelectionChanged += x => importOptions.Format = (PixelFormat)x; generateMipsField.OnChanged += x => importOptions.GenerateMips = x; maximumMipsField.OnChanged += x => importOptions.MaxMip = x; srgbField.OnChanged += x => importOptions.SRGB = x; cpuCachedField.OnChanged += x => importOptions.CpuCached = x; isCubemapField.OnChanged += x => importOptions.Cubemap = x; cubemapSourceTypeField.OnSelectionChanged += x => importOptions.CubemapSourceType = (CubemapSourceType)x; Layout.AddElement(formatField); Layout.AddElement(generateMipsField); Layout.AddElement(maximumMipsField); Layout.AddElement(srgbField); Layout.AddElement(cpuCachedField); Layout.AddElement(isCubemapField); Layout.AddElement(cubemapSourceTypeField); Layout.AddSpace(10); reimportButton = new GUIReimportButton(InspectedResourcePath, Layout, () => { ProjectLibrary.Reimport(InspectedResourcePath, importOptions, true); }); UpdateGUIValues(); }
/// <inheritdoc/> protected internal override void Initialize() { Layout.Clear(); Bone bone = InspectedObject as Bone; if (bone == null) { return; } string[] boneNames = GetBoneNames(bone); if (boneNames == null) { boneNames = new string[0]; } boneField = new GUIListBoxField(boneNames, false, new LocEdString("Bone")); Layout.AddElement(boneField); boneField.OnSelectionChanged += x => { selectedBoneName = boneNames[x]; StartUndo("bone"); bone.Name = selectedBoneName; EndUndo(); MarkAsModified(); ConfirmModify(); }; }
/// <inheritdoc/> protected internal override void Initialize() { LoadResource(); SpriteTexture spriteTexture = InspectedObject as SpriteTexture; if (spriteTexture == null) { return; } textureField.OnChanged += (x) => { Texture texture = Resources.Load <Texture>(x); spriteTexture.Texture = texture; EditorApplication.SetDirty(spriteTexture); }; offsetField.OnChanged += (x) => { spriteTexture.Offset = x; EditorApplication.SetDirty(spriteTexture); }; scaleField.OnChanged += (x) => { spriteTexture.Scale = x; EditorApplication.SetDirty(spriteTexture); }; Layout.AddElement(textureField); Layout.AddElement(offsetField); Layout.AddElement(scaleField); }
/// <summary> /// Recreates all the GUI elements used by this inspector. /// </summary> private void BuildGUI() { Layout.Clear(); Bone bone = InspectedObject as Bone; if (bone == null) { return; } string[] boneNames = GetBoneNames(bone); if (boneNames == null) { boneNames = new string[0]; } boneField = new GUIListBoxField(boneNames, false, new LocEdString("Bone")); Layout.AddElement(boneField); boneField.OnSelectionChanged += x => { selectedBoneName = boneNames[x]; bone.Name = selectedBoneName; MarkAsModified(); ConfirmModify(); }; }
/// <summary> /// Creates GUI elements for fields specific to the slider joint. /// </summary> protected void BuildGUI(SliderJoint joint) { enableLimitField.OnChanged += x => { joint.EnableLimit = x; MarkAsModified(); ConfirmModify(); ToggleLimitFields(x); }; Layout.AddElement(enableLimitField); limitLayout = Layout.AddLayoutX(); { limitLayout.AddSpace(10); GUILayoutY limitContentsLayout = limitLayout.AddLayoutY(); limitGUI = new LimitLinearRangeGUI(joint.Limit, limitContentsLayout, Persistent); limitGUI.OnChanged += (x, y) => { joint.Limit = new LimitLinearRange(x, y); MarkAsModified(); }; limitGUI.OnConfirmed += ConfirmModify; } ToggleLimitFields(joint.EnableLimit); base.BuildGUI(joint, true); }
/// <inheritdoc/> protected internal override void Initialize() { if (InspectedObject != null) { importOptions = GetImportOptions(); formatField.OnSelectionChanged += x => importOptions.Format = (PixelFormat)x; generateMipsField.OnChanged += x => importOptions.GenerateMipmaps = x; maximumMipsField.OnChanged += x => importOptions.MaxMipmapLevel = x; srgbField.OnChanged += x => importOptions.IsSRGB = x; cpuReadableField.OnChanged += x => importOptions.CPUReadable = x; reimportButton.OnClick += TriggerReimport; Layout.AddElement(formatField); Layout.AddElement(generateMipsField); Layout.AddElement(maximumMipsField); Layout.AddElement(srgbField); Layout.AddElement(cpuReadableField); Layout.AddSpace(10); GUILayout reimportButtonLayout = Layout.AddLayoutX(); reimportButtonLayout.AddFlexibleSpace(); reimportButtonLayout.AddElement(reimportButton); } }
/// <summary> /// Creates GUI elements for fields specific to the spherical joint. /// </summary> protected void BuildGUI(SphericalJoint joint) { enableLimitField.OnChanged += x => { joint.SetFlag(SphericalJointFlag.Limit, x); MarkAsModified(); ConfirmModify(); ToggleLimitFields(x); }; Layout.AddElement(enableLimitField); limitLayout = Layout.AddLayoutX(); { limitLayout.AddSpace(10); GUILayoutY limitContentsLayout = limitLayout.AddLayoutY(); limitGUI = new LimitConeRangeGUI(joint.Limit, limitContentsLayout, Persistent); limitGUI.OnChanged += (x, y) => { joint.Limit = x; joint.Limit.SetBase(y); MarkAsModified(); }; limitGUI.OnConfirmed += ConfirmModify; } ToggleLimitFields(joint.HasFlag(SphericalJointFlag.Limit)); base.BuildGUI(joint, true); }
/// <inheritdoc/> protected internal override void Initialize() { if (InspectedObject != null) { importOptions = GetImportOptions(); normalsField.OnChanged += x => importOptions.ImportNormals = x; tangentsField.OnChanged += x => importOptions.ImportTangents = x; skinField.OnChanged += x => importOptions.ImportSkin = x; blendShapesField.OnChanged += x => importOptions.ImportBlendShapes = x; animationField.OnChanged += x => importOptions.ImportAnimation = x; scaleField.OnChanged += x => importOptions.Scale = x; cpuReadableField.OnChanged += x => importOptions.CPUReadable = x; collisionMeshTypeField.OnSelectionChanged += x => importOptions.CollisionMeshType = (CollisionMeshType)x; reimportButton.OnClick += TriggerReimport; Layout.AddElement(normalsField); Layout.AddElement(tangentsField); Layout.AddElement(skinField); Layout.AddElement(blendShapesField); Layout.AddElement(animationField); Layout.AddElement(scaleField); Layout.AddElement(cpuReadableField); Layout.AddElement(collisionMeshTypeField); Layout.AddSpace(10); GUILayout reimportButtonLayout = Layout.AddLayoutX(); reimportButtonLayout.AddFlexibleSpace(); reimportButtonLayout.AddElement(reimportButton); } }
/// <summary> /// Creates GUI elements for fields specific to the capsule collider. /// </summary> protected void BuildGUI(CapsuleCollider collider) { centerField.OnChanged += x => { collider.Center = x; MarkAsModified(); }; centerField.OnFocusLost += ConfirmModify; centerField.OnConfirmed += ConfirmModify; orientationField.OnChanged += x => { orientation = x; Quaternion rotation = Quaternion.FromEuler(x); collider.Normal = rotation.Rotate(Vector3.YAxis); MarkAsModified(); }; orientationField.OnFocusLost += ConfirmModify; orientationField.OnConfirmed += ConfirmModify; radiusField.OnChanged += x => { collider.Radius = x; MarkAsModified(); }; radiusField.OnFocusLost += ConfirmModify; radiusField.OnConfirmed += ConfirmModify; halfHeightField.OnChanged += x => { collider.HalfHeight = x; MarkAsModified(); }; halfHeightField.OnFocusLost += ConfirmModify; halfHeightField.OnConfirmed += ConfirmModify; Layout.AddElement(centerField); Layout.AddElement(orientationField); Layout.AddElement(radiusField); Layout.AddElement(halfHeightField); orientation = Quaternion.FromToRotation(Vector3.YAxis, collider.Normal).ToEuler(); base.BuildGUI(collider); }
/// <summary> /// Recreates all the GUI elements used by this inspector. /// </summary> private void BuildGUI() { Layout.Clear(); GUIWidget guiWidget = InspectedObject as GUIWidget; if (guiWidget == null) { return; } skinField = new GUIResourceField(typeof(GUISkin), new LocEdString("Skin")); cameraField = new GUIGameObjectField(typeof(Camera), new LocEdString("Camera")); skinField.OnChanged += x => { GUISkin skin = Resources.Load <GUISkin>(x); guiWidget.Skin = skin; MarkAsModified(); ConfirmModify(); }; cameraField.OnChanged += x => { guiWidget.Camera = x as Camera; MarkAsModified(); ConfirmModify(); }; Layout.AddElement(skinField); Layout.AddElement(cameraField); }
/// <summary> /// Recreates all the GUI elements used by this inspector. /// </summary> private void BuildGUI() { Layout.Clear(); normalsField = new GUIToggleField(new LocEdString("Import Normals")); tangentsField = new GUIToggleField(new LocEdString("Import Tangents")); skinField = new GUIToggleField(new LocEdString("Import Skin")); blendShapesField = new GUIToggleField(new LocEdString("Import Blend Shapes")); animationField = new GUIToggleField(new LocEdString("Import Animation")); scaleField = new GUIFloatField(new LocEdString("Scale")); cpuCachedField = new GUIToggleField(new LocEdString("CPU cached")); cpuReadableField = new GUIToggleField(new LocEdString("CPU readable")); collisionMeshTypeField = new GUIEnumField(typeof(CollisionMeshType), new LocEdString("Collision mesh")); keyFrameReductionField = new GUIToggleField(new LocEdString("Keyframe Reduction")); rootMotionField = new GUIToggleField(new LocEdString("Import root motion")); reimportButton = new GUIButton(new LocEdString("Reimport")); normalsField.OnChanged += x => importOptions.ImportNormals = x; tangentsField.OnChanged += x => importOptions.ImportTangents = x; skinField.OnChanged += x => importOptions.ImportSkin = x; blendShapesField.OnChanged += x => importOptions.ImportBlendShapes = x; animationField.OnChanged += x => importOptions.ImportAnimation = x; scaleField.OnChanged += x => importOptions.Scale = x; cpuCachedField.OnChanged += x => importOptions.CPUCached = x; cpuReadableField.OnChanged += x => importOptions.CPUReadable = x; collisionMeshTypeField.OnSelectionChanged += x => importOptions.CollisionMeshType = (CollisionMeshType)x; keyFrameReductionField.OnChanged += x => importOptions.KeyframeReduction = x; rootMotionField.OnChanged += x => importOptions.ImportRootMotion = x; reimportButton.OnClick += TriggerReimport; Layout.AddElement(normalsField); Layout.AddElement(tangentsField); Layout.AddElement(skinField); Layout.AddElement(blendShapesField); Layout.AddElement(animationField); Layout.AddElement(scaleField); Layout.AddElement(cpuCachedField); Layout.AddElement(cpuReadableField); Layout.AddElement(collisionMeshTypeField); Layout.AddElement(keyFrameReductionField); Layout.AddElement(rootMotionField); splitInfos = importOptions.AnimationClipSplits; animSplitInfoField = GUIArrayField <AnimationSplitInfo, AnimSplitArrayRow> .Create( new LocEdString("Animation splits"), splitInfos, Layout); animSplitInfoField.OnChanged += x => { splitInfos = x; }; animSplitInfoField.IsExpanded = Persistent.GetBool("animSplitInfos_Expanded"); animSplitInfoField.OnExpand += x => Persistent.SetBool("animSplitInfos_Expanded", x); Layout.AddSpace(10); GUILayout reimportButtonLayout = Layout.AddLayoutX(); reimportButtonLayout.AddFlexibleSpace(); reimportButtonLayout.AddElement(reimportButton); }
/// <summary> /// Creates GUI elements for fields common to all colliders. /// </summary> protected virtual void BuildGUI(Collider collider) { isTriggerField.OnChanged += x => { collider.Trigger = x; MarkAsModified(); ConfirmModify(); }; massField.OnChanged += x => { collider.Mass = x; MarkAsModified(); }; massField.OnConfirmed += ConfirmModify; massField.OnFocusLost += ConfirmModify; materialField.OnChanged += x => { PhysicsMaterial mesh = Resources.Load <PhysicsMaterial>(x.UUID); collider.Material = mesh; MarkAsModified(); ConfirmModify(); }; contactOffsetField.OnChanged += x => { collider.ContactOffset = x; MarkAsModified(); }; contactOffsetField.OnConfirmed += ConfirmModify; contactOffsetField.OnFocusLost += ConfirmModify; restOffsetField.OnChanged += x => { collider.RestOffset = x; MarkAsModified(); }; restOffsetField.OnConfirmed += ConfirmModify; restOffsetField.OnFocusLost += ConfirmModify; collisionReportModeField.OnSelectionChanged += x => { collider.CollisionReportMode = (CollisionReportMode)x; MarkAsModified(); ConfirmModify(); }; layerField.OnSelectionChanged += x => { ulong layer = 0; bool[] states = layerField.States; for (int i = 0; i < states.Length; i++) { layer |= states[i] ? Layers.Values[i] : 0; } layersValue = layer; collider.Layer = layer; MarkAsModified(); ConfirmModify(); }; Layout.AddElement(isTriggerField); Layout.AddElement(massField); Layout.AddElement(materialField); Layout.AddElement(contactOffsetField); Layout.AddElement(restOffsetField); Layout.AddElement(collisionReportModeField); Layout.AddElement(layerField); }
/// <summary> /// Recreates all the GUI elements used by this inspector. /// </summary> private void BuildGUI() { Layout.Clear(); normalsField = new GUIToggleField(new LocEdString("Import Normals")); tangentsField = new GUIToggleField(new LocEdString("Import Tangents")); skinField = new GUIToggleField(new LocEdString("Import Skin")); blendShapesField = new GUIToggleField(new LocEdString("Import Blend Shapes")); animationField = new GUIToggleField(new LocEdString("Import Animation")); scaleField = new GUIFloatField(new LocEdString("Scale")); cpuCachedField = new GUIToggleField(new LocEdString("CPU cached")); collisionMeshTypeField = new GUIEnumField(typeof(CollisionMeshType), new LocEdString("Collision mesh")); keyFrameReductionField = new GUIToggleField(new LocEdString("Keyframe Reduction")); rootMotionField = new GUIToggleField(new LocEdString("Import root motion")); normalsField.OnChanged += x => importOptions.ImportNormals = x; tangentsField.OnChanged += x => importOptions.ImportTangents = x; skinField.OnChanged += x => importOptions.ImportSkin = x; blendShapesField.OnChanged += x => importOptions.ImportBlendShapes = x; animationField.OnChanged += x => importOptions.ImportAnimation = x; scaleField.OnChanged += x => importOptions.ImportScale = x; cpuCachedField.OnChanged += x => importOptions.CpuCached = x; collisionMeshTypeField.OnSelectionChanged += x => importOptions.CollisionMeshType = (CollisionMeshType)x; keyFrameReductionField.OnChanged += x => importOptions.ReduceKeyFrames = x; rootMotionField.OnChanged += x => importOptions.ImportRootMotion = x; Layout.AddElement(normalsField); Layout.AddElement(tangentsField); Layout.AddElement(skinField); Layout.AddElement(blendShapesField); Layout.AddElement(animationField); Layout.AddElement(scaleField); Layout.AddElement(cpuCachedField); Layout.AddElement(collisionMeshTypeField); Layout.AddElement(keyFrameReductionField); Layout.AddElement(rootMotionField); splitInfos = importOptions.AnimationSplits; animSplitInfoField = GUIArrayField <AnimationSplitInfo, AnimSplitArrayRow> .Create( new LocEdString("Animation splits"), splitInfos, Layout); animSplitInfoField.OnChanged += x => { splitInfos = x; }; animSplitInfoField.IsExpanded = Persistent.GetBool("animSplitInfos_Expanded"); animSplitInfoField.OnExpand += x => Persistent.SetBool("animSplitInfos_Expanded", x); Layout.AddSpace(10); reimportButton = new GUIReimportButton(InspectedResourcePath, Layout, () => { importOptions.AnimationSplits = splitInfos; ProjectLibrary.Reimport(InspectedResourcePath, importOptions, true); }); UpdateGUIValues(); }
/// <summary> /// Creates GUI elements for fields common to all joints. /// </summary> protected virtual void BuildGUI(Joint joint, bool showOffsets) { this.showOffsets = showOffsets; targetField = new GUIGameObjectField(typeof(Rigidbody), new LocEdString("Target")); anchorField = new GUIGameObjectField(typeof(Rigidbody), new LocEdString("Anchor")); if (showOffsets) { targetOffsetField = new GUIVector3Field(new LocEdString("Target offset")); anchorOffsetField = new GUIVector3Field(new LocEdString("Anchor offset")); } breakForceField = new GUIFloatField(new LocEdString("Break force")); breakTorqueField = new GUIFloatField(new LocEdString("Break torque")); collisionField = new GUIToggleField(new LocEdString("Enable collision")); targetField.OnChanged += x => { joint.SetRigidbody(JointBody.Target, (Rigidbody)x); MarkAsModified(); ConfirmModify(); }; anchorField.OnChanged += x => { joint.SetRigidbody(JointBody.Anchor, (Rigidbody)x); MarkAsModified(); ConfirmModify(); }; if (showOffsets) { targetOffsetField.OnChanged += x => { joint.SetPosition(JointBody.Target, x); MarkAsModified(); }; targetOffsetField.OnFocusLost += ConfirmModify; targetOffsetField.OnConfirmed += ConfirmModify; anchorOffsetField.OnChanged += x => { joint.SetPosition(JointBody.Anchor, x); MarkAsModified(); }; anchorOffsetField.OnFocusLost += ConfirmModify; anchorOffsetField.OnConfirmed += ConfirmModify; } breakForceField.OnChanged += x => { joint.BreakForce = x; MarkAsModified(); }; breakForceField.OnFocusLost += ConfirmModify; breakForceField.OnConfirmed += ConfirmModify; breakTorqueField.OnChanged += x => { joint.BreakTorque = x; MarkAsModified(); }; breakTorqueField.OnFocusLost += ConfirmModify; breakTorqueField.OnConfirmed += ConfirmModify; collisionField.OnChanged += x => { joint.EnableCollision = x; MarkAsModified(); ConfirmModify(); }; Layout.AddElement(targetField); if (showOffsets) { Layout.AddElement(targetOffsetField); } Layout.AddElement(anchorField); if (showOffsets) { Layout.AddElement(anchorOffsetField); } Layout.AddElement(breakForceField); Layout.AddElement(breakTorqueField); Layout.AddElement(collisionField); }
/// <summary> /// Recreates all the GUI elements used by this inspector. /// </summary> private void BuildGUI() { Layout.Clear(); Renderable renderable = InspectedObject as Renderable; if (renderable == null) { return; } meshField = new GUIResourceField(typeof(Mesh), new LocEdString("Mesh")); layersField = new GUIListBoxField(Layers.Names, false, new LocEdString("Layer")); Layout.AddElement(meshField); Layout.AddElement(layersField); layersValue = 0; materials = renderable.Materials; materialsField = GUIArrayField <RRef <Material>, MaterialArrayRow> .Create(new LocEdString("Materials"), materials, Layout); materialsField.OnChanged += x => { materials = x; }; materialsField.IsExpanded = Persistent.GetBool("materialsField_Expanded"); materialsField.OnExpand += x => Persistent.SetBool("materialsField_Expanded", x); meshField.OnChanged += x => { Mesh mesh = Resources.Load <Mesh>(x.UUID); renderable.Mesh = mesh; MarkAsModified(); ConfirmModify(); }; layersField.OnSelectionChanged += x => { ulong layers = 0; bool[] states = layersField.States; for (int i = 0; i < states.Length; i++) { layers |= states[i] ? Layers.Values[i] : 0; } layersValue = layers; renderable.Layers = layers; MarkAsModified(); ConfirmModify(); }; materialsLayout = Layout.AddLayoutY(); BuildMaterialsGUI(); }
/// <inheritdoc/> protected internal override void Initialize() { ReflectionProbe probe = (ReflectionProbe)InspectedObject; drawer.AddDefault(probe); drawer.AddConditional("Radius", () => probe.Type == ReflectionProbeType.Sphere); drawer.AddConditional("Extents", () => probe.Type == ReflectionProbeType.Box); captureButton.OnClick += () => probe.Capture(); Layout.AddSpace(10); Layout.AddElement(captureButton); }
/// <summary> /// Creates GUI elements for fields specific to the mesh collider. /// </summary> protected void BuildGUI(MeshCollider collider) { meshField.OnChanged += x => { PhysicsMesh mesh = Resources.Load <PhysicsMesh>(x.UUID); collider.Mesh = mesh; MarkAsModified(); ConfirmModify(); }; Layout.AddElement(meshField); base.BuildGUI(collider); }
/// <summary> /// Creates GUI elements for fields specific to the box collider. /// </summary> protected void BuildGUI(BoxCollider collider) { centerField.OnChanged += x => { collider.Center = x; MarkAsModified(); }; centerField.OnFocusLost += ConfirmModify; centerField.OnConfirmed += ConfirmModify; extentsField.OnChanged += x => { collider.Extents = x; MarkAsModified(); }; extentsField.OnFocusLost += ConfirmModify; extentsField.OnConfirmed += ConfirmModify; Layout.AddElement(centerField); Layout.AddElement(extentsField); base.BuildGUI(collider); }
/// <summary> /// Creates GUI elements for fields specific to the sphere collider. /// </summary> protected void BuildGUI(SphereCollider collider) { centerField.OnChanged += x => { collider.Center = x; MarkAsModified(); }; centerField.OnFocusLost += ConfirmModify; centerField.OnConfirmed += ConfirmModify; radiusField.OnChanged += x => { collider.Radius = x; MarkAsModified(); }; radiusField.OnFocusLost += ConfirmModify; radiusField.OnConfirmed += ConfirmModify; Layout.AddElement(centerField); Layout.AddElement(radiusField); base.BuildGUI(collider); }
/// <inheritdoc/> protected internal override void Initialize() { Material material = InspectedObject as Material; if (material == null) { return; } Shader activeShader = material.Shader; BuiltinShader builtinType = ShaderToBuiltin(activeShader); builtinShaderField = new GUIEnumField(typeof(BuiltinShader), new LocEdString("Shader")); builtinShaderField.Value = (ulong)builtinType; builtinShaderField.OnSelectionChanged += x => { BuiltinShader newBuiltinType = (BuiltinShader)x; material.Shader = Builtin.GetShader(newBuiltinType); EditorApplication.SetDirty(material); RebuildParamGUI(material); bool newIsCustom = newBuiltinType == BuiltinShader.Custom; shaderField.Active = newIsCustom; }; shaderField = new GUIResourceField(typeof(Shader), new LocEdString("Shader file")); shaderField.Value = material.Shader; shaderField.OnChanged += (x) => { Shader shader = Resources.Load <Shader>(x); material.Shader = shader; EditorApplication.SetDirty(material); RebuildParamGUI(material); }; bool isCustom = builtinType == BuiltinShader.Custom; shaderField.Active = isCustom; Layout.AddElement(builtinShaderField); Layout.AddElement(shaderField); RebuildParamGUI(material); }
/// <inheritdoc/> protected internal override void Initialize() { LoadResource(); ScriptCode scriptCode = InspectedObject as ScriptCode; if (scriptCode == null) { return; } importOptions = GetImportOptions(); isEditorField.OnChanged += x => { importOptions.EditorScript = x; }; GUIPanel textPanel = Layout.AddPanel(); GUILayout textLayoutY = textPanel.AddLayoutY(); textLayoutY.AddSpace(5); GUILayout textLayoutX = textLayoutY.AddLayoutX(); textLayoutX.AddSpace(5); textLayoutX.AddElement(textLabel); textLayoutX.AddSpace(5); textLayoutY.AddSpace(5); GUIPanel textBgPanel = textPanel.AddPanel(1); textBgPanel.AddElement(textBg); Layout.AddElement(isEditorField); GUIButton reimportButton = new GUIButton(new LocEdString("Reimport")); reimportButton.OnClick += TriggerReimport; GUILayout reimportButtonLayout = Layout.AddLayoutX(); reimportButtonLayout.AddElement(reimportButton); reimportButtonLayout.AddFlexibleSpace(); }
/// <summary> /// Recreates all the GUI elements used by this inspector. /// </summary> private void BuildGUI() { Layout.Clear(); fontSizes = GUIArrayField <int, FontSizeArrayRow> .Create( new LocEdString("Font sizes"), importOptions.FontSizes, Layout); fontSizes.OnChanged += x => importOptions.FontSizes = x; fontSizes.IsExpanded = Persistent.GetBool("fontSizes_Expanded"); fontSizes.OnExpand += x => Persistent.SetBool("fontSizes_Expanded", x); charRanges = GUIArrayField <CharRange, CharRangeArrayRow> .Create( new LocEdString("Character ranges"), importOptions.CharRanges, Layout); charRanges.OnChanged += x => importOptions.CharRanges = x; charRanges.IsExpanded = Persistent.GetBool("charRanges_Expanded"); charRanges.OnExpand += x => Persistent.SetBool("charRanges_Expanded", x); renderModeField = new GUIEnumField(typeof(FontRenderMode), new LocEdString("Render mode")); renderModeField.OnSelectionChanged += x => importOptions.RenderMode = (FontRenderMode)x; boldField = new GUIToggleField(new LocEdString("Bold")); boldField.OnChanged += x => importOptions.Bold = x; italicField = new GUIToggleField(new LocEdString("Italic")); italicField.OnChanged += x => importOptions.Italic = x; dpiField = new GUIIntField(new LocEdString("DPI")); dpiField.OnChanged += x => importOptions.DPI = x; reimportButton = new GUIButton(new LocEdString("Reimport")); reimportButton.OnClick += TriggerReimport; Layout.AddElement(renderModeField); Layout.AddElement(boldField); Layout.AddElement(italicField); Layout.AddElement(dpiField); Layout.AddSpace(10); GUILayout reimportButtonLayout = Layout.AddLayoutX(); reimportButtonLayout.AddFlexibleSpace(); reimportButtonLayout.AddElement(reimportButton); }
/// <inheritdoc/> protected internal override void Initialize() { LoadResource(); ScriptCode scriptCode = InspectedObject as ScriptCode; if (scriptCode == null) { return; } importOptions = GetImportOptions(); isEditorField.OnChanged += x => { importOptions.EditorScript = x; }; GUIPanel textPanel = Layout.AddPanel(); GUILayout textLayoutY = textPanel.AddLayoutY(); textLayoutY.AddSpace(5); GUILayout textLayoutX = textLayoutY.AddLayoutX(); textLayoutX.AddSpace(5); textLayoutX.AddElement(textLabel); textLayoutX.AddSpace(5); textLayoutY.AddSpace(5); GUIPanel textBgPanel = textPanel.AddPanel(1); textBgPanel.AddElement(textBg); Layout.AddElement(isEditorField); Layout.AddSpace(10); reimportButton = new GUIReimportButton(InspectedResourcePath, Layout, () => { ProjectLibrary.Reimport(InspectedResourcePath, importOptions, true); }); UpdateGUIValues(); }
/// <summary> /// Recreates all the GUI elements used by this inspector. /// </summary> private void BuildGUI() { Layout.Clear(); fontSizes = GUIArrayField <int, FontSizeArrayRow> .Create( new LocEdString("Font sizes"), importOptions.FontSizes, Layout); fontSizes.OnChanged += x => importOptions.FontSizes = x; fontSizes.IsExpanded = Persistent.GetBool("fontSizes_Expanded"); fontSizes.OnExpand += x => Persistent.SetBool("fontSizes_Expanded", x); charRanges = GUIArrayField <CharRange, CharRangeArrayRow> .Create( new LocEdString("Character ranges"), importOptions.CharIndexRanges, Layout); charRanges.OnChanged += x => importOptions.CharIndexRanges = x; charRanges.IsExpanded = Persistent.GetBool("charRanges_Expanded"); charRanges.OnExpand += x => Persistent.SetBool("charRanges_Expanded", x); renderModeField = new GUIEnumField(typeof(FontRenderMode), new LocEdString("Render mode")); renderModeField.OnSelectionChanged += x => importOptions.RenderMode = (FontRenderMode)x; boldField = new GUIToggleField(new LocEdString("Bold")); boldField.OnChanged += x => importOptions.Bold = x; italicField = new GUIToggleField(new LocEdString("Italic")); italicField.OnChanged += x => importOptions.Italic = x; dpiField = new GUIIntField(new LocEdString("DPI")); dpiField.OnChanged += x => importOptions.Dpi = x; Layout.AddElement(renderModeField); Layout.AddElement(boldField); Layout.AddElement(italicField); Layout.AddElement(dpiField); Layout.AddSpace(10); reimportButton = new GUIReimportButton(InspectedResourcePath, Layout, () => { ProjectLibrary.Reimport(InspectedResourcePath, importOptions, true); }); UpdateGUIValues(); }
/// <summary> /// Recreates GUI elements for all material parameters. /// </summary> /// <param name="material">Material to create parameters for</param> private void RebuildParamGUI(Material material) { if (guiParams != null) { foreach (var param in guiParams) { param.Destroy(); } guiParams = null; } Layout.Clear(); Layout.AddElement(builtinShaderField); Layout.AddElement(shaderField); if (material != null && material.Shader != null) { guiParams = CreateMaterialGUI(material, Layout); } }
/// <inheritdoc/> protected internal override void Initialize() { if (InspectedObject != null) { ReflectionProbe probe = (ReflectionProbe)InspectedObject; probeTypeField.OnSelectionChanged += x => { probe.Type = (ReflectionProbeType)x; ToggleTypeSpecificFields((ReflectionProbeType)x); }; radiusField.OnChanged += x => { probe.Radius = x; MarkAsModified(); }; radiusField.OnConfirmed += ConfirmModify; radiusField.OnFocusLost += ConfirmModify; extentsField.OnChanged += x => { probe.Extents = x; MarkAsModified(); }; extentsField.OnConfirmed += ConfirmModify; extentsField.OnFocusLost += ConfirmModify; customTextureField.OnChanged += x => { probe.CustomTexture = Resources.Load <Texture>(x.UUID); MarkAsModified(); ConfirmModify(); }; captureButton.OnClick += () => probe.Capture(); Layout.AddElement(probeTypeField); Layout.AddElement(radiusField); Layout.AddElement(extentsField); Layout.AddElement(customTextureField); Layout.AddSpace(10); Layout.AddElement(captureButton); ToggleTypeSpecificFields(probe.Type); } }
/// <inheritdoc/> protected internal override void Initialize() { importOptions = GetImportOptions(); formatField.OnSelectionChanged += x => importOptions.Format = (AudioFormat)x; readModeField.OnSelectionChanged += x => importOptions.ReadMode = (AudioReadMode)x; bitDepthField.OnSelectionChanged += x => importOptions.BitDepth = (AudioBitDepth)x; is3DField.OnChanged += x => importOptions.Is3D = x; reimportButton.OnClick += TriggerReimport; Layout.AddElement(formatField); Layout.AddElement(readModeField); Layout.AddElement(bitDepthField); Layout.AddElement(is3DField); Layout.AddSpace(10); GUILayout reimportButtonLayout = Layout.AddLayoutX(); reimportButtonLayout.AddFlexibleSpace(); reimportButtonLayout.AddElement(reimportButton); }
/// <inheritdoc/> protected internal override void Initialize() { importOptions = GetImportOptions(); formatField.OnSelectionChanged += x => importOptions.Format = (AudioFormat)x; readModeField.OnSelectionChanged += x => importOptions.ReadMode = (AudioReadMode)x; bitDepthField.OnSelectionChanged += x => importOptions.BitDepth = (int)x; is3DField.OnChanged += x => importOptions.Is3D = x; Layout.AddElement(formatField); Layout.AddElement(readModeField); Layout.AddElement(bitDepthField); Layout.AddElement(is3DField); Layout.AddSpace(10); reimportButton = new GUIReimportButton(InspectedResourcePath, Layout, () => { ProjectLibrary.Reimport(InspectedResourcePath, importOptions, true); }); UpdateGUIValues(); }