public Uni2DEditorSerializedSprite_InteractiveBuildSettings( SerializedObject a_rSerializedSprite ) { if( a_rSerializedSprite != null ) { m_rSerializedSprite = a_rSerializedSprite; serializedTexture = new SerializedSetting<Texture2D>( a_rSerializedSprite, "m_rSpriteSettings.textureContainer.m_rTexture" ); serializedTextureGUID = new SerializedSetting<string>( a_rSerializedSprite, "m_rSpriteSettings.textureContainer.m_oTextureGUID" ); serializedAtlas = new SerializedSetting<Uni2DTextureAtlas>( a_rSerializedSprite, "m_rSpriteSettings.atlas" ); serializedSharedMaterial = new SerializedSetting<Material>(a_rSerializedSprite, "m_rSpriteSettings.sharedMaterial"); serializedSpriteScaleMode = new SerializedSetting<SpriteScaleMode>( a_rSerializedSprite, "m_rSpriteSettings.spriteScaleMode" ); serializedSpriteScale = new SerializedSetting<float>( a_rSerializedSprite, "m_rSpriteSettings.spriteScale" ); serializedSpriteScaleNotUniform = new SerializedSetting<Vector2>( a_rSerializedSprite, "m_rSpriteSettings.spriteScaleNotUniform" ); serializedPivotType = new SerializedSetting<PivotType>( a_rSerializedSprite, "m_rSpriteSettings.pivotType" ); serializedPivotCustomCoords = new SerializedSetting<Vector2>( a_rSerializedSprite, "m_rSpriteSettings.pivotCustomCoords" ); serializedVertexColor = new SerializedSetting<Color>( a_rSerializedSprite, "m_rSpriteSettings.vertexColor" ); serializedExtrusionDepth = new SerializedSetting<float>( a_rSerializedSprite, "m_rSpriteSettings.extrusionDepth" ); serializedIsKinematic = new SerializedSetting<bool>( a_rSerializedSprite, "m_rSpriteSettings.isKinematic" ); serializedIsTrigger = new SerializedSetting<bool>( a_rSerializedSprite, "m_rSpriteSettings.isTrigger" ); serializedBoneInfluenceFalloff = new SerializedSetting<float>( a_rSerializedSprite, "m_rSpriteSettings.boneInfluenceFalloff" ); serializedSkinQuality = new SerializedSetting<UnityEngine.SkinQuality>( a_rSerializedSprite, "m_rSpriteSettings.skinQuality" ); serializedPhysicsSkinMode = new SerializedSetting<Uni2DSprite.EPhysicsSkinMode>( a_rSerializedSprite, "m_rSpriteSettings.physicsSkinMode" ); serializedRenderSkinMode = new SerializedSetting<Uni2DSprite.ERenderSkinMode>( a_rSerializedSprite, "m_rSpriteSettings.renderSkinMode" ); } }
public void TestWrite() { var setting = new SerializedSetting <SerializedSetting <int> > { Category = "Test category", Description = "Some value for testing", HumanReadableName = "Test string", Value = new SerializedSetting <int> { Category = "Test category", Description = "Some value for testing", HumanReadableName = "Test int", Value = 666 } }; string filePath = @".\testSetting.xml"; if (File.Exists(filePath)) { File.Delete(filePath); } XmlSerializer writer = new XmlSerializer(setting.GetType()); FileStream file = File.Create(filePath); writer.Serialize(file, setting); file.Close(); }
public Uni2DEditorSerializedSprite_BuildSettings( SerializedObject a_rSerializedSprite ) { if( a_rSerializedSprite != null ) { m_rSerializedSprite = a_rSerializedSprite; serializedDimensionMode = new SerializedSetting<DimensionMode>(a_rSerializedSprite, "m_rSpriteSettings.dimensionMode"); serializedPhysicsMode = new SerializedSetting<PhysicsMode>( a_rSerializedSprite, "m_rSpriteSettings.physicsMode" ); serializedCollisionType = new SerializedSetting<CollisionType>( a_rSerializedSprite, "m_rSpriteSettings.collisionType" ); serializedAlphaCutOff = new SerializedSetting<float>( a_rSerializedSprite, "m_rSpriteSettings.alphaCutOff" ); serializedPolygonizationAccuracy = new SerializedSetting<float>( a_rSerializedSprite, "m_rSpriteSettings.polygonizationAccuracy" ); serializedPolygonizeHoles = new SerializedSetting<bool>( a_rSerializedSprite, "m_rSpriteSettings.polygonizeHoles" ); serializedRenderMesh = new SerializedSetting<SpriteRenderMesh>( a_rSerializedSprite, "m_rSpriteSettings.renderMesh" ); serializedUsePhysicBuildSettings = new SerializedSetting<bool>( a_rSerializedSprite, "m_rSpriteSettings.usePhysicBuildSettings" ); serializedRenderMeshAlphaCutOff = new SerializedSetting<float>( a_rSerializedSprite, "m_rSpriteSettings.renderMeshAlphaCutOff" ); serializedRenderMeshPolygonizationAccuracy = new SerializedSetting<float>( a_rSerializedSprite, "m_rSpriteSettings.renderMeshPolygonizationAccuracy" ); serializedRenderMeshPolygonizeHoles = new SerializedSetting<bool>( a_rSerializedSprite, "m_rSpriteSettings.renderMeshPolygonizeHoles" ); serializedOnlyBorder = new SerializedSetting<bool>( a_rSerializedSprite, "m_rSpriteSettings.onlyBorder" ); serializedSubdivide = new SerializedSetting<bool>( a_rSerializedSprite, "m_rSpriteSettings.subdivide" ); serializedSubdivisionCount = new SerializedSetting<int>(a_rSerializedSprite, "m_rSpriteSettings.subdivisionCount"); serializedIsPhysicsDirty = new SerializedSetting<bool>( a_rSerializedSprite, "isPhysicsDirty" ); serializedRenderMeshGridHorizontalSubDivs = new SerializedSetting<int>( a_rSerializedSprite, "m_rSpriteSettings.renderMeshGridHorizontalSubDivs" ); serializedRenderMeshGridVerticalSubDivs = new SerializedSetting<int>( a_rSerializedSprite, "m_rSpriteSettings.renderMeshGridVerticalSubDivs" ); } }
private void DisplaySetting(SerializedSetting serializedSetting) { EditorGUILayout.Space(); switch (serializedSetting.Type) { case SettingType.Boolean: DisplayBoolToggle(serializedSetting); break; case SettingType.Enumeration: DisplayLabelField(serializedSetting); break; case SettingType.Integer: DisplayIntSlider(serializedSetting); break; case SettingType.Float: DisplayFloatSlider(serializedSetting); break; case SettingType.ListOfIntegers: DisplayList(serializedSetting); break; case SettingType.ListOfFloats: DisplayList(serializedSetting); break; default: DisplayTextField(serializedSetting); break; } }
public Uni2DEditorSerializedSprite_BuildSettings(SerializedObject a_rSerializedSprite) { if (a_rSerializedSprite != null) { m_rSerializedSprite = a_rSerializedSprite; serializedDimensionMode = new SerializedSetting <DimensionMode>(a_rSerializedSprite, "m_rSpriteSettings.dimensionMode"); serializedPhysicsMode = new SerializedSetting <PhysicsMode>(a_rSerializedSprite, "m_rSpriteSettings.physicsMode"); serializedCollisionType = new SerializedSetting <CollisionType>(a_rSerializedSprite, "m_rSpriteSettings.collisionType"); serializedAlphaCutOff = new SerializedSetting <float>(a_rSerializedSprite, "m_rSpriteSettings.alphaCutOff"); serializedPolygonizationAccuracy = new SerializedSetting <float>(a_rSerializedSprite, "m_rSpriteSettings.polygonizationAccuracy"); serializedPolygonizeHoles = new SerializedSetting <bool>(a_rSerializedSprite, "m_rSpriteSettings.polygonizeHoles"); serializedRenderMesh = new SerializedSetting <SpriteRenderMesh>(a_rSerializedSprite, "m_rSpriteSettings.renderMesh"); serializedUsePhysicBuildSettings = new SerializedSetting <bool>(a_rSerializedSprite, "m_rSpriteSettings.usePhysicBuildSettings"); serializedRenderMeshAlphaCutOff = new SerializedSetting <float>(a_rSerializedSprite, "m_rSpriteSettings.renderMeshAlphaCutOff"); serializedRenderMeshPolygonizationAccuracy = new SerializedSetting <float>(a_rSerializedSprite, "m_rSpriteSettings.renderMeshPolygonizationAccuracy"); serializedRenderMeshPolygonizeHoles = new SerializedSetting <bool>(a_rSerializedSprite, "m_rSpriteSettings.renderMeshPolygonizeHoles"); serializedOnlyBorder = new SerializedSetting <bool>(a_rSerializedSprite, "m_rSpriteSettings.onlyBorder"); serializedSubdivide = new SerializedSetting <bool>(a_rSerializedSprite, "m_rSpriteSettings.subdivide"); serializedSubdivisionCount = new SerializedSetting <int>(a_rSerializedSprite, "m_rSpriteSettings.subdivisionCount"); serializedIsPhysicsDirty = new SerializedSetting <bool>(a_rSerializedSprite, "isPhysicsDirty"); serializedRenderMeshGridHorizontalSubDivs = new SerializedSetting <int>(a_rSerializedSprite, "m_rSpriteSettings.renderMeshGridHorizontalSubDivs"); serializedRenderMeshGridVerticalSubDivs = new SerializedSetting <int>(a_rSerializedSprite, "m_rSpriteSettings.renderMeshGridVerticalSubDivs"); } }
private void DisplayList(SerializedSetting serializedSetting) { var dataArray = serializedSetting.CurrentValue.Trim().Split(' '); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel( new GUIContent(serializedSetting.ShortName, serializedSetting.Name + TOOLTIP_SEPERATOR + serializedSetting.Description)); switch (serializedSetting.Type) { case SettingType.ListOfFloats: { for (var dataIndex = 0; dataIndex < dataArray.Length; dataIndex++) { float number = float.Parse(dataArray[dataIndex], CultureInfo.InvariantCulture); dataArray[dataIndex] = Convert.ToString(EditorGUILayout.FloatField(number)); } break; } case SettingType.ListOfIntegers: { for (var dataIndex = 0; dataIndex < dataArray.Length; dataIndex++) { int number = int.Parse(dataArray[dataIndex], CultureInfo.InvariantCulture); dataArray[dataIndex] = Convert.ToString(EditorGUILayout.IntField(number)); } break; } } EditorGUILayout.EndHorizontal(); serializedSetting.CurrentValue = String.Join(" ", dataArray); }
public Uni2DEditorSerializedSprite_InteractiveBuildSettings(SerializedObject a_rSerializedSprite) { if (a_rSerializedSprite != null) { m_rSerializedSprite = a_rSerializedSprite; serializedTexture = new SerializedSetting <Texture2D>(a_rSerializedSprite, "m_rSpriteSettings.textureContainer.m_rTexture"); serializedTextureGUID = new SerializedSetting <string>(a_rSerializedSprite, "m_rSpriteSettings.textureContainer.m_oTextureGUID"); serializedAtlas = new SerializedSetting <Uni2DTextureAtlas>(a_rSerializedSprite, "m_rSpriteSettings.atlas"); serializedSharedMaterial = new SerializedSetting <Material>(a_rSerializedSprite, "m_rSpriteSettings.sharedMaterial"); serializedSpriteScaleMode = new SerializedSetting <SpriteScaleMode>(a_rSerializedSprite, "m_rSpriteSettings.spriteScaleMode"); serializedSpriteScale = new SerializedSetting <float>(a_rSerializedSprite, "m_rSpriteSettings.spriteScale"); serializedSpriteScaleNotUniform = new SerializedSetting <Vector2>(a_rSerializedSprite, "m_rSpriteSettings.spriteScaleNotUniform"); serializedPivotType = new SerializedSetting <PivotType>(a_rSerializedSprite, "m_rSpriteSettings.pivotType"); serializedPivotCustomCoords = new SerializedSetting <Vector2>(a_rSerializedSprite, "m_rSpriteSettings.pivotCustomCoords"); serializedVertexColor = new SerializedSetting <Color>(a_rSerializedSprite, "m_rSpriteSettings.vertexColor"); serializedExtrusionDepth = new SerializedSetting <float>(a_rSerializedSprite, "m_rSpriteSettings.extrusionDepth"); serializedIsKinematic = new SerializedSetting <bool>(a_rSerializedSprite, "m_rSpriteSettings.isKinematic"); serializedIsTrigger = new SerializedSetting <bool>(a_rSerializedSprite, "m_rSpriteSettings.isTrigger"); serializedBoneInfluenceFalloff = new SerializedSetting <float>(a_rSerializedSprite, "m_rSpriteSettings.boneInfluenceFalloff"); serializedSkinQuality = new SerializedSetting <UnityEngine.SkinQuality>(a_rSerializedSprite, "m_rSpriteSettings.skinQuality"); serializedPhysicsSkinMode = new SerializedSetting <Uni2DSprite.EPhysicsSkinMode>(a_rSerializedSprite, "m_rSpriteSettings.physicsSkinMode"); serializedRenderSkinMode = new SerializedSetting <Uni2DSprite.ERenderSkinMode>(a_rSerializedSprite, "m_rSpriteSettings.renderSkinMode"); } }
private void DisplayLabelField(SerializedSetting serializedSetting) { EditorGUILayout.LabelField( new GUIContent( serializedSetting.ShortName, serializedSetting.Name + TOOLTIP_SEPERATOR + serializedSetting.Description), new GUIContent(serializedSetting.CurrentValue)); }
private void DisplayBoolToggle(SerializedSetting serializedSetting) { serializedSetting.CurrentValue = EditorGUILayout.Toggle( new GUIContent( serializedSetting.ShortName, serializedSetting.Name + TOOLTIP_SEPERATOR + serializedSetting.Description), StringToBool(serializedSetting.CurrentValue)).ToString(); }
private void DisplayText(SerializedSetting serializedSetting) { if (ContainsAdmissibleValues(serializedSetting)) { DisplayLabelField(serializedSetting); } else { DisplayTextField(serializedSetting); } }
private void DisplayFloatSlider(SerializedSetting serializedSetting) { float minimumValue; float maximumValue; ParseRangeAllowedValues(serializedSetting.AllowedValues, out minimumValue, out maximumValue); serializedSetting.CurrentValue = EditorGUILayout.Slider( new GUIContent( serializedSetting.ShortName, serializedSetting.Name + TOOLTIP_SEPERATOR + serializedSetting.Description), Convert.ToSingle(serializedSetting.CurrentValue), minimumValue, maximumValue).ToString(); }
// Displays a popup menu filled with all potential atlases for the given input textures // Displays all available atlases if a_rTexturesToContain is null // Manages the serialized settings update public static Uni2DTextureAtlas SerializedAtlasPopup(SerializedSetting <Uni2DTextureAtlas> a_rSerializedTextureAtlas, IEnumerable <string> a_rTextureGUIDsToContain = null) { Uni2DTextureAtlas rCurrentAtlas = a_rSerializedTextureAtlas.HasMultipleDifferentValues ? null : a_rSerializedTextureAtlas.Value; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.showMixedValue = a_rSerializedTextureAtlas.HasMultipleDifferentValues; { EditorGUI.BeginChangeCheck( ); { rCurrentAtlas = Uni2DEditorGUIUtils.AtlasPopup(rCurrentAtlas, a_rTextureGUIDsToContain); } if (EditorGUI.EndChangeCheck( )) { a_rSerializedTextureAtlas.Value = rCurrentAtlas; } } EditorGUI.showMixedValue = bSavedShowMixedValue; return(rCurrentAtlas); }
// Templated enum popup control for serialized object public static T SerializedEnumPopup <T>(SerializedSetting <T> a_rSerializedSetting, string a_rLabel = "") where T : struct { System.Enum eNewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; eNewValue = EditorGUILayout.EnumPopup(a_rLabel, a_rSerializedSetting.Value as System.Enum); } T eResult = (T)System.Enum.Parse(typeof(T), eNewValue.ToString( )); if (EditorGUI.EndChangeCheck( )) { a_rSerializedSetting.Value = eResult; } EditorGUI.showMixedValue = bSavedShowMixedValue; return(eResult); }
// Slider control for serialized object public void SerializedSlider( SerializedSetting<float> a_rSerializedSetting, float a_fMinValue, float a_fMaxValue, string a_rLabel = "" ) { float fNewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; fNewValue = EditorGUILayout.Slider( a_rLabel, a_rSerializedSetting.Value, a_fMinValue, a_fMaxValue ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedSetting.Value = fNewValue; } EditorGUI.showMixedValue = bSavedShowMixedValue; }
// Vector3 field control for serialized object public Vector3 SerializedVector3Field( SerializedSetting<Vector3> a_rSerializedSetting, string a_rLabel = "" ) { Vector3 f3NewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; f3NewValue = EditorGUILayout.Vector3Field( a_rLabel, a_rSerializedSetting.Value ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedSetting.Value = f3NewValue; } EditorGUI.showMixedValue = bSavedShowMixedValue; return f3NewValue; }
private bool ContainsAdmissibleValues(SerializedSetting serializedSetting) { return(String.IsNullOrEmpty(serializedSetting.AllowedValues)); }
// Int field control for serialized object public int SerializedIntField( SerializedSetting<int> a_rSerializedSetting, string a_rLabel = "" ) { int iNewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; iNewValue = EditorGUILayout.IntField( a_rLabel, a_rSerializedSetting.Value ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedSetting.Value = iNewValue; } EditorGUI.showMixedValue = bSavedShowMixedValue; return iNewValue; }
// Color field control for serialized object public Color SerializedColorField( SerializedSetting<Color> a_rSerializedSetting, string a_rLabel = "" ) { Color f4NewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; f4NewValue = EditorGUILayout.ColorField( a_rLabel, a_rSerializedSetting.Value ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedSetting.Value = f4NewValue; } EditorGUI.showMixedValue = bSavedShowMixedValue; return f4NewValue; }
// Float field control for serialized object public float SerializedFloatField( SerializedSetting<float> a_rSerializedSetting, string a_rLabel = "" ) { float fNewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; fNewValue = EditorGUILayout.FloatField( a_rLabel, a_rSerializedSetting.Value ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedSetting.Value = fNewValue; } EditorGUI.showMixedValue = bSavedShowMixedValue; return fNewValue; }
// Toggle control for serialized object public void SerializedToggle( SerializedSetting<bool> a_rSerializedSetting, string a_rLabel = "" ) { bool bNewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; bNewValue = EditorGUILayout.Toggle( a_rLabel, a_rSerializedSetting.Value ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedSetting.Value = bNewValue; } EditorGUI.showMixedValue = bSavedShowMixedValue; }
// Slider control for serialized object public void SerializedSlider( SerializedSetting<int> a_rSerializedSetting, int a_iMinValue, int a_iMaxValue, string a_rLabel = "" ) { int iNewValue; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedSetting.HasMultipleDifferentValues; iNewValue = EditorGUILayout.IntSlider( a_rLabel, a_rSerializedSetting.Value, a_iMinValue, a_iMaxValue ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedSetting.Value = iNewValue; } EditorGUI.showMixedValue = bSavedShowMixedValue; }
////////// Serialized controls ////////// // Templated object field control for serialized object //public void SerializedObjectField<T>( SerializedSetting<T> a_rSerializedSetting, string a_rLabel = "", bool a_bAllowSceneObject = false ) where T : Object public void SerializedTexture2DField( SerializedSetting<string> a_rSerializedTextureGUID, string a_rLabel = "", bool a_bAllowSceneObject = false ) { Texture2D rObject; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedTextureGUID.HasMultipleDifferentValues; rObject = Uni2DEditorUtils.GetAssetFromUnityGUID<Texture2D>( a_rSerializedTextureGUID.Value ); rObject = (Texture2D) EditorGUILayout.ObjectField( a_rLabel, rObject, typeof( Texture2D ), a_bAllowSceneObject ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedTextureGUID.Value = Uni2DEditorUtils.GetUnityAssetGUID( rObject ); } EditorGUI.showMixedValue = bSavedShowMixedValue; }
// Templated object field control for serialized object //public void SerializedObjectField<T>( SerializedSetting<T> a_rSerializedSetting, string a_rLabel = "", bool a_bAllowSceneObject = false ) where T : Object public void SerializedMaterialField(SerializedSetting<Material> a_rSerializedMaterial, string a_rLabel = "") { Material rObject; bool bSavedShowMixedValue = EditorGUI.showMixedValue; EditorGUI.BeginChangeCheck( ); { EditorGUI.showMixedValue = a_rSerializedMaterial.HasMultipleDifferentValues; rObject = (Material) EditorGUILayout.ObjectField( a_rLabel, a_rSerializedMaterial.Value, typeof( Material ), false ); } if( EditorGUI.EndChangeCheck( ) ) { a_rSerializedMaterial.Value = rObject; } EditorGUI.showMixedValue = bSavedShowMixedValue; }