This commit is contained in:
dldydtn9755-crypto
2026-07-23 17:58:02 +09:00
parent 3618615ea8
commit be755323fc
62 changed files with 304 additions and 76 deletions

Binary file not shown.

View File

@@ -56,7 +56,7 @@ MonoBehaviour:
x: 139 x: 139
y: -396 y: -396
width: 1843 width: 1843
height: 1975 height: 2086
m_GraphElementMetaData: m_GraphElementMetaData:
- m_Guid: - m_Guid:
m_Value0: 3953896658662454792 m_Value0: 3953896658662454792
@@ -260,6 +260,11 @@ MonoBehaviour:
- Choice1Code - Choice1Code
- Choice2Text - Choice2Text
- Choice2Code - Choice2Code
- __option_HasHiddenBranch
- __option_HiddenGestureKey
- __option_HiddenCode
- UseFixedAngle
- FixedAngleY
m_ValueList: m_ValueList:
- rid: 4848514453388656906 - rid: 4848514453388656906
- rid: 4848514453388656907 - rid: 4848514453388656907
@@ -285,6 +290,11 @@ MonoBehaviour:
- rid: 8016363832598855965 - rid: 8016363832598855965
- rid: 8016363832598856026 - rid: 8016363832598856026
- rid: 8016363832598856027 - rid: 8016363832598856027
- rid: 8016363865578406431
- rid: 8016363865578406432
- rid: 8016363865578406433
- rid: 8016363865578406479
- rid: 8016363865578406480
m_InputPortInfos: m_InputPortInfos:
expandedPortsById: expandedPortsById:
m_KeyList: [] m_KeyList: []
@@ -465,6 +475,11 @@ MonoBehaviour:
- WaitForInput - WaitForInput
- Affection - Affection
- Progress - Progress
- __option_HasHiddenBranch
- __option_HiddenGestureKey
- __option_HiddenCode
- UseFixedAngle
- FixedAngleY
m_ValueList: m_ValueList:
- rid: 8016363832598855968 - rid: 8016363832598855968
- rid: 8016363832598855969 - rid: 8016363832598855969
@@ -483,6 +498,11 @@ MonoBehaviour:
- rid: 8016363832598855982 - rid: 8016363832598855982
- rid: 8016363832598855983 - rid: 8016363832598855983
- rid: 8016363832598855984 - rid: 8016363832598855984
- rid: 8016363865578406434
- rid: 8016363865578406435
- rid: 8016363865578406436
- rid: 8016363865578406481
- rid: 8016363865578406482
m_InputPortInfos: m_InputPortInfos:
expandedPortsById: expandedPortsById:
m_KeyList: [] m_KeyList: []
@@ -639,6 +659,11 @@ MonoBehaviour:
- WaitForInput - WaitForInput
- Affection - Affection
- Progress - Progress
- __option_HasHiddenBranch
- __option_HiddenGestureKey
- __option_HiddenCode
- UseFixedAngle
- FixedAngleY
m_ValueList: m_ValueList:
- rid: 8016363832598855988 - rid: 8016363832598855988
- rid: 8016363832598855989 - rid: 8016363832598855989
@@ -657,6 +682,11 @@ MonoBehaviour:
- rid: 8016363832598856002 - rid: 8016363832598856002
- rid: 8016363832598856003 - rid: 8016363832598856003
- rid: 8016363832598856004 - rid: 8016363832598856004
- rid: 8016363865578406437
- rid: 8016363865578406438
- rid: 8016363865578406439
- rid: 8016363865578406483
- rid: 8016363865578406484
m_InputPortInfos: m_InputPortInfos:
expandedPortsById: expandedPortsById:
m_KeyList: [] m_KeyList: []
@@ -813,6 +843,11 @@ MonoBehaviour:
- WaitForInput - WaitForInput
- Affection - Affection
- Progress - Progress
- __option_HasHiddenBranch
- __option_HiddenGestureKey
- __option_HiddenCode
- UseFixedAngle
- FixedAngleY
m_ValueList: m_ValueList:
- rid: 8016363832598856008 - rid: 8016363832598856008
- rid: 8016363832598856009 - rid: 8016363832598856009
@@ -831,6 +866,11 @@ MonoBehaviour:
- rid: 8016363832598856022 - rid: 8016363832598856022
- rid: 8016363832598856023 - rid: 8016363832598856023
- rid: 8016363832598856024 - rid: 8016363832598856024
- rid: 8016363865578406440
- rid: 8016363865578406441
- rid: 8016363865578406442
- rid: 8016363865578406485
- rid: 8016363865578406486
m_InputPortInfos: m_InputPortInfos:
expandedPortsById: expandedPortsById:
m_KeyList: [] m_KeyList: []
@@ -996,6 +1036,11 @@ MonoBehaviour:
- WaitForInput - WaitForInput
- Affection - Affection
- Progress - Progress
- __option_HasHiddenBranch
- __option_HiddenGestureKey
- __option_HiddenCode
- UseFixedAngle
- FixedAngleY
m_ValueList: m_ValueList:
- rid: 8016363832598856030 - rid: 8016363832598856030
- rid: 8016363832598856031 - rid: 8016363832598856031
@@ -1014,6 +1059,11 @@ MonoBehaviour:
- rid: 8016363832598856044 - rid: 8016363832598856044
- rid: 8016363832598856045 - rid: 8016363832598856045
- rid: 8016363832598856046 - rid: 8016363832598856046
- rid: 8016363865578406443
- rid: 8016363865578406444
- rid: 8016363865578406445
- rid: 8016363865578406487
- rid: 8016363865578406488
m_InputPortInfos: m_InputPortInfos:
expandedPortsById: expandedPortsById:
m_KeyList: [] m_KeyList: []
@@ -1138,6 +1188,11 @@ MonoBehaviour:
- WaitForInput - WaitForInput
- Affection - Affection
- Progress - Progress
- __option_HasHiddenBranch
- __option_HiddenGestureKey
- __option_HiddenCode
- UseFixedAngle
- FixedAngleY
m_ValueList: m_ValueList:
- rid: 8016363859357991072 - rid: 8016363859357991072
- rid: 8016363859357991073 - rid: 8016363859357991073
@@ -1156,6 +1211,11 @@ MonoBehaviour:
- rid: 8016363859357991086 - rid: 8016363859357991086
- rid: 8016363859357991087 - rid: 8016363859357991087
- rid: 8016363859357991088 - rid: 8016363859357991088
- rid: 8016363865578406446
- rid: 8016363865578406447
- rid: 8016363865578406448
- rid: 8016363865578406489
- rid: 8016363865578406490
m_InputPortInfos: m_InputPortInfos:
expandedPortsById: expandedPortsById:
m_KeyList: [] m_KeyList: []
@@ -1308,3 +1368,123 @@ MonoBehaviour:
m_PortDirection: 1 m_PortDirection: 1
m_PortOrientation: 0 m_PortOrientation: 0
m_Title: m_Title:
- rid: 8016363865578406431
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406432
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406433
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406434
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406435
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406436
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406437
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406438
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406439
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406440
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406441
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406442
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406443
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406444
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406445
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406446
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406447
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406448
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 8016363865578406479
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406480
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406481
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406482
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406483
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 1
- rid: 8016363865578406484
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406485
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406486
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406487
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406488
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406489
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 8016363865578406490
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 4f700f5d9e372c94785bf583ebcfcca0 guid: f5bb6bc142720604d917bab67223e7d1
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2338e4f6802bdb845a01bd8b4c3da77d guid: bec4576b1ba9ede4db6fba9bafc7a05a
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 4 - serializedVersion: 3
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4 - serializedVersion: 3
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4 - serializedVersion: 3
buildTarget: Android buildTarget: Android
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -106,7 +106,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4 - serializedVersion: 3
buildTarget: iOS buildTarget: iOS
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -119,24 +119,10 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: VisionOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet: spriteSheet:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID:
@@ -146,8 +132,6 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e22d037d5d9286644b4b81a8b91b5ee5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 4 - serializedVersion: 3
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4 - serializedVersion: 3
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4 - serializedVersion: 3
buildTarget: Android buildTarget: Android
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -106,7 +106,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4 - serializedVersion: 3
buildTarget: iOS buildTarget: iOS
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -119,24 +119,10 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: VisionOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet: spriteSheet:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID:
@@ -146,8 +132,6 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0

View File

@@ -16,6 +16,8 @@ ModelImporter:
optimizeGameObjects: 0 optimizeGameObjects: 0
removeConstantScaleCurves: 0 removeConstantScaleCurves: 0
motionNodeName: motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors: animationImportErrors:
animationImportWarnings: animationImportWarnings:
animationRetargetingWarnings: animationRetargetingWarnings:

View File

@@ -16,6 +16,8 @@ ModelImporter:
optimizeGameObjects: 0 optimizeGameObjects: 0
removeConstantScaleCurves: 0 removeConstantScaleCurves: 0
motionNodeName: motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors: animationImportErrors:
animationImportWarnings: animationImportWarnings:
animationRetargetingWarnings: animationRetargetingWarnings:

View File

@@ -16,6 +16,8 @@ ModelImporter:
optimizeGameObjects: 0 optimizeGameObjects: 0
removeConstantScaleCurves: 0 removeConstantScaleCurves: 0
motionNodeName: motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors: animationImportErrors:
animationImportWarnings: animationImportWarnings:
animationRetargetingWarnings: animationRetargetingWarnings:

View File

@@ -16,6 +16,8 @@ ModelImporter:
optimizeGameObjects: 0 optimizeGameObjects: 0
removeConstantScaleCurves: 0 removeConstantScaleCurves: 0
motionNodeName: motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors: animationImportErrors:
animationImportWarnings: animationImportWarnings:
animationRetargetingWarnings: animationRetargetingWarnings:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c8146e7694b9541089b8dbaa8a7d59d9
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine.Serialization; using UnityEngine.Serialization;
@@ -114,9 +115,18 @@ public VelocityType velocityType
} }
XRHandSubsystem m_Subsystem; XRHandSubsystem m_Subsystem;
public XRHandSubsystem subsystem
{
get => m_Subsystem;
}
HandGameObjects m_LeftHandGameObjects; HandGameObjects m_LeftHandGameObjects;
HandGameObjects m_RightHandGameObjects; HandGameObjects m_RightHandGameObjects;
public Action<XRHandSubsystem> subsystemSubscribed;
public Action<XRHandSubsystem> subsystemUnsubscribed;
XRHandSubsystem.UpdateSuccessFlags m_CombinedSuccessFlags;
static readonly List<XRHandSubsystem> s_SubsystemsReuse = new List<XRHandSubsystem>(); static readonly List<XRHandSubsystem> s_SubsystemsReuse = new List<XRHandSubsystem>();
/// <summary> /// <summary>
@@ -254,6 +264,9 @@ void SubscribeHandSubsystem()
m_Subsystem.trackingAcquired += OnTrackingAcquired; m_Subsystem.trackingAcquired += OnTrackingAcquired;
m_Subsystem.trackingLost += OnTrackingLost; m_Subsystem.trackingLost += OnTrackingLost;
m_Subsystem.updatedHands += OnUpdatedHands; m_Subsystem.updatedHands += OnUpdatedHands;
if (subsystemSubscribed != null)
subsystemSubscribed.Invoke(m_Subsystem);
} }
void UnsubscribeHandSubsystem() void UnsubscribeHandSubsystem()
@@ -261,6 +274,9 @@ void UnsubscribeHandSubsystem()
if (m_Subsystem == null) if (m_Subsystem == null)
return; return;
if (subsystemUnsubscribed != null)
subsystemUnsubscribed.Invoke(m_Subsystem);
m_Subsystem.trackingAcquired -= OnTrackingAcquired; m_Subsystem.trackingAcquired -= OnTrackingAcquired;
m_Subsystem.trackingLost -= OnTrackingLost; m_Subsystem.trackingLost -= OnTrackingLost;
m_Subsystem.updatedHands -= OnUpdatedHands; m_Subsystem.updatedHands -= OnUpdatedHands;
@@ -309,6 +325,7 @@ void OnUpdatedHands(XRHandSubsystem subsystem, XRHandSubsystem.UpdateSuccessFlag
// We have no game logic depending on the Transforms, so early out here // We have no game logic depending on the Transforms, so early out here
// (add game logic before this return here, directly querying from // (add game logic before this return here, directly querying from
// subsystem.leftHand and subsystem.rightHand using GetJoint on each hand) // subsystem.leftHand and subsystem.rightHand using GetJoint on each hand)
m_CombinedSuccessFlags |= updateSuccessFlags;
if (updateType == XRHandSubsystem.UpdateType.Dynamic) if (updateType == XRHandSubsystem.UpdateType.Dynamic)
return; return;
@@ -338,15 +355,19 @@ void OnUpdatedHands(XRHandSubsystem subsystem, XRHandSubsystem.UpdateSuccessFlag
m_LeftHandGameObjects.UpdateJoints( m_LeftHandGameObjects.UpdateJoints(
subsystem.leftHand, subsystem.leftHand,
(updateSuccessFlags & XRHandSubsystem.UpdateSuccessFlags.LeftHandJoints) != 0, (m_CombinedSuccessFlags & XRHandSubsystem.UpdateSuccessFlags.LeftHandJoints) != 0,
m_DebugDrawJoints, m_DebugDrawJoints,
m_VelocityType); m_VelocityType);
m_RightHandGameObjects.UpdateJoints( m_RightHandGameObjects.UpdateJoints(
subsystem.rightHand, subsystem.rightHand,
(updateSuccessFlags & XRHandSubsystem.UpdateSuccessFlags.RightHandJoints) != 0, (m_CombinedSuccessFlags & XRHandSubsystem.UpdateSuccessFlags.RightHandJoints) != 0,
m_DebugDrawJoints, m_DebugDrawJoints,
m_VelocityType); m_VelocityType);
// Reset the combined flags after the BeforeRender phase
if (updateType == XRHandSubsystem.UpdateType.BeforeRender)
m_CombinedSuccessFlags = XRHandSubsystem.UpdateSuccessFlags.None;
} }
class HandGameObjects class HandGameObjects

View File

@@ -1,5 +1,6 @@
using UnityEngine.Rendering; using UnityEngine.Rendering;
using System.Collections.Generic; using System.Collections.Generic;
#if UNITY_EDITOR #if UNITY_EDITOR
using UnityEditor; using UnityEditor;
#endif #endif
@@ -10,16 +11,23 @@ namespace UnityEngine.XR.Hands.Samples.VisualizerSample
[InitializeOnLoad] [InitializeOnLoad]
static class RenderPipelineValidation static class RenderPipelineValidation
{ {
/// <summary>
/// Manually refreshes all Material Pipeline Handler scriptable objects.
/// </summary>
static void RefreshMaterialPipelineHandlers()
{
foreach (var pipelineHandler in GetAllInstances())
{
pipelineHandler.AutoRefreshPipelineShaders();
}
}
static RenderPipelineValidation() static RenderPipelineValidation()
{ {
// Use delayCall to ensure this runs after the editor is fully initialized and all assets are imported. // Use delayCall to ensure this runs after the editor is fully initialized and all assets are imported.
// Without delayCall, this script may execute before new assets (such as newly imported samples) // Without delayCall, this script may execute before new assets (such as newly imported samples)
// are registered in the AssetDatabase, so they won't be found or converted. // are registered in the AssetDatabase, so they won't be found or converted.
EditorApplication.delayCall += () => EditorApplication.delayCall += () => RefreshMaterialPipelineHandlers();
{
foreach (var pipelineHandler in GetAllInstances())
pipelineHandler.AutoRefreshPipelineShaders();
};
} }
static List<MaterialPipelineHandler> GetAllInstances() static List<MaterialPipelineHandler> GetAllInstances()
@@ -72,6 +80,8 @@ public class MaterialPipelineHandler : ScriptableObject
[Tooltip("If true, the shaders will be refreshed automatically when the editor opens and when this scriptable object instance is enabled.")] [Tooltip("If true, the shaders will be refreshed automatically when the editor opens and when this scriptable object instance is enabled.")]
bool m_AutoRefreshShaders = true; bool m_AutoRefreshShaders = true;
bool m_SaveAssetsPending;
#if UNITY_EDITOR #if UNITY_EDITOR
void OnEnable() void OnEnable()
{ {
@@ -92,12 +102,16 @@ public void AutoRefreshPipelineShaders()
/// </summary> /// </summary>
public void SetPipelineShaders() public void SetPipelineShaders()
{ {
// Already updated materials, waiting on the save to finish.
if (m_SaveAssetsPending)
return;
if (m_ShaderContainers == null) if (m_ShaderContainers == null)
return; return;
bool isBuiltinRenderPipeline = GraphicsSettings.currentRenderPipeline == null; bool isBuiltinRenderPipeline = GraphicsSettings.currentRenderPipeline == null;
bool isModified = false; bool isModified = false;
int modifiedCount = 0;
foreach (var info in m_ShaderContainers) foreach (var info in m_ShaderContainers)
{ {
@@ -123,6 +137,7 @@ public void SetPipelineShaders()
info.material.SetColor("_Color", originalColor); info.material.SetColor("_Color", originalColor);
MarkMaterialModified(info.material); MarkMaterialModified(info.material);
isModified = true; isModified = true;
modifiedCount++;
} }
else if (!isBuiltinRenderPipeline && srpShader != null && currentShader != srpShader) else if (!isBuiltinRenderPipeline && srpShader != null && currentShader != srpShader)
{ {
@@ -130,19 +145,34 @@ public void SetPipelineShaders()
info.material.SetColor("_BaseColor", originalColor); info.material.SetColor("_BaseColor", originalColor);
MarkMaterialModified(info.material); MarkMaterialModified(info.material);
isModified = true; isModified = true;
modifiedCount++;
} }
} }
if (isModified) if (isModified)
{ {
#if UNITY_EDITOR #if UNITY_EDITOR
// This ensures the material changes are saved immediately, Debug.Log($"Material Pipeline Handlers have updated {modifiedCount} material asset(s).", this);
// Invoking `AssetDatabase.SaveAssets` ensures the material changes are saved immediately,
// otherwise they won't be saved until the next domain reload. // otherwise they won't be saved until the next domain reload.
AssetDatabase.SaveAssets(); // Calls to AssetDatabase.SaveAssets are restricted during asset importing,
// so schedule it for the next Editor frame.
m_SaveAssetsPending = true;
EditorApplication.delayCall -= OnDelayCall;
EditorApplication.delayCall += OnDelayCall;
#endif #endif
} }
} }
#if UNITY_EDITOR
void OnDelayCall()
{
m_SaveAssetsPending = false;
AssetDatabase.SaveAssets();
}
#endif
static void MarkMaterialModified(Material material) static void MarkMaterialModified(Material material)
{ {
#if UNITY_EDITOR #if UNITY_EDITOR