public virtual void OnSelected(ref MotionSynthesizer synthesizer) { for (int i = 0; i < Debugger.frameDebugger.NumSelected; ++i) { SelectedFrameDebugProvider selected = Debugger.frameDebugger.GetSelected(i); if (selected.providerInfo.provider != null && selected.providerInfo.provider == owner.FrameDebugProvider) { Debugger.frameDebugger.TrySelect(selected.providerInfo.provider, reference.identifier); } } }
public void UpdateSelection() { for (int i = 0; i < Debugger.frameDebugger.NumSelected; ++i) { SelectedFrameDebugProvider selected = Debugger.frameDebugger.GetSelected(i); IMotionSynthesizerProvider synthesizerProvider = selected.providerInfo.provider as IMotionSynthesizerProvider; if (synthesizerProvider == null || !synthesizerProvider.IsSynthesizerInitialized) { continue; } ref MotionSynthesizer synthesizer = ref synthesizerProvider.Synthesizer.Ref; DebugMemory debugMemory = synthesizer.ReadDebugMemory; if (selected.metadata != null) { DebugIdentifier identifier = (DebugIdentifier)selected.metadata; if (debugMemory.FindObjectReference(identifier).IsValid) { break; } else { selected.metadata = null; } } for (DebugReference reference = debugMemory.FirstOrDefault; reference.IsValid; reference = debugMemory.Next(reference)) { if (!DataTypes.IsValidType(reference.identifier.typeHashCode)) { continue; } Type debugType = DataTypes.GetTypeFromHashCode(reference.identifier.typeHashCode).Item1; if (typeof(IMotionMatchingQuery).IsAssignableFrom(debugType)) { selected.metadata = reference.identifier; break; } } Debugger.frameDebugger.TrySelect(selected.providerInfo.provider, selected.metadata); }