mirror of
https://git.aaro.dev/VRCBoard/vrcboard-udon.git
synced 2026-03-17 02:49:46 +00:00
Update VRCBoardImage component to include material override functionality and adjust related properties
This commit is contained in:
@@ -44,7 +44,7 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 12
|
Entry: 12
|
||||||
Data: 10
|
Data: 11
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data:
|
Data:
|
||||||
@@ -329,19 +329,19 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name: $k
|
- Name: $k
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: imageIds
|
Data: materialOverride
|
||||||
- Name: $v
|
- Name: $v
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 18|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
Data: 18|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
- Name: <Name>k__BackingField
|
- Name: <Name>k__BackingField
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: imageIds
|
Data: materialOverride
|
||||||
- Name: <UserType>k__BackingField
|
- Name: <UserType>k__BackingField
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 19|System.RuntimeType, mscorlib
|
Data: 19|System.RuntimeType, mscorlib
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: System.String[], mscorlib
|
Data: UnityEngine.Material, UnityEngine.CoreModule
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 8
|
Entry: 8
|
||||||
Data:
|
Data:
|
||||||
@@ -365,19 +365,14 @@ MonoBehaviour:
|
|||||||
Data: 20|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
Data: 20|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 12
|
Entry: 12
|
||||||
Data: 2
|
Data: 1
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 21|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
|
Data: 21|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
|
||||||
- Name: header
|
- Name: header
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: Uploader Image Mappings
|
Data: Material Override (Optional, if set the properties are applied globally
|
||||||
- Name:
|
to all renderers using the material)
|
||||||
Entry: 8
|
|
||||||
Data:
|
|
||||||
- Name:
|
|
||||||
Entry: 7
|
|
||||||
Data: 22|UnityEngine.HideInInspector, UnityEngine.CoreModule
|
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 8
|
Entry: 8
|
||||||
Data:
|
Data:
|
||||||
@@ -398,19 +393,25 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name: $k
|
- Name: $k
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: texturePropertyMappings
|
Data: imageIds
|
||||||
- Name: $v
|
- Name: $v
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 23|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
- Name: <Name>k__BackingField
|
- Name: <Name>k__BackingField
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: texturePropertyMappings
|
Data: imageIds
|
||||||
- Name: <UserType>k__BackingField
|
- Name: <UserType>k__BackingField
|
||||||
Entry: 9
|
Entry: 7
|
||||||
Data: 19
|
Data: 23|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: System.String[], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
- Name: <SystemType>k__BackingField
|
- Name: <SystemType>k__BackingField
|
||||||
Entry: 9
|
Entry: 9
|
||||||
Data: 19
|
Data: 23
|
||||||
- Name: <SyncMode>k__BackingField
|
- Name: <SyncMode>k__BackingField
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
@@ -452,25 +453,19 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name: $k
|
- Name: $k
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: defaultTextures
|
Data: texturePropertyMappings
|
||||||
- Name: $v
|
- Name: $v
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
- Name: <Name>k__BackingField
|
- Name: <Name>k__BackingField
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: defaultTextures
|
Data: texturePropertyMappings
|
||||||
- Name: <UserType>k__BackingField
|
- Name: <UserType>k__BackingField
|
||||||
Entry: 7
|
Entry: 9
|
||||||
Data: 27|System.RuntimeType, mscorlib
|
Data: 23
|
||||||
- Name:
|
|
||||||
Entry: 1
|
|
||||||
Data: UnityEngine.Texture2D[], UnityEngine.CoreModule
|
|
||||||
- Name:
|
|
||||||
Entry: 8
|
|
||||||
Data:
|
|
||||||
- Name: <SystemType>k__BackingField
|
- Name: <SystemType>k__BackingField
|
||||||
Entry: 9
|
Entry: 9
|
||||||
Data: 27
|
Data: 23
|
||||||
- Name: <SyncMode>k__BackingField
|
- Name: <SyncMode>k__BackingField
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
@@ -485,13 +480,13 @@ MonoBehaviour:
|
|||||||
Data: true
|
Data: true
|
||||||
- Name: _fieldAttributes
|
- Name: _fieldAttributes
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 12
|
Entry: 12
|
||||||
Data: 1
|
Data: 1
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 29|UnityEngine.HideInInspector, UnityEngine.CoreModule
|
Data: 28|UnityEngine.HideInInspector, UnityEngine.CoreModule
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 8
|
Entry: 8
|
||||||
Data:
|
Data:
|
||||||
@@ -512,19 +507,25 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name: $k
|
- Name: $k
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: _mainType
|
Data: defaultTextures
|
||||||
- Name: $v
|
- Name: $v
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
- Name: <Name>k__BackingField
|
- Name: <Name>k__BackingField
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: _mainType
|
Data: defaultTextures
|
||||||
- Name: <UserType>k__BackingField
|
- Name: <UserType>k__BackingField
|
||||||
Entry: 9
|
Entry: 7
|
||||||
Data: 15
|
Data: 30|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: UnityEngine.Texture2D[], UnityEngine.CoreModule
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
- Name: <SystemType>k__BackingField
|
- Name: <SystemType>k__BackingField
|
||||||
Entry: 9
|
Entry: 9
|
||||||
Data: 15
|
Data: 30
|
||||||
- Name: <SyncMode>k__BackingField
|
- Name: <SyncMode>k__BackingField
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
@@ -536,10 +537,64 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name: <IsSerialized>k__BackingField
|
- Name: <IsSerialized>k__BackingField
|
||||||
Entry: 5
|
Entry: 5
|
||||||
Data: false
|
Data: true
|
||||||
- Name: _fieldAttributes
|
- Name: _fieldAttributes
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 1
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data: 32|UnityEngine.HideInInspector, UnityEngine.CoreModule
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: _mainType
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 33|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: _mainType
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 15
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 15
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: false
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 12
|
Entry: 12
|
||||||
Data: 0
|
Data: 0
|
||||||
@@ -563,7 +618,7 @@ MonoBehaviour:
|
|||||||
Data: _uploaderId
|
Data: _uploaderId
|
||||||
- Name: $v
|
- Name: $v
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 32|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
Data: 35|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
- Name: <Name>k__BackingField
|
- Name: <Name>k__BackingField
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: _uploaderId
|
Data: _uploaderId
|
||||||
@@ -587,7 +642,7 @@ MonoBehaviour:
|
|||||||
Data: false
|
Data: false
|
||||||
- Name: _fieldAttributes
|
- Name: _fieldAttributes
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 33|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 12
|
Entry: 12
|
||||||
Data: 0
|
Data: 0
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ namespace VRCBoard.Components
|
|||||||
[Header("Uploader ID (only applies to images of 'shared' or 'instance' type)")]
|
[Header("Uploader ID (only applies to images of 'shared' or 'instance' type)")]
|
||||||
public string uploaderIdOverride;
|
public string uploaderIdOverride;
|
||||||
|
|
||||||
[Header("Uploader Image Mappings")]
|
[Header("Material Override (Optional, if set the properties are applied globally to all renderers using the material)")]
|
||||||
|
public Material materialOverride;
|
||||||
|
|
||||||
[HideInInspector] public string[] imageIds = new string[0];
|
[HideInInspector] public string[] imageIds = new string[0];
|
||||||
[HideInInspector] public string[] texturePropertyMappings = new string[0];
|
[HideInInspector] public string[] texturePropertyMappings = new string[0];
|
||||||
[HideInInspector] public Texture2D[] defaultTextures = new Texture2D[0];
|
[HideInInspector] public Texture2D[] defaultTextures = new Texture2D[0];
|
||||||
@@ -32,7 +34,7 @@ namespace VRCBoard.Components
|
|||||||
private string GetUploader()
|
private string GetUploader()
|
||||||
{
|
{
|
||||||
string uploaderId = "";
|
string uploaderId = "";
|
||||||
if (string.IsNullOrEmpty(uploaderIdOverride))
|
if (string.IsNullOrEmpty(uploaderIdOverride) && imageIds.Length > 0)
|
||||||
{
|
{
|
||||||
string firstImageID = imageIds[0];
|
string firstImageID = imageIds[0];
|
||||||
GetImageAtlasTexture(firstImageID, null, out Texture2D albedoTexture, out int albedoAtlasPosition, out int albedoAtlasSize, out string albedoType);
|
GetImageAtlasTexture(firstImageID, null, out Texture2D albedoTexture, out int albedoAtlasPosition, out int albedoAtlasSize, out string albedoType);
|
||||||
@@ -115,11 +117,16 @@ namespace VRCBoard.Components
|
|||||||
|
|
||||||
string propertyName = texturePropertyMappings[i];
|
string propertyName = texturePropertyMappings[i];
|
||||||
Texture2D texture = manager.GetTexture2D(_uploaderId, imageIds[i]);
|
Texture2D texture = manager.GetTexture2D(_uploaderId, imageIds[i]);
|
||||||
|
|
||||||
if (texture == null) continue;
|
if (texture == null)
|
||||||
|
{
|
||||||
|
texture = defaultTextures[i];
|
||||||
|
if (texture == null) continue;
|
||||||
|
}
|
||||||
if (string.IsNullOrEmpty(propertyName)) continue;
|
if (string.IsNullOrEmpty(propertyName)) continue;
|
||||||
|
|
||||||
propertyBlock.SetTexture(propertyName, texture);
|
propertyBlock.SetTexture(propertyName, texture);
|
||||||
|
if (materialOverride != null) materialOverride.SetTexture(propertyName, texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -136,6 +143,11 @@ namespace VRCBoard.Components
|
|||||||
|
|
||||||
Renderer renderer = script.GetComponent<Renderer>();
|
Renderer renderer = script.GetComponent<Renderer>();
|
||||||
Material material = renderer.sharedMaterial;
|
Material material = renderer.sharedMaterial;
|
||||||
|
if (script.materialOverride)
|
||||||
|
{
|
||||||
|
EditorGUILayout.HelpBox("Material override enabled", MessageType.Info);
|
||||||
|
material = script.materialOverride;
|
||||||
|
}
|
||||||
string[] materialPropertyNames = material.GetPropertyNames(MaterialPropertyType.Texture);
|
string[] materialPropertyNames = material.GetPropertyNames(MaterialPropertyType.Texture);
|
||||||
|
|
||||||
base.OnInspectorGUI();
|
base.OnInspectorGUI();
|
||||||
@@ -195,6 +207,7 @@ namespace VRCBoard.Components
|
|||||||
defaultImage = EditorGUILayout.ObjectField(defaultImage, typeof(Texture2D), false) as Texture2D;
|
defaultImage = EditorGUILayout.ObjectField(defaultImage, typeof(Texture2D), false) as Texture2D;
|
||||||
EditorGUILayout.EndHorizontal();
|
EditorGUILayout.EndHorizontal();
|
||||||
if (defaultImage != null) propertyBlock.SetTexture(propertyName, defaultImage);
|
if (defaultImage != null) propertyBlock.SetTexture(propertyName, defaultImage);
|
||||||
|
if (script.materialOverride != null) script.materialOverride.SetTexture(propertyName, defaultImage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (script.defaultTextures[i] != defaultImage)
|
if (script.defaultTextures[i] != defaultImage)
|
||||||
|
|||||||
Reference in New Issue
Block a user