feat: project-wide default view size for baking

close #360
This commit is contained in:
mob-sakai
2026-06-25 12:58:14 +09:00
parent 733901436d
commit bc5a1f4435
4 changed files with 46 additions and 10 deletions

View File

@@ -49,6 +49,7 @@ namespace Coffee.UIExtensions
private static readonly GUIContent s_ContentRandom = new GUIContent("Random"); private static readonly GUIContent s_ContentRandom = new GUIContent("Random");
private static readonly GUIContent s_ContentScale = new GUIContent("Scale"); private static readonly GUIContent s_ContentScale = new GUIContent("Scale");
private static readonly GUIContent s_ContentPrimary = new GUIContent("Primary"); private static readonly GUIContent s_ContentPrimary = new GUIContent("Primary");
private static readonly GUIContent s_ViewSize = new GUIContent("View Size");
private static readonly Regex s_RegexBuiltInGuid = new Regex(@"^0{16}.0{15}$", RegexOptions.Compiled); private static readonly Regex s_RegexBuiltInGuid = new Regex(@"^0{16}.0{15}$", RegexOptions.Compiled);
private static readonly List<Material> s_TempMaterials = new List<Material>(); private static readonly List<Material> s_TempMaterials = new List<Material>();
@@ -246,16 +247,24 @@ namespace Coffee.UIExtensions
// Custom View Size // Custom View Size
EditorGUILayout.PropertyField(_useCustomView); EditorGUILayout.PropertyField(_useCustomView);
EditorGUI.BeginChangeCheck();
EditorGUI.BeginDisabledGroup(!_useCustomView.boolValue);
EditorGUI.indentLevel++; EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_customViewSize); if (_useCustomView.boolValue)
EditorGUI.indentLevel--;
EditorGUI.EndDisabledGroup();
if (EditorGUI.EndChangeCheck())
{ {
_customViewSize.floatValue = Mathf.Max(0.1f, _customViewSize.floatValue); EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(_customViewSize);
if (EditorGUI.EndChangeCheck())
{
_customViewSize.floatValue = Mathf.Max(0.1f, _customViewSize.floatValue);
}
} }
else
{
EditorGUI.BeginDisabledGroup(!_useCustomView.boolValue);
EditorGUILayout.FloatField(s_ViewSize, UIParticleProjectSettings.defaultViewSizeForBaking);
EditorGUI.EndDisabledGroup();
}
EditorGUI.indentLevel--;
// Time Scale Multiplier // Time Scale Multiplier
EditorGUILayout.PropertyField(_timeScaleMultiplier); EditorGUILayout.PropertyField(_timeScaleMultiplier);

View File

@@ -282,11 +282,12 @@ uiParticle.Stop();
You can adjust the project-wide settings for `UI Particle`. (`Edit > Project Settings > UI > UI Particle`) You can adjust the project-wide settings for `UI Particle`. (`Edit > Project Settings > UI > UI Particle`)
![](https://github.com/mob-sakai/mob-sakai/releases/download/docs/1782270746550.png) ![](https://github.com/mob-sakai/mob-sakai/releases/download/docs/1782360274340.png)
#### Settings #### Settings
- **Enable Linear To Gamma**: Automatically correct the color space of the mesh. - **Enable Linear To Gamma**: Automatically correct the color space of the mesh.
- **Default View Size For Baking**: Default view size for baking particle systems.
#### Editor #### Editor

View File

@@ -263,6 +263,13 @@ namespace Coffee.UIExtensions
set => m_CustomViewSize = Mathf.Max(0.1f, value); set => m_CustomViewSize = Mathf.Max(0.1f, value);
} }
/// <summary>
/// View size for Baking.
/// </summary>
public float viewSizeForBaking => useCustomView
? m_CustomViewSize
: UIParticleProjectSettings.defaultViewSizeForBaking;
/// <summary> /// <summary>
/// Time scale multiplier. /// Time scale multiplier.
/// </summary> /// </summary>
@@ -718,7 +725,7 @@ namespace Coffee.UIExtensions
if (_bakeCamera != null) if (_bakeCamera != null)
{ {
_bakeCamera.orthographicSize = useCustomView ? customViewSize : 10; _bakeCamera.orthographicSize = viewSizeForBaking;
return _bakeCamera; return _bakeCamera;
} }
@@ -745,7 +752,7 @@ namespace Coffee.UIExtensions
// Setup baking camera. // Setup baking camera.
_bakeCamera.enabled = false; _bakeCamera.enabled = false;
_bakeCamera.orthographicSize = useCustomView ? customViewSize : 10; _bakeCamera.orthographicSize = viewSizeForBaking;
_bakeCamera.transform.SetPositionAndRotation(new Vector3(0, 0, -1000), Quaternion.identity); _bakeCamera.transform.SetPositionAndRotation(new Vector3(0, 0, -1000), Quaternion.identity);
_bakeCamera.orthographic = true; _bakeCamera.orthographic = true;
_bakeCamera.farClipPlane = 2000f; _bakeCamera.farClipPlane = 2000f;

View File

@@ -20,6 +20,15 @@ namespace Coffee.UIExtensions
set => instance.m_AutoColorCorrection = value; set => instance.m_AutoColorCorrection = value;
} }
[SerializeField]
[Tooltip("Default view size for baking particle systems.")]
private float m_DefaultViewSizeForBaking = 10;
public static float defaultViewSizeForBaking
{
get => instance.m_DefaultViewSizeForBaking;
set => instance.m_DefaultViewSizeForBaking = value;
}
[Header("Editor")] [Header("Editor")]
[Tooltip("Hide the automatically generated objects.\n" + [Tooltip("Hide the automatically generated objects.\n" +
@@ -44,6 +53,16 @@ namespace Coffee.UIExtensions
{ {
return new PreloadedProjectSettingsProvider("Project/UI/UI Particle"); return new PreloadedProjectSettingsProvider("Project/UI/UI Particle");
} }
[CustomEditor(typeof(UIParticleProjectSettings))]
private class UIParticleProjectSettingsEditor : Editor
{
public override void OnInspectorGUI()
{
EditorGUIUtility.labelWidth = 180;
base.OnInspectorGUI();
}
}
#endif #endif
} }
} }