From 4fc5ee1966d8ed6a26dd396222e8fd2f39826f60 Mon Sep 17 00:00:00 2001 From: iizzaya <linxuan_0709@icloud.com> Date: Thu, 7 Nov 2019 16:08:07 +0800 Subject: [PATCH 1/6] [Feature] Panel Raycast Filter --- Runtime/Plugins/Raycast.meta | 8 + Runtime/Plugins/Raycast/RaycastManager.cs | 82 ++ .../Plugins/Raycast/RaycastManager.cs.meta | 11 + .../Plugins/Raycast/RaycastableConatiner.cs | 118 ++ .../Raycast/RaycastableConatiner.cs.meta | 11 + Runtime/Plugins/Raycast/Sample.meta | 8 + .../Sample/Raycast Simple Testbed.unity | 1010 +++++++++++++++++ .../Sample/Raycast Simple Testbed.unity.meta | 7 + .../Raycast/Sample/Raycast Testbed.unity | 757 ++++++++++++ .../Raycast/Sample/Raycast Testbed.unity.meta | 7 + .../Sample/RaycastSimpleTestbedPanel.cs | 49 + .../Sample/RaycastSimpleTestbedPanel.cs.meta | 11 + .../Raycast/Sample/RaycastTestbedPanel.cs | 213 ++++ .../Sample/RaycastTestbedPanel.cs.meta | 11 + .../Raycast/UIWidgetsPanelRaycastFilter.cs | 46 + .../UIWidgetsPanelRaycastFilter.cs.meta | 11 + 16 files changed, 2360 insertions(+) create mode 100644 Runtime/Plugins/Raycast.meta create mode 100644 Runtime/Plugins/Raycast/RaycastManager.cs create mode 100644 Runtime/Plugins/Raycast/RaycastManager.cs.meta create mode 100644 Runtime/Plugins/Raycast/RaycastableConatiner.cs create mode 100644 Runtime/Plugins/Raycast/RaycastableConatiner.cs.meta create mode 100644 Runtime/Plugins/Raycast/Sample.meta create mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity create mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta create mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity create mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta create mode 100644 Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs create mode 100644 Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta create mode 100644 Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs create mode 100644 Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta create mode 100644 Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs create mode 100644 Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs.meta diff --git a/Runtime/Plugins/Raycast.meta b/Runtime/Plugins/Raycast.meta new file mode 100644 index 00000000..f4661cef --- /dev/null +++ b/Runtime/Plugins/Raycast.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 536a3d78629ef4c00adb8dc15d9988df +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/RaycastManager.cs b/Runtime/Plugins/Raycast/RaycastManager.cs new file mode 100644 index 00000000..7b10b4fc --- /dev/null +++ b/Runtime/Plugins/Raycast/RaycastManager.cs @@ -0,0 +1,82 @@ +using System.Collections.Generic; +using Unity.UIWidgets.ui; +using UnityEngine; +using Rect = Unity.UIWidgets.ui.Rect; + +namespace Unity.UIWidgets.plugins.raycast { + public class RaycastableRect { + public bool isDirty; + public Rect rect; + + public RaycastableRect(bool isDirty) { + this.isDirty = isDirty; + } + } + + public class RaycastManager { + static RaycastManager _instance; + + public static RaycastManager instance { + get { + if (_instance == null) { + _instance = new RaycastManager(); + } + + return _instance; + } + } + + public Dictionary<int, Dictionary<int, RaycastableRect>> hashCodeList = + new Dictionary<int, Dictionary<int, RaycastableRect>>(); + + public static void VerifyWindow(int windowHashCode) { + if (!instance.hashCodeList.ContainsKey(windowHashCode)) { + // Debug.Log($"New Window: @[{windowHashCode}] ({instance.hashCodeList.Count})"); + instance.hashCodeList.Add(windowHashCode, new Dictionary<int, RaycastableRect>()); + } + } + + public static void AddToList(int key, int windowHashCode) { + VerifyWindow(windowHashCode); + // Debug.Log($"Add To List: [{key}]@[{windowHashCode}]"); + if (!instance.hashCodeList[windowHashCode].ContainsKey(key)) { + instance.hashCodeList[windowHashCode][key] = new RaycastableRect(true); + } + } + + public static void MarkDirty(int key, int windowHashCode) { + // Debug.Log($"Mark Dirty: [{key}]@[{windowHashCode}]"); + if (instance.hashCodeList[windowHashCode].ContainsKey(key)) { + instance.hashCodeList[windowHashCode][key].isDirty = true; + } + } + + public static void UpdateSizeOffset(int key, int windowHashCode, Size size, Offset offset) { + // Debug.Log($"Update Size Offset: [{key}]@[{windowHashCode}]"); + if (instance.hashCodeList[windowHashCode].ContainsKey(key)) { + if (instance.hashCodeList[windowHashCode][key].isDirty) { + instance.hashCodeList[windowHashCode][key].rect = + Rect.fromLTWH(offset.dx, offset.dy, size.width, size.height); + instance.hashCodeList[windowHashCode][key].isDirty = false; + } + } + } + + public static void RemoveFromList(int key, int windowHashCode) { + // Debug.Log($"Remove From List: [{key}]@[{windowHashCode}]"); + if (instance.hashCodeList[windowHashCode].ContainsKey(key)) { + instance.hashCodeList[windowHashCode].Remove(key); + } + } + + public static bool CheckCastThrough(int windowHashCode, Vector2 pos) { + foreach (var item in instance.hashCodeList[windowHashCode]) { + if (item.Value.rect.contains(new Offset(pos.x, pos.y))) { + return false; + } + } + + return true; + } + } +} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/RaycastManager.cs.meta b/Runtime/Plugins/Raycast/RaycastManager.cs.meta new file mode 100644 index 00000000..74519d43 --- /dev/null +++ b/Runtime/Plugins/Raycast/RaycastManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9574f12b230354e6f87fc5fc0c98c96e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/RaycastableConatiner.cs b/Runtime/Plugins/Raycast/RaycastableConatiner.cs new file mode 100644 index 00000000..b1793467 --- /dev/null +++ b/Runtime/Plugins/Raycast/RaycastableConatiner.cs @@ -0,0 +1,118 @@ +using Unity.UIWidgets.foundation; +using Unity.UIWidgets.rendering; +using Unity.UIWidgets.ui; +using Unity.UIWidgets.widgets; + +namespace Unity.UIWidgets.plugins.raycast { + class RaycastableBox : SingleChildRenderObjectWidget { + public RaycastableBox( + Key key = null, + Widget child = null + ) : base(key, child) { + this.windowHashCode = Window.instance.GetHashCode(); + } + + readonly int windowHashCode; + + public override RenderObject createRenderObject(BuildContext context) { + return new RenderRaycastableBox( + windowHashCode: this.windowHashCode, + widget: this + ); + } + + public override Element createElement() { + return new _RaycastableBoxRenderElement(this.windowHashCode, this); + } + } + + class RenderRaycastableBox : RenderProxyBox { + public RenderRaycastableBox( + int windowHashCode, + RenderBox child = null, + RaycastableBox widget = null + ) : base(child) { + this.widget = widget; + this.windowHashCode = windowHashCode; + } + + readonly int windowHashCode; + RaycastableBox widget; + + public override void detach() { + base.detach(); + this.markNeedsPaint(); + } + + + public override void paint(PaintingContext context, Offset offset) { + // Debug.Log($"[RenderRaycastableBox] Paint {this.widget.GetHashCode()}: {this.size}@{offset}"); + RaycastManager.UpdateSizeOffset(this.widget.GetHashCode(), (int) this.windowHashCode, this.size, offset); + + base.paint(context, offset); + } + } + + class _RaycastableBoxRenderElement : SingleChildRenderObjectElement { + public _RaycastableBoxRenderElement( + int windowHashCode, + RaycastableBox widget + ) : base(widget) { + this.windowHashCode = windowHashCode; + } + + public new RaycastableBox widget { + get { return base.widget as RaycastableBox; } + } + + int widgetHashCode; + int windowHashCode; + + public override void mount(Element parent, object newSlot) { + this.widgetHashCode = this.widget.GetHashCode(); + + // Debug.Log($"[RaycastableBox] Mount: {this.initHashCode}"); + RaycastManager.AddToList(this.widgetHashCode, this.windowHashCode); + base.mount(parent, newSlot); + } + + public override void update(Widget newWidget) { + // Debug.Log($"[RaycastableBox] Update: {this.initHashCode}"); + RaycastManager.MarkDirty(this.widgetHashCode, this.windowHashCode); + base.update(newWidget); + } + + public override void unmount() { + // Debug.Log($"[RaycastableBox] Unmount: {this.initHashCode}"); + RaycastManager.RemoveFromList(this.widgetHashCode, this.windowHashCode); + base.unmount(); + } + } + + public class RaycastableContainer : StatelessWidget { + public RaycastableContainer( + Widget child = null, + Key key = null + ) : base(key) { + this.child = child; + } + + public readonly Widget child; + + public override Widget build(BuildContext context) { + Widget current = this.child; + + if (this.child == null) { + current = new LimitedBox( + maxWidth: 0.0f, + maxHeight: 0.0f, + child: new ConstrainedBox(constraints: BoxConstraints.expand()) + ); + } + + current = new RaycastableBox(child: current); + + return current; + } + } +} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/RaycastableConatiner.cs.meta b/Runtime/Plugins/Raycast/RaycastableConatiner.cs.meta new file mode 100644 index 00000000..3bb75ef0 --- /dev/null +++ b/Runtime/Plugins/Raycast/RaycastableConatiner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9af0c7d6aab134f5ba187ff34acf2377 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample.meta b/Runtime/Plugins/Raycast/Sample.meta new file mode 100644 index 00000000..28885504 --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a722cfcd498904dd68cd954f2a5a1892 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity new file mode 100644 index 00000000..e1a3c5d1 --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity @@ -0,0 +1,1010 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &238084976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 238084977} + - component: {fileID: 238084980} + - component: {fileID: 238084979} + - component: {fileID: 238084978} + m_Layer: 5 + m_Name: Panel Button With Filter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &238084977 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238084976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 354633980} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -200, y: 0.0000076294} + m_SizeDelta: {x: 300, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &238084978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238084976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} + m_Name: + m_EditorClassIdentifier: + reversed: 0 +--- !u!114 &238084979 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238084976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + devicePixelRatioOverride: 0 + hardwareAntiAliasing: 0 +--- !u!222 &238084980 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238084976} + m_CullTransparentMesh: 0 +--- !u!1 &354633976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 354633980} + - component: {fileID: 354633979} + - component: {fileID: 354633978} + - component: {fileID: 354633977} + - component: {fileID: 354633981} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &354633977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &354633978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &354633979 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 519420031} + m_PlaneDistance: 1 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &354633980 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 789225035} + - {fileID: 1371170890} + - {fileID: 238084977} + - {fileID: 1262432453} + - {fileID: 409216488} + - {fileID: 2108199658} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!222 &354633981 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_CullTransparentMesh: 0 +--- !u!1 &409216487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 409216488} + - component: {fileID: 409216491} + - component: {fileID: 409216490} + - component: {fileID: 409216489} + m_Layer: 5 + m_Name: Panel Button With Filter (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &409216488 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409216487} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 354633980} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 150, y: 50} + m_SizeDelta: {x: 300, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &409216489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409216487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} + m_Name: + m_EditorClassIdentifier: + reversed: 0 +--- !u!114 &409216490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409216487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + devicePixelRatioOverride: 0 + hardwareAntiAliasing: 0 +--- !u!222 &409216491 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 409216487} + m_CullTransparentMesh: 0 +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &789225034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 789225035} + - component: {fileID: 789225038} + - component: {fileID: 789225037} + - component: {fileID: 789225036} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &789225035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1097866538} + m_Father: {fileID: 354633980} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.000030518, y: -0.000011444} + m_SizeDelta: {x: 400, y: 600} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &789225036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 789225037} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &789225037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &789225038 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_CullTransparentMesh: 0 +--- !u!1 &1097866537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1097866538} + - component: {fileID: 1097866540} + - component: {fileID: 1097866539} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1097866538 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1097866537} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 789225035} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1097866539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1097866537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 55 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 68 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!222 &1097866540 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1097866537} + m_CullTransparentMesh: 0 +--- !u!1 &1262432452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1262432453} + - component: {fileID: 1262432456} + - component: {fileID: 1262432455} + - component: {fileID: 1262432454} + m_Layer: 5 + m_Name: Panel Button With Filter (Reversed) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1262432453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1262432452} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 354633980} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -200, y: -200} + m_SizeDelta: {x: 300, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1262432454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1262432452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} + m_Name: + m_EditorClassIdentifier: + reversed: 1 +--- !u!114 &1262432455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1262432452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + devicePixelRatioOverride: 0 + hardwareAntiAliasing: 0 +--- !u!222 &1262432456 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1262432452} + m_CullTransparentMesh: 0 +--- !u!1 &1371170889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1371170890} + - component: {fileID: 1371170891} + - component: {fileID: 1371170892} + m_Layer: 5 + m_Name: Panel Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1371170890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371170889} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 354633980} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -200, y: 200} + m_SizeDelta: {x: 300, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1371170891 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371170889} + m_CullTransparentMesh: 0 +--- !u!114 &1371170892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371170889} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + devicePixelRatioOverride: 0 + hardwareAntiAliasing: 0 +--- !u!1 &1742152755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1742152758} + - component: {fileID: 1742152757} + - component: {fileID: 1742152756} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1742152756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1742152755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1742152757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1742152755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 1742152755} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1742152758 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1742152755} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2108199657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2108199658} + - component: {fileID: 2108199661} + - component: {fileID: 2108199660} + - component: {fileID: 2108199659} + m_Layer: 5 + m_Name: Panel Button With Filter (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2108199658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108199657} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 354633980} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 227, y: 0} + m_SizeDelta: {x: 300, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2108199659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108199657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} + m_Name: + m_EditorClassIdentifier: + reversed: 0 +--- !u!114 &2108199660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108199657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + devicePixelRatioOverride: 0 + hardwareAntiAliasing: 0 +--- !u!222 &2108199661 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108199657} + m_CullTransparentMesh: 0 diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta new file mode 100644 index 00000000..b54871ec --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 83e4542c541b84d80ad625e366e30839 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity b/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity new file mode 100644 index 00000000..48aab60e --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity @@ -0,0 +1,757 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &354633976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 354633980} + - component: {fileID: 354633979} + - component: {fileID: 354633978} + - component: {fileID: 354633977} + - component: {fileID: 354633981} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &354633977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &354633978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &354633979 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 519420031} + m_PlaneDistance: 1 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &354633980 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 789225035} + - {fileID: 657653790} + - {fileID: 1942439624} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!222 &354633981 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 354633976} + m_CullTransparentMesh: 0 +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &657653789 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 657653790} + - component: {fileID: 657653792} + - component: {fileID: 657653791} + - component: {fileID: 657653793} + m_Layer: 5 + m_Name: Raycast Testbed Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &657653790 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 657653789} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 354633980} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -203, y: 81.79999} + m_SizeDelta: {x: 1290.3, y: 471.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &657653791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 657653789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b02d547623984986a44973c4ba2bca0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + devicePixelRatioOverride: 0 + hardwareAntiAliasing: 0 +--- !u!222 &657653792 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 657653789} + m_CullTransparentMesh: 0 +--- !u!114 &657653793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 657653789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} + m_Name: + m_EditorClassIdentifier: + reversed: 0 +--- !u!1 &789225034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 789225035} + - component: {fileID: 789225038} + - component: {fileID: 789225037} + - component: {fileID: 789225036} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &789225035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 1} + m_Children: + - {fileID: 812945430} + m_Father: {fileID: 354633980} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.000030518, y: -0.000011444} + m_SizeDelta: {x: 436.8, y: 81.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &789225036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 789225037} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &789225037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &789225038 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 789225034} + m_CullTransparentMesh: 0 +--- !u!1 &812945429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 812945430} + - component: {fileID: 812945432} + - component: {fileID: 812945431} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &812945430 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 812945429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 789225035} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &812945431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 812945429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!222 &812945432 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 812945429} + m_CullTransparentMesh: 0 +--- !u!1 &1742152755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1742152758} + - component: {fileID: 1742152757} + - component: {fileID: 1742152756} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1742152756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1742152755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1742152757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1742152755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 1742152755} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1742152758 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1742152755} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1942439623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1942439624} + - component: {fileID: 1942439627} + - component: {fileID: 1942439626} + - component: {fileID: 1942439625} + m_Layer: 5 + m_Name: Raycast Testbed Panel (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1942439624 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942439623} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 354633980} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 180.85, y: 42} + m_SizeDelta: {x: 1290.3, y: 471.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1942439625 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942439623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} + m_Name: + m_EditorClassIdentifier: + reversed: 0 +--- !u!114 &1942439626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942439623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b02d547623984986a44973c4ba2bca0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + devicePixelRatioOverride: 0 + hardwareAntiAliasing: 0 +--- !u!222 &1942439627 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1942439623} + m_CullTransparentMesh: 0 diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta b/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta new file mode 100644 index 00000000..c04a9724 --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1bac3be89f2644f6ad3a6ed1ff00617 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs new file mode 100644 index 00000000..2250678f --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs @@ -0,0 +1,49 @@ +using Unity.UIWidgets.engine; +using Unity.UIWidgets.foundation; +using Unity.UIWidgets.material; +using Unity.UIWidgets.plugins.raycast; +using Unity.UIWidgets.ui; +using Unity.UIWidgets.widgets; +using UnityEngine; +using Color = Unity.UIWidgets.ui.Color; +using Material = Unity.UIWidgets.material.Material; + +namespace Unity.UIWidgets.Sample { + public class RaycastSimpleTestbedPanel : UIWidgetsPanel { + protected override void OnEnable() { + FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); + base.OnEnable(); + } + + protected override Widget createWidget() { + return new MaterialApp( + home: new RaycastSimpleTestbedWidget() + ); + } + } + + public class RaycastSimpleTestbedWidget : StatefulWidget { + public RaycastSimpleTestbedWidget(Key key = null) : base(key) { } + + public override State createState() { + return new RaycastSimpleTestbedWidgetState(); + } + } + + public class RaycastSimpleTestbedWidgetState : State<RaycastSimpleTestbedWidget> { + public override Widget build(BuildContext context) { + return new Material( + color: new Color(0x44FFFF00), + child: new Center( + child: new RaycastableContainer( + new MaterialButton( + child: new Text("Material Button"), + onPressed: () => { }, + color: Colors.lightBlue + ) + ) + ) + ); + } + } +} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta new file mode 100644 index 00000000..131091ab --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4fc8b0d34b82c4c63a41e0cde280075a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs new file mode 100644 index 00000000..1c484976 --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs @@ -0,0 +1,213 @@ +using System.Collections.Generic; +using Unity.UIWidgets.engine; +using Unity.UIWidgets.foundation; +using Unity.UIWidgets.material; +using Unity.UIWidgets.painting; +using Unity.UIWidgets.plugins.raycast; +using Unity.UIWidgets.rendering; +using Unity.UIWidgets.ui; +using Unity.UIWidgets.widgets; +using UnityEngine; +using Color = Unity.UIWidgets.ui.Color; +using Material = Unity.UIWidgets.material.Material; +using TextStyle = Unity.UIWidgets.painting.TextStyle; + +namespace Unity.UIWidgets.Sample { + public class RaycastTestbedPanel : UIWidgetsPanel { + protected override void OnEnable() { + FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); + base.OnEnable(); + } + + protected override Widget createWidget() { + return new MaterialApp( + home: new RaycastTestbedWidget() + ); + } + } + + public class RaycastTestbedWidget : StatefulWidget { + public RaycastTestbedWidget(Key key = null) : base(key) { } + + public override State createState() { + return new RaycastTestbedWidgetState(); + } + } + + public class RaycastTestbedWidgetState : State<RaycastTestbedWidget> { + public bool enableState = false; + public int switchState = 0; + public int switchPosState = 0; + public bool enableState2 = false; + public int switchState2 = 0; + public int switchPosState2 = 2; + + public override Widget build(BuildContext context) { + return new Material( + color: Colors.transparent, + child: new Center( + child: new Column( + mainAxisAlignment: MainAxisAlignment.center, + children: new List<Widget> { + new Row( + mainAxisAlignment: MainAxisAlignment.center, + children: new List<Widget> { + new RaycastableContainer(child: new MaterialButton( + child: new Text($"Enable State: {this.enableState.ToString()}"), + onPressed: () => { + this.setState( + () => { this.enableState = !this.enableState; }); + }, + color: Colors.lightBlue + ) + ), + new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), + new RaycastableContainer(child: new MaterialButton( + child: new Text($"Switch State: {this.switchState.ToString()}"), + onPressed: () => { + this.setState( + () => { this.switchState = (this.switchState + 1) % 3; }); + }, + color: Colors.lightBlue + )), + new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), + new RaycastableContainer(child: new MaterialButton( + child: new Text($"Switch Pos State: {this.switchPosState.ToString()}"), + onPressed: () => { + this.setState( + () => { this.switchPosState = (this.switchPosState + 1) % 2; }); + }, + color: Colors.lightBlue + )) + } + ), + new Padding(padding: EdgeInsets.symmetric(5f)), + new Row( + mainAxisAlignment: MainAxisAlignment.center, + children: new List<Widget> { + new RaycastableContainer(child: new MaterialButton( + child: new Text($"Enable State: {this.enableState2.ToString()}"), + onPressed: () => { + this.setState( + () => { this.enableState2 = !this.enableState2; }); + }, + color: Colors.lightBlue + )), + new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), + new RaycastableContainer(child: new MaterialButton( + child: new Text($"Switch State: {this.switchState2.ToString()}"), + onPressed: () => { + this.setState( + () => { this.switchState2 = (this.switchState2 + 1) % 3; }); + }, + color: Colors.lightBlue + )), + new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), + new RaycastableContainer(child: new MaterialButton( + child: new Text($"Switch Pos State: {this.switchPosState2.ToString()}"), + onPressed: () => { + this.setState( + () => { this.switchPosState2 = (this.switchPosState2) % 2 + 1; }); + }, + color: Colors.lightBlue + )) + } + ), + new Padding(padding: EdgeInsets.symmetric(5f)), + new Stack( + children: new List<Widget> { + new Row( + mainAxisAlignment: MainAxisAlignment.center, + children: new List<Widget> { + new Container( + padding: EdgeInsets.only(top: 25f * this.switchPosState, + bottom: 25f * (3 - this.switchPosState)), + child: this.enableState + ? (Widget) new RaycastableContainer( + new Container( + child: new Text( + data: this.switchState == 0 + ? "特殊字符串" + : this.switchState == 1 + ? "特殊字符串串" + : "特殊字符串串串", + style: new TextStyle( + fontSize: 48, + fontWeight: FontWeight.bold, + decoration: TextDecoration.none, + color: Colors.red + ) + ), + decoration: new BoxDecoration( + color: new Color(0x44FFFF00) + ) + ) + ) + : new Text( + data: this.switchState == 0 + ? "普通字符串" + : this.switchState == 1 + ? "普通字符串串" + : "普通字符串串串", + style: new TextStyle( + fontSize: 48, + fontWeight: FontWeight.bold, + decoration: TextDecoration.none, + color: Colors.red + ) + ) + ) + } + ), + new Row( + mainAxisAlignment: MainAxisAlignment.center, + children: new List<Widget> { + new Container( + padding: EdgeInsets.only(top: 25f * this.switchPosState2, + bottom: 25f * (3 - this.switchPosState2)), + child: this.enableState2 + ? (Widget) new RaycastableContainer( + new Container( + child: new Text( + data: this.switchState2 == 0 + ? "特殊字符串" + : this.switchState2 == 1 + ? "特殊字符串串" + : "特殊字符串串串", + style: new TextStyle( + fontSize: 48, + fontWeight: FontWeight.bold, + decoration: TextDecoration.none, + color: Colors.red + ) + ), + decoration: new BoxDecoration( + color: new Color(0x44FFFF00) + ) + ) + ) + : (Widget) new Text( + data: this.switchState2 == 0 + ? "普通字符串" + : this.switchState2 == 1 + ? "普通字符串串" + : "普通字符串串串", + style: new TextStyle( + fontSize: 48, + fontWeight: FontWeight.bold, + decoration: TextDecoration.none, + color: Colors.red + ) + ) + ) + } + ) + } + ) + } + ) + ) + ); + } + } +} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta new file mode 100644 index 00000000..3d3ced9d --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b02d547623984986a44973c4ba2bca0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs b/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs new file mode 100644 index 00000000..f7c1a774 --- /dev/null +++ b/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs @@ -0,0 +1,46 @@ +using Unity.UIWidgets.engine; +using UnityEngine; + +namespace Unity.UIWidgets.plugins.raycast { + + [DisallowMultipleComponent] + [RequireComponent(typeof(UIWidgetsPanel))] + [DefaultExecutionOrder(1)] + public class UIWidgetsPanelRaycastFilter : MonoBehaviour, ICanvasRaycastFilter { + public bool reversed; + + UIWidgetsPanel panel; + int windowHashCode; + + void OnEnable() { + this.panel = this.GetComponent<UIWidgetsPanel>(); + this.windowHashCode = this.panel.window.GetHashCode(); + RaycastManager.VerifyWindow(this.windowHashCode); + } + + public bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) { + if (!this.enabled) { + return true; + } + + Vector2 local; + RectTransformUtility.ScreenPointToLocalPointInRectangle(this.panel.rectTransform, screenPoint, eventCamera, + out local); + + Rect rect = this.panel.rectTransform.rect; + + // Convert top left corner as reference origin point. + local.x += this.panel.rectTransform.pivot.x * rect.width; + local.y -= this.panel.rectTransform.pivot.y * rect.height; + local.x = local.x / this.panel.devicePixelRatio; + local.y = -local.y / this.panel.devicePixelRatio; + + if (this.reversed) { + return RaycastManager.CheckCastThrough(this.windowHashCode, local); + } + else { + return !RaycastManager.CheckCastThrough(this.windowHashCode, local); + } + } + } +} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs.meta b/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs.meta new file mode 100644 index 00000000..59aa56ee --- /dev/null +++ b/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2455841904ff14258bae1b28c1363dc0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 1334379e49d1136ebf5a7885160206d0cac2e8c9 Mon Sep 17 00:00:00 2001 From: iizzaya <linxuan_0709@icloud.com> Date: Thu, 7 Nov 2019 16:13:56 +0800 Subject: [PATCH 2/6] [Fix] Wrong Spelling Name --- .../Raycast/{RaycastableConatiner.cs => RaycastableContainer.cs} | 0 ...{RaycastableConatiner.cs.meta => RaycastableContainer.cs.meta} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename Runtime/Plugins/Raycast/{RaycastableConatiner.cs => RaycastableContainer.cs} (100%) rename Runtime/Plugins/Raycast/{RaycastableConatiner.cs.meta => RaycastableContainer.cs.meta} (100%) diff --git a/Runtime/Plugins/Raycast/RaycastableConatiner.cs b/Runtime/Plugins/Raycast/RaycastableContainer.cs similarity index 100% rename from Runtime/Plugins/Raycast/RaycastableConatiner.cs rename to Runtime/Plugins/Raycast/RaycastableContainer.cs diff --git a/Runtime/Plugins/Raycast/RaycastableConatiner.cs.meta b/Runtime/Plugins/Raycast/RaycastableContainer.cs.meta similarity index 100% rename from Runtime/Plugins/Raycast/RaycastableConatiner.cs.meta rename to Runtime/Plugins/Raycast/RaycastableContainer.cs.meta From d1ebb51a3669a0600573e14dd7f07bf3405e47d2 Mon Sep 17 00:00:00 2001 From: iizzaya <linxuan_0709@icloud.com> Date: Fri, 8 Nov 2019 19:36:41 +0800 Subject: [PATCH 3/6] [Raycast] Update --- Runtime/Plugins/Raycast/RaycastManager.cs | 106 ++++++++++++------ .../Plugins/Raycast/RaycastableContainer.cs | 19 +--- 2 files changed, 79 insertions(+), 46 deletions(-) diff --git a/Runtime/Plugins/Raycast/RaycastManager.cs b/Runtime/Plugins/Raycast/RaycastManager.cs index 7b10b4fc..af102ad6 100644 --- a/Runtime/Plugins/Raycast/RaycastManager.cs +++ b/Runtime/Plugins/Raycast/RaycastManager.cs @@ -1,15 +1,41 @@ using System.Collections.Generic; +using Unity.UIWidgets.foundation; using Unity.UIWidgets.ui; using UnityEngine; -using Rect = Unity.UIWidgets.ui.Rect; namespace Unity.UIWidgets.plugins.raycast { public class RaycastableRect { - public bool isDirty; - public Rect rect; + bool _isDirty = true; - public RaycastableRect(bool isDirty) { - this.isDirty = isDirty; + public bool isDirty { + get { return this._isDirty; } + } + + public float left; + public float right; + public float top; + public float bottom; + + public void MarkDirty() { + this._isDirty = true; + } + + public void UnmarkDirty() { + this._isDirty = false; + } + + public void UpdateRect(float left, float top, float width, float height) { + this.left = left; + this.right = left + width; + this.top = top; + this.bottom = top + height; + } + + public bool CheckInRect(Vector2 pos) { + return pos.x >= this.left && + pos.x < this.right && + pos.y >= this.top && + pos.y < this.bottom; } } @@ -26,52 +52,66 @@ public static RaycastManager instance { } } - public Dictionary<int, Dictionary<int, RaycastableRect>> hashCodeList = + public readonly Dictionary<int, Dictionary<int, RaycastableRect>> raycastHandlerMap = new Dictionary<int, Dictionary<int, RaycastableRect>>(); public static void VerifyWindow(int windowHashCode) { - if (!instance.hashCodeList.ContainsKey(windowHashCode)) { - // Debug.Log($"New Window: @[{windowHashCode}] ({instance.hashCodeList.Count})"); - instance.hashCodeList.Add(windowHashCode, new Dictionary<int, RaycastableRect>()); + if (!instance.raycastHandlerMap.ContainsKey(windowHashCode)) { + Debug.Log($"New Window: @[{windowHashCode}] ({instance.raycastHandlerMap.Count})"); + instance.raycastHandlerMap.Add(windowHashCode, new Dictionary<int, RaycastableRect>()); } } - public static void AddToList(int key, int windowHashCode) { + public static void AddToList(int widgetHashCode, int windowHashCode) { VerifyWindow(windowHashCode); - // Debug.Log($"Add To List: [{key}]@[{windowHashCode}]"); - if (!instance.hashCodeList[windowHashCode].ContainsKey(key)) { - instance.hashCodeList[windowHashCode][key] = new RaycastableRect(true); + Debug.Log($"Add To List: [{widgetHashCode}]@[{windowHashCode}]"); + if (!instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode)) { + instance.raycastHandlerMap[windowHashCode][widgetHashCode] = new RaycastableRect(); + } } - public static void MarkDirty(int key, int windowHashCode) { - // Debug.Log($"Mark Dirty: [{key}]@[{windowHashCode}]"); - if (instance.hashCodeList[windowHashCode].ContainsKey(key)) { - instance.hashCodeList[windowHashCode][key].isDirty = true; - } + public static void MarkDirty(int widgetHashCode, int windowHashCode) { + Debug.Log($"Mark Dirty: [{widgetHashCode}]@[{windowHashCode}]"); + D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => + $"Raycast Handler Map doesn't contain Window {windowHashCode}"); + D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => + $"Raycast Handler Map doesn't contain Widget {widgetHashCode} at Window {windowHashCode}"); + + instance.raycastHandlerMap[windowHashCode][widgetHashCode].MarkDirty(); } - public static void UpdateSizeOffset(int key, int windowHashCode, Size size, Offset offset) { - // Debug.Log($"Update Size Offset: [{key}]@[{windowHashCode}]"); - if (instance.hashCodeList[windowHashCode].ContainsKey(key)) { - if (instance.hashCodeList[windowHashCode][key].isDirty) { - instance.hashCodeList[windowHashCode][key].rect = - Rect.fromLTWH(offset.dx, offset.dy, size.width, size.height); - instance.hashCodeList[windowHashCode][key].isDirty = false; - } + public static void UpdateSizeOffset(int widgetHashCode, int windowHashCode, Size size, Offset offset) { + + D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => + $"Raycast Handler Map doesn't contain Window {windowHashCode}"); + D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => + $"Raycast Handler Map doesn't contain Widget {widgetHashCode} at Window {windowHashCode}"); + + if (instance.raycastHandlerMap[windowHashCode][widgetHashCode].isDirty) { + Debug.Log($"Update Size Offset: [{widgetHashCode}]@[{windowHashCode}]"); + instance.raycastHandlerMap[windowHashCode][widgetHashCode] + .UpdateRect(offset.dx, offset.dy, size.width, size.height); + instance.raycastHandlerMap[windowHashCode][widgetHashCode].UnmarkDirty(); } } - public static void RemoveFromList(int key, int windowHashCode) { - // Debug.Log($"Remove From List: [{key}]@[{windowHashCode}]"); - if (instance.hashCodeList[windowHashCode].ContainsKey(key)) { - instance.hashCodeList[windowHashCode].Remove(key); - } + public static void RemoveFromList(int widgetHashCode, int windowHashCode) { + Debug.Log($"Remove From List: [{widgetHashCode}]@[{windowHashCode}]"); + D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => + $"Raycast Handler Map doesn't contain Window {windowHashCode}"); + D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => + $"Raycast Handler Map doesn't contain Widget {widgetHashCode} at Window {windowHashCode}"); + + instance.raycastHandlerMap[windowHashCode].Remove(widgetHashCode); } public static bool CheckCastThrough(int windowHashCode, Vector2 pos) { - foreach (var item in instance.hashCodeList[windowHashCode]) { - if (item.Value.rect.contains(new Offset(pos.x, pos.y))) { + D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => + $"Raycast Handler Map doesn't contain Window {windowHashCode}"); + + foreach (var item in instance.raycastHandlerMap[windowHashCode]) { + if (item.Value.CheckInRect(pos)) { return false; } } diff --git a/Runtime/Plugins/Raycast/RaycastableContainer.cs b/Runtime/Plugins/Raycast/RaycastableContainer.cs index b1793467..bd73a565 100644 --- a/Runtime/Plugins/Raycast/RaycastableContainer.cs +++ b/Runtime/Plugins/Raycast/RaycastableContainer.cs @@ -22,32 +22,25 @@ public override RenderObject createRenderObject(BuildContext context) { } public override Element createElement() { - return new _RaycastableBoxRenderElement(this.windowHashCode, this); + return new _RaycastableBoxRenderElement(windowHashCode: this.windowHashCode, widget: this); } } class RenderRaycastableBox : RenderProxyBox { public RenderRaycastableBox( int windowHashCode, - RenderBox child = null, - RaycastableBox widget = null - ) : base(child) { - this.widget = widget; + RaycastableBox widget + ) { + this.widgetHashCode = widget.GetHashCode(); this.windowHashCode = windowHashCode; } + readonly int widgetHashCode; readonly int windowHashCode; - RaycastableBox widget; - - public override void detach() { - base.detach(); - this.markNeedsPaint(); - } - public override void paint(PaintingContext context, Offset offset) { // Debug.Log($"[RenderRaycastableBox] Paint {this.widget.GetHashCode()}: {this.size}@{offset}"); - RaycastManager.UpdateSizeOffset(this.widget.GetHashCode(), (int) this.windowHashCode, this.size, offset); + RaycastManager.UpdateSizeOffset(this.widgetHashCode, this.windowHashCode, this.size, offset); base.paint(context, offset); } From dd7812025cf44bee7b46d8545219689f83ba80c0 Mon Sep 17 00:00:00 2001 From: iizzaya <linxuan_0709@icloud.com> Date: Sat, 9 Nov 2019 10:27:38 +0800 Subject: [PATCH 4/6] [Raycast] Add UIWidgetsRaycastablePanel --- Runtime/Plugins/Raycast/RaycastManager.cs | 33 ++-- .../Sample/DefaultSimpleTestbedPanel.cs | 49 ++++++ .../DefaultSimpleTestbedPanel.cs.meta} | 2 +- .../Sample/Raycast Simple Testbed.unity | 145 +----------------- .../Sample/RaycastSimpleTestbedPanel.cs | 3 +- .../Raycast/Sample/RaycastTestbedPanel.cs | 2 +- .../Raycast/UIWidgetsPanelRaycastFilter.cs | 46 ------ .../Raycast/UIWidgetsRaycastablePanel.cs | 40 +++++ .../Raycast/UIWidgetsRaycastablePanel.cs.meta | 11 ++ Runtime/engine/UIWidgetsPanel.cs | 12 +- 10 files changed, 139 insertions(+), 204 deletions(-) create mode 100644 Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs rename Runtime/Plugins/Raycast/{UIWidgetsPanelRaycastFilter.cs.meta => Sample/DefaultSimpleTestbedPanel.cs.meta} (83%) delete mode 100644 Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs create mode 100644 Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs create mode 100644 Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs.meta diff --git a/Runtime/Plugins/Raycast/RaycastManager.cs b/Runtime/Plugins/Raycast/RaycastManager.cs index af102ad6..6c4e1b99 100644 --- a/Runtime/Plugins/Raycast/RaycastManager.cs +++ b/Runtime/Plugins/Raycast/RaycastManager.cs @@ -55,24 +55,34 @@ public static RaycastManager instance { public readonly Dictionary<int, Dictionary<int, RaycastableRect>> raycastHandlerMap = new Dictionary<int, Dictionary<int, RaycastableRect>>(); - public static void VerifyWindow(int windowHashCode) { + public static void NewWindow(int windowHashCode) { if (!instance.raycastHandlerMap.ContainsKey(windowHashCode)) { - Debug.Log($"New Window: @[{windowHashCode}] ({instance.raycastHandlerMap.Count})"); + // Debug.Log($"New Window: @[{windowHashCode}] ({instance.raycastHandlerMap.Count})"); instance.raycastHandlerMap.Add(windowHashCode, new Dictionary<int, RaycastableRect>()); } } - public static void AddToList(int widgetHashCode, int windowHashCode) { - VerifyWindow(windowHashCode); - Debug.Log($"Add To List: [{widgetHashCode}]@[{windowHashCode}]"); - if (!instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode)) { - instance.raycastHandlerMap[windowHashCode][widgetHashCode] = new RaycastableRect(); - + public static void DisposeWindow(int windowHashCode) { + if (instance.raycastHandlerMap.ContainsKey(windowHashCode)) { + // Debug.Log($"Dispose Window: @[{windowHashCode}]"); + instance.raycastHandlerMap.Remove(windowHashCode); } } + public static void AddToList(int widgetHashCode, int windowHashCode) { + // Debug.Log($"Add To List: [{widgetHashCode}]@[{windowHashCode}]"); + D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => + $"Raycast Handler Map doesn't contain Window {windowHashCode}, " + + $"Make sure using UIWidgetsRaycastablePanel instead of UIWidgetsPanel " + + $"while using RaycastableContainer."); + D.assert(!instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => + $"Raycast Handler Map already contains Widget {widgetHashCode} at Window {windowHashCode}"); + + instance.raycastHandlerMap[windowHashCode][widgetHashCode] = new RaycastableRect(); + } + public static void MarkDirty(int widgetHashCode, int windowHashCode) { - Debug.Log($"Mark Dirty: [{widgetHashCode}]@[{windowHashCode}]"); + // Debug.Log($"Mark Dirty: [{widgetHashCode}]@[{windowHashCode}]"); D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => $"Raycast Handler Map doesn't contain Window {windowHashCode}"); D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => @@ -82,14 +92,13 @@ public static void MarkDirty(int widgetHashCode, int windowHashCode) { } public static void UpdateSizeOffset(int widgetHashCode, int windowHashCode, Size size, Offset offset) { - D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => $"Raycast Handler Map doesn't contain Window {windowHashCode}"); D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => $"Raycast Handler Map doesn't contain Widget {widgetHashCode} at Window {windowHashCode}"); if (instance.raycastHandlerMap[windowHashCode][widgetHashCode].isDirty) { - Debug.Log($"Update Size Offset: [{widgetHashCode}]@[{windowHashCode}]"); + // Debug.Log($"Update Size Offset: [{widgetHashCode}]@[{windowHashCode}]"); instance.raycastHandlerMap[windowHashCode][widgetHashCode] .UpdateRect(offset.dx, offset.dy, size.width, size.height); instance.raycastHandlerMap[windowHashCode][widgetHashCode].UnmarkDirty(); @@ -97,7 +106,7 @@ public static void UpdateSizeOffset(int widgetHashCode, int windowHashCode, Size } public static void RemoveFromList(int widgetHashCode, int windowHashCode) { - Debug.Log($"Remove From List: [{widgetHashCode}]@[{windowHashCode}]"); + // Debug.Log($"Remove From List: [{widgetHashCode}]@[{windowHashCode}]"); D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => $"Raycast Handler Map doesn't contain Window {windowHashCode}"); D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => diff --git a/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs new file mode 100644 index 00000000..e4975995 --- /dev/null +++ b/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs @@ -0,0 +1,49 @@ +using Unity.UIWidgets.engine; +using Unity.UIWidgets.foundation; +using Unity.UIWidgets.material; +using Unity.UIWidgets.plugins.raycast; +using Unity.UIWidgets.ui; +using Unity.UIWidgets.widgets; +using UnityEngine; +using Color = Unity.UIWidgets.ui.Color; +using Material = Unity.UIWidgets.material.Material; + +namespace Unity.UIWidgets.Sample { + public class DefaultSimpleTestbedPanel : UIWidgetsPanel { + protected override void OnEnable() { + FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); + base.OnEnable(); + } + + protected override Widget createWidget() { + return new MaterialApp( + home: new DefaultSimpleTestbedWidget() + ); + } + } + + public class DefaultSimpleTestbedWidget : StatefulWidget { + public DefaultSimpleTestbedWidget(Key key = null) : base(key) { } + + public override State createState() { + return new DefaultSimpleTestbedWidgetState(); + } + } + + public class DefaultSimpleTestbedWidgetState : State<DefaultSimpleTestbedWidget> { + public override Widget build(BuildContext context) { + return new Material( + color: new Color(0x44FFFF00), + child: new Center( + child: new Container( + child: new MaterialButton( + child: new Text("Material Button"), + onPressed: () => { }, + color: Colors.lightBlue + ) + ) + ) + ); + } + } +} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs.meta b/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs.meta similarity index 83% rename from Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs.meta rename to Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs.meta index 59aa56ee..6d0e0746 100644 --- a/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs.meta +++ b/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2455841904ff14258bae1b28c1363dc0 +guid: 15ddf18357c864b1b822b471672fd391 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity index e1a3c5d1..1c2f43eb 100644 --- a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity +++ b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity @@ -130,7 +130,6 @@ GameObject: m_Component: - component: {fileID: 238084977} - component: {fileID: 238084980} - - component: {fileID: 238084979} - component: {fileID: 238084978} m_Layer: 5 m_Name: Panel Button With Filter @@ -155,23 +154,10 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -200, y: 0.0000076294} + m_AnchoredPosition: {x: 0, y: 0.0000076294} m_SizeDelta: {x: 300, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &238084978 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 238084976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} - m_Name: - m_EditorClassIdentifier: - reversed: 0 ---- !u!114 &238084979 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -302,7 +288,6 @@ RectTransform: - {fileID: 789225035} - {fileID: 1371170890} - {fileID: 238084977} - - {fileID: 1262432453} - {fileID: 409216488} - {fileID: 2108199658} m_Father: {fileID: 0} @@ -332,7 +317,6 @@ GameObject: - component: {fileID: 409216488} - component: {fileID: 409216491} - component: {fileID: 409216490} - - component: {fileID: 409216489} m_Layer: 5 m_Name: Panel Button With Filter (1) m_TagString: Untagged @@ -352,26 +336,13 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 354633980} - m_RootOrder: 4 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 150, y: 50} + m_AnchoredPosition: {x: 0, y: -200} m_SizeDelta: {x: 300, y: 150} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &409216489 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 409216487} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} - m_Name: - m_EditorClassIdentifier: - reversed: 0 --- !u!114 &409216490 MonoBehaviour: m_ObjectHideFlags: 0 @@ -692,94 +663,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1097866537} m_CullTransparentMesh: 0 ---- !u!1 &1262432452 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1262432453} - - component: {fileID: 1262432456} - - component: {fileID: 1262432455} - - component: {fileID: 1262432454} - m_Layer: 5 - m_Name: Panel Button With Filter (Reversed) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1262432453 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262432452} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 354633980} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -200, y: -200} - m_SizeDelta: {x: 300, y: 150} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1262432454 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262432452} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} - m_Name: - m_EditorClassIdentifier: - reversed: 1 ---- !u!114 &1262432455 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262432452} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - devicePixelRatioOverride: 0 - hardwareAntiAliasing: 0 ---- !u!222 &1262432456 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262432452} - m_CullTransparentMesh: 0 --- !u!1 &1371170889 GameObject: m_ObjectHideFlags: 0 @@ -814,7 +697,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -200, y: 200} + m_AnchoredPosition: {x: 0, y: 200} m_SizeDelta: {x: 300, y: 150} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1371170891 @@ -834,7 +717,7 @@ MonoBehaviour: m_GameObject: {fileID: 1371170889} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} + m_Script: {fileID: 11500000, guid: 15ddf18357c864b1b822b471672fd391, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} @@ -931,7 +814,6 @@ GameObject: - component: {fileID: 2108199658} - component: {fileID: 2108199661} - component: {fileID: 2108199660} - - component: {fileID: 2108199659} m_Layer: 5 m_Name: Panel Button With Filter (2) m_TagString: Untagged @@ -951,26 +833,13 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 354633980} - m_RootOrder: 5 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 227, y: 0} + m_AnchoredPosition: {x: 50, y: -240} m_SizeDelta: {x: 300, y: 150} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2108199659 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2108199657} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} - m_Name: - m_EditorClassIdentifier: - reversed: 0 --- !u!114 &2108199660 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs index 2250678f..3ad1877b 100644 --- a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs +++ b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs @@ -1,4 +1,3 @@ -using Unity.UIWidgets.engine; using Unity.UIWidgets.foundation; using Unity.UIWidgets.material; using Unity.UIWidgets.plugins.raycast; @@ -9,7 +8,7 @@ using Material = Unity.UIWidgets.material.Material; namespace Unity.UIWidgets.Sample { - public class RaycastSimpleTestbedPanel : UIWidgetsPanel { + public class RaycastSimpleTestbedPanel : UIWidgetsRaycastablePanel { protected override void OnEnable() { FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); base.OnEnable(); diff --git a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs index 1c484976..779406ce 100644 --- a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs +++ b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs @@ -13,7 +13,7 @@ using TextStyle = Unity.UIWidgets.painting.TextStyle; namespace Unity.UIWidgets.Sample { - public class RaycastTestbedPanel : UIWidgetsPanel { + public class RaycastTestbedPanel : UIWidgetsRaycastablePanel { protected override void OnEnable() { FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); base.OnEnable(); diff --git a/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs b/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs deleted file mode 100644 index f7c1a774..00000000 --- a/Runtime/Plugins/Raycast/UIWidgetsPanelRaycastFilter.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Unity.UIWidgets.engine; -using UnityEngine; - -namespace Unity.UIWidgets.plugins.raycast { - - [DisallowMultipleComponent] - [RequireComponent(typeof(UIWidgetsPanel))] - [DefaultExecutionOrder(1)] - public class UIWidgetsPanelRaycastFilter : MonoBehaviour, ICanvasRaycastFilter { - public bool reversed; - - UIWidgetsPanel panel; - int windowHashCode; - - void OnEnable() { - this.panel = this.GetComponent<UIWidgetsPanel>(); - this.windowHashCode = this.panel.window.GetHashCode(); - RaycastManager.VerifyWindow(this.windowHashCode); - } - - public bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) { - if (!this.enabled) { - return true; - } - - Vector2 local; - RectTransformUtility.ScreenPointToLocalPointInRectangle(this.panel.rectTransform, screenPoint, eventCamera, - out local); - - Rect rect = this.panel.rectTransform.rect; - - // Convert top left corner as reference origin point. - local.x += this.panel.rectTransform.pivot.x * rect.width; - local.y -= this.panel.rectTransform.pivot.y * rect.height; - local.x = local.x / this.panel.devicePixelRatio; - local.y = -local.y / this.panel.devicePixelRatio; - - if (this.reversed) { - return RaycastManager.CheckCastThrough(this.windowHashCode, local); - } - else { - return !RaycastManager.CheckCastThrough(this.windowHashCode, local); - } - } - } -} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs b/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs new file mode 100644 index 00000000..e2961f36 --- /dev/null +++ b/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs @@ -0,0 +1,40 @@ +using Unity.UIWidgets.engine; +using UnityEngine; + +namespace Unity.UIWidgets.plugins.raycast { + [RequireComponent(typeof(RectTransform))] + public class UIWidgetsRaycastablePanel : UIWidgetsPanel, ICanvasRaycastFilter { + int windowHashCode; + + protected override void InitWindowAdapter() { + base.InitWindowAdapter(); + this.windowHashCode = this.window.GetHashCode(); + RaycastManager.NewWindow(this.windowHashCode); + } + + protected override void OnDisable() { + base.OnDisable(); + RaycastManager.DisposeWindow(this.windowHashCode); + } + + public bool IsRaycastLocationValid(Vector2 screenPoint, Camera eventCamera) { + if (!this.enabled) { + return true; + } + + Vector2 local; + RectTransformUtility.ScreenPointToLocalPointInRectangle(this.rectTransform, screenPoint, eventCamera, + out local); + + Rect rect = this.rectTransform.rect; + + // Convert top left corner as reference origin point. + local.x += this.rectTransform.pivot.x * rect.width; + local.y -= this.rectTransform.pivot.y * rect.height; + local.x = local.x / this.devicePixelRatio; + local.y = -local.y / this.devicePixelRatio; + + return !RaycastManager.CheckCastThrough(this.windowHashCode, local); + } + } +} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs.meta b/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs.meta new file mode 100644 index 00000000..f5ff1f78 --- /dev/null +++ b/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e5265d12f7193408b90993bdf987f058 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/engine/UIWidgetsPanel.cs b/Runtime/engine/UIWidgetsPanel.cs index a72ffabf..c886fea3 100644 --- a/Runtime/engine/UIWidgetsPanel.cs +++ b/Runtime/engine/UIWidgetsPanel.cs @@ -138,6 +138,13 @@ void _handleViewMetricsChanged(string method, List<JSONNode> args) { this._displayMetrics.onViewMetricsChanged(); } + protected virtual void InitWindowAdapter() { + D.assert(this._windowAdapter == null); + this._windowAdapter = new UIWidgetWindowAdapter(this); + + this._windowAdapter.OnEnable(); + } + protected override void OnEnable() { base.OnEnable(); @@ -153,10 +160,7 @@ protected override void OnEnable() { _repaintEvent = new Event {type = EventType.Repaint}; } - D.assert(this._windowAdapter == null); - this._windowAdapter = new UIWidgetWindowAdapter(this); - - this._windowAdapter.OnEnable(); + this.InitWindowAdapter(); Widget root; using (this._windowAdapter.getScope()) { From 368dc8f9c2df7862ce608ed23b729275c28d06d2 Mon Sep 17 00:00:00 2001 From: iizzaya <linxuan_0709@icloud.com> Date: Sat, 9 Nov 2019 10:29:23 +0800 Subject: [PATCH 5/6] [Raycast] Remove Debug.Log --- Runtime/Plugins/Raycast/RaycastManager.cs | 6 ------ Runtime/Plugins/Raycast/RaycastableContainer.cs | 5 ----- 2 files changed, 11 deletions(-) diff --git a/Runtime/Plugins/Raycast/RaycastManager.cs b/Runtime/Plugins/Raycast/RaycastManager.cs index 6c4e1b99..9f5beae7 100644 --- a/Runtime/Plugins/Raycast/RaycastManager.cs +++ b/Runtime/Plugins/Raycast/RaycastManager.cs @@ -57,20 +57,17 @@ public static RaycastManager instance { public static void NewWindow(int windowHashCode) { if (!instance.raycastHandlerMap.ContainsKey(windowHashCode)) { - // Debug.Log($"New Window: @[{windowHashCode}] ({instance.raycastHandlerMap.Count})"); instance.raycastHandlerMap.Add(windowHashCode, new Dictionary<int, RaycastableRect>()); } } public static void DisposeWindow(int windowHashCode) { if (instance.raycastHandlerMap.ContainsKey(windowHashCode)) { - // Debug.Log($"Dispose Window: @[{windowHashCode}]"); instance.raycastHandlerMap.Remove(windowHashCode); } } public static void AddToList(int widgetHashCode, int windowHashCode) { - // Debug.Log($"Add To List: [{widgetHashCode}]@[{windowHashCode}]"); D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => $"Raycast Handler Map doesn't contain Window {windowHashCode}, " + $"Make sure using UIWidgetsRaycastablePanel instead of UIWidgetsPanel " + @@ -82,7 +79,6 @@ public static void AddToList(int widgetHashCode, int windowHashCode) { } public static void MarkDirty(int widgetHashCode, int windowHashCode) { - // Debug.Log($"Mark Dirty: [{widgetHashCode}]@[{windowHashCode}]"); D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => $"Raycast Handler Map doesn't contain Window {windowHashCode}"); D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => @@ -98,7 +94,6 @@ public static void UpdateSizeOffset(int widgetHashCode, int windowHashCode, Size $"Raycast Handler Map doesn't contain Widget {widgetHashCode} at Window {windowHashCode}"); if (instance.raycastHandlerMap[windowHashCode][widgetHashCode].isDirty) { - // Debug.Log($"Update Size Offset: [{widgetHashCode}]@[{windowHashCode}]"); instance.raycastHandlerMap[windowHashCode][widgetHashCode] .UpdateRect(offset.dx, offset.dy, size.width, size.height); instance.raycastHandlerMap[windowHashCode][widgetHashCode].UnmarkDirty(); @@ -106,7 +101,6 @@ public static void UpdateSizeOffset(int widgetHashCode, int windowHashCode, Size } public static void RemoveFromList(int widgetHashCode, int windowHashCode) { - // Debug.Log($"Remove From List: [{widgetHashCode}]@[{windowHashCode}]"); D.assert(instance.raycastHandlerMap.ContainsKey(windowHashCode), () => $"Raycast Handler Map doesn't contain Window {windowHashCode}"); D.assert(instance.raycastHandlerMap[windowHashCode].ContainsKey(widgetHashCode), () => diff --git a/Runtime/Plugins/Raycast/RaycastableContainer.cs b/Runtime/Plugins/Raycast/RaycastableContainer.cs index bd73a565..8f2b9459 100644 --- a/Runtime/Plugins/Raycast/RaycastableContainer.cs +++ b/Runtime/Plugins/Raycast/RaycastableContainer.cs @@ -39,7 +39,6 @@ RaycastableBox widget readonly int windowHashCode; public override void paint(PaintingContext context, Offset offset) { - // Debug.Log($"[RenderRaycastableBox] Paint {this.widget.GetHashCode()}: {this.size}@{offset}"); RaycastManager.UpdateSizeOffset(this.widgetHashCode, this.windowHashCode, this.size, offset); base.paint(context, offset); @@ -63,20 +62,16 @@ RaycastableBox widget public override void mount(Element parent, object newSlot) { this.widgetHashCode = this.widget.GetHashCode(); - - // Debug.Log($"[RaycastableBox] Mount: {this.initHashCode}"); RaycastManager.AddToList(this.widgetHashCode, this.windowHashCode); base.mount(parent, newSlot); } public override void update(Widget newWidget) { - // Debug.Log($"[RaycastableBox] Update: {this.initHashCode}"); RaycastManager.MarkDirty(this.widgetHashCode, this.windowHashCode); base.update(newWidget); } public override void unmount() { - // Debug.Log($"[RaycastableBox] Unmount: {this.initHashCode}"); RaycastManager.RemoveFromList(this.widgetHashCode, this.windowHashCode); base.unmount(); } From e5b9bd55c4b331d3ebe7a24ea0fd06e4edad3cb7 Mon Sep 17 00:00:00 2001 From: iizzaya <linxuan_0709@icloud.com> Date: Sat, 30 Nov 2019 14:00:00 +0800 Subject: [PATCH 6/6] [Raycast] Move Files' Location --- Runtime/Plugins/Raycast/Sample.meta | 8 - .../Sample/DefaultSimpleTestbedPanel.cs | 49 - .../Sample/DefaultSimpleTestbedPanel.cs.meta | 11 - .../Sample/Raycast Simple Testbed.unity | 879 ------------------ .../Sample/Raycast Simple Testbed.unity.meta | 7 - .../Raycast/Sample/Raycast Testbed.unity | 757 --------------- .../Raycast/Sample/Raycast Testbed.unity.meta | 7 - .../Sample/RaycastSimpleTestbedPanel.cs | 48 - .../Sample/RaycastSimpleTestbedPanel.cs.meta | 11 - .../Raycast/Sample/RaycastTestbedPanel.cs | 213 ----- .../Sample/RaycastTestbedPanel.cs.meta | 11 - .../Raycast.meta => engine/raycastable.meta} | 2 +- .../raycastable}/RaycastManager.cs | 2 +- .../raycastable}/RaycastManager.cs.meta | 0 .../raycastable}/RaycastableContainer.cs | 2 +- .../raycastable}/RaycastableContainer.cs.meta | 0 .../raycastable}/UIWidgetsRaycastablePanel.cs | 2 +- .../UIWidgetsRaycastablePanel.cs.meta | 0 18 files changed, 4 insertions(+), 2005 deletions(-) delete mode 100644 Runtime/Plugins/Raycast/Sample.meta delete mode 100644 Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs delete mode 100644 Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs.meta delete mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity delete mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta delete mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity delete mode 100644 Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta delete mode 100644 Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs delete mode 100644 Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta delete mode 100644 Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs delete mode 100644 Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta rename Runtime/{Plugins/Raycast.meta => engine/raycastable.meta} (77%) rename Runtime/{Plugins/Raycast => engine/raycastable}/RaycastManager.cs (99%) rename Runtime/{Plugins/Raycast => engine/raycastable}/RaycastManager.cs.meta (100%) rename Runtime/{Plugins/Raycast => engine/raycastable}/RaycastableContainer.cs (98%) rename Runtime/{Plugins/Raycast => engine/raycastable}/RaycastableContainer.cs.meta (100%) rename Runtime/{Plugins/Raycast => engine/raycastable}/UIWidgetsRaycastablePanel.cs (96%) rename Runtime/{Plugins/Raycast => engine/raycastable}/UIWidgetsRaycastablePanel.cs.meta (100%) diff --git a/Runtime/Plugins/Raycast/Sample.meta b/Runtime/Plugins/Raycast/Sample.meta deleted file mode 100644 index 28885504..00000000 --- a/Runtime/Plugins/Raycast/Sample.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a722cfcd498904dd68cd954f2a5a1892 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs deleted file mode 100644 index e4975995..00000000 --- a/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Unity.UIWidgets.engine; -using Unity.UIWidgets.foundation; -using Unity.UIWidgets.material; -using Unity.UIWidgets.plugins.raycast; -using Unity.UIWidgets.ui; -using Unity.UIWidgets.widgets; -using UnityEngine; -using Color = Unity.UIWidgets.ui.Color; -using Material = Unity.UIWidgets.material.Material; - -namespace Unity.UIWidgets.Sample { - public class DefaultSimpleTestbedPanel : UIWidgetsPanel { - protected override void OnEnable() { - FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); - base.OnEnable(); - } - - protected override Widget createWidget() { - return new MaterialApp( - home: new DefaultSimpleTestbedWidget() - ); - } - } - - public class DefaultSimpleTestbedWidget : StatefulWidget { - public DefaultSimpleTestbedWidget(Key key = null) : base(key) { } - - public override State createState() { - return new DefaultSimpleTestbedWidgetState(); - } - } - - public class DefaultSimpleTestbedWidgetState : State<DefaultSimpleTestbedWidget> { - public override Widget build(BuildContext context) { - return new Material( - color: new Color(0x44FFFF00), - child: new Center( - child: new Container( - child: new MaterialButton( - child: new Text("Material Button"), - onPressed: () => { }, - color: Colors.lightBlue - ) - ) - ) - ); - } - } -} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs.meta b/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs.meta deleted file mode 100644 index 6d0e0746..00000000 --- a/Runtime/Plugins/Raycast/Sample/DefaultSimpleTestbedPanel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15ddf18357c864b1b822b471672fd391 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity deleted file mode 100644 index 1c2f43eb..00000000 --- a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity +++ /dev/null @@ -1,879 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 11 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 0 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 500 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 500 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 2 - m_PVRDenoiserTypeDirect: 0 - m_PVRDenoiserTypeIndirect: 0 - m_PVRDenoiserTypeAO: 0 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 0 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 - m_ExportTrainingData: 0 - m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &238084976 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 238084977} - - component: {fileID: 238084980} - - component: {fileID: 238084978} - m_Layer: 5 - m_Name: Panel Button With Filter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &238084977 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 238084976} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 354633980} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0.0000076294} - m_SizeDelta: {x: 300, y: 150} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &238084978 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 238084976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - devicePixelRatioOverride: 0 - hardwareAntiAliasing: 0 ---- !u!222 &238084980 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 238084976} - m_CullTransparentMesh: 0 ---- !u!1 &354633976 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 354633980} - - component: {fileID: 354633979} - - component: {fileID: 354633978} - - component: {fileID: 354633977} - - component: {fileID: 354633981} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &354633977 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &354633978 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 ---- !u!223 &354633979 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 1 - m_Camera: {fileID: 519420031} - m_PlaneDistance: 1 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &354633980 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 789225035} - - {fileID: 1371170890} - - {fileID: 238084977} - - {fileID: 409216488} - - {fileID: 2108199658} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!222 &354633981 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_CullTransparentMesh: 0 ---- !u!1 &409216487 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 409216488} - - component: {fileID: 409216491} - - component: {fileID: 409216490} - m_Layer: 5 - m_Name: Panel Button With Filter (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &409216488 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 409216487} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 354633980} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -200} - m_SizeDelta: {x: 300, y: 150} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &409216490 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 409216487} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - devicePixelRatioOverride: 0 - hardwareAntiAliasing: 0 ---- !u!222 &409216491 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 409216487} - m_CullTransparentMesh: 0 ---- !u!1 &519420028 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 519420032} - - component: {fileID: 519420031} - - component: {fileID: 519420029} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &519420029 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 ---- !u!20 &519420031 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 0 - m_HDR: 1 - m_AllowMSAA: 0 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 0 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &519420032 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &789225034 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 789225035} - - component: {fileID: 789225038} - - component: {fileID: 789225037} - - component: {fileID: 789225036} - m_Layer: 5 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &789225035 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1097866538} - m_Father: {fileID: 354633980} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.000030518, y: -0.000011444} - m_SizeDelta: {x: 400, y: 600} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &789225036 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 789225037} - m_OnClick: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null ---- !u!114 &789225037 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!222 &789225038 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_CullTransparentMesh: 0 ---- !u!1 &1097866537 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1097866538} - - component: {fileID: 1097866540} - - component: {fileID: 1097866539} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1097866538 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1097866537} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 789225035} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1097866539 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1097866537} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 55 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 68 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Button ---- !u!222 &1097866540 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1097866537} - m_CullTransparentMesh: 0 ---- !u!1 &1371170889 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1371170890} - - component: {fileID: 1371170891} - - component: {fileID: 1371170892} - m_Layer: 5 - m_Name: Panel Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1371170890 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1371170889} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 354633980} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 200} - m_SizeDelta: {x: 300, y: 150} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1371170891 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1371170889} - m_CullTransparentMesh: 0 ---- !u!114 &1371170892 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1371170889} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 15ddf18357c864b1b822b471672fd391, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - devicePixelRatioOverride: 0 - hardwareAntiAliasing: 0 ---- !u!1 &1742152755 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1742152758} - - component: {fileID: 1742152757} - - component: {fileID: 1742152756} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1742152756 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1742152755} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &1742152757 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1742152755} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 1742152755} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1742152758 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1742152755} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2108199657 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2108199658} - - component: {fileID: 2108199661} - - component: {fileID: 2108199660} - m_Layer: 5 - m_Name: Panel Button With Filter (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2108199658 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2108199657} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 354633980} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 50, y: -240} - m_SizeDelta: {x: 300, y: 150} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2108199660 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2108199657} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4fc8b0d34b82c4c63a41e0cde280075a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - devicePixelRatioOverride: 0 - hardwareAntiAliasing: 0 ---- !u!222 &2108199661 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2108199657} - m_CullTransparentMesh: 0 diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta b/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta deleted file mode 100644 index b54871ec..00000000 --- a/Runtime/Plugins/Raycast/Sample/Raycast Simple Testbed.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 83e4542c541b84d80ad625e366e30839 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity b/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity deleted file mode 100644 index 48aab60e..00000000 --- a/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity +++ /dev/null @@ -1,757 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 11 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 0 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 500 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 500 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 2 - m_PVRDenoiserTypeDirect: 0 - m_PVRDenoiserTypeIndirect: 0 - m_PVRDenoiserTypeAO: 0 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 0 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 - m_ExportTrainingData: 0 - m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &354633976 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 354633980} - - component: {fileID: 354633979} - - component: {fileID: 354633978} - - component: {fileID: 354633977} - - component: {fileID: 354633981} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &354633977 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &354633978 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 ---- !u!223 &354633979 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 1 - m_Camera: {fileID: 519420031} - m_PlaneDistance: 1 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &354633980 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 789225035} - - {fileID: 657653790} - - {fileID: 1942439624} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!222 &354633981 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354633976} - m_CullTransparentMesh: 0 ---- !u!1 &519420028 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 519420032} - - component: {fileID: 519420031} - - component: {fileID: 519420029} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &519420029 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 ---- !u!20 &519420031 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 0 - m_HDR: 1 - m_AllowMSAA: 0 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 0 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &519420032 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &657653789 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 657653790} - - component: {fileID: 657653792} - - component: {fileID: 657653791} - - component: {fileID: 657653793} - m_Layer: 5 - m_Name: Raycast Testbed Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &657653790 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 657653789} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 354633980} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -203, y: 81.79999} - m_SizeDelta: {x: 1290.3, y: 471.4} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &657653791 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 657653789} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1b02d547623984986a44973c4ba2bca0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - devicePixelRatioOverride: 0 - hardwareAntiAliasing: 0 ---- !u!222 &657653792 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 657653789} - m_CullTransparentMesh: 0 ---- !u!114 &657653793 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 657653789} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} - m_Name: - m_EditorClassIdentifier: - reversed: 0 ---- !u!1 &789225034 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 789225035} - - component: {fileID: 789225038} - - component: {fileID: 789225037} - - component: {fileID: 789225036} - m_Layer: 5 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &789225035 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 3, y: 3, z: 1} - m_Children: - - {fileID: 812945430} - m_Father: {fileID: 354633980} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.000030518, y: -0.000011444} - m_SizeDelta: {x: 436.8, y: 81.8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &789225036 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 789225037} - m_OnClick: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null ---- !u!114 &789225037 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 ---- !u!222 &789225038 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789225034} - m_CullTransparentMesh: 0 ---- !u!1 &812945429 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 812945430} - - component: {fileID: 812945432} - - component: {fileID: 812945431} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &812945430 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 812945429} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 789225035} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &812945431 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 812945429} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 40 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Button ---- !u!222 &812945432 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 812945429} - m_CullTransparentMesh: 0 ---- !u!1 &1742152755 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1742152758} - - component: {fileID: 1742152757} - - component: {fileID: 1742152756} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1742152756 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1742152755} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &1742152757 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1742152755} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 1742152755} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1742152758 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1742152755} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1942439623 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1942439624} - - component: {fileID: 1942439627} - - component: {fileID: 1942439626} - - component: {fileID: 1942439625} - m_Layer: 5 - m_Name: Raycast Testbed Panel (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1942439624 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942439623} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 354633980} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 180.85, y: 42} - m_SizeDelta: {x: 1290.3, y: 471.4} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1942439625 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942439623} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2455841904ff14258bae1b28c1363dc0, type: 3} - m_Name: - m_EditorClassIdentifier: - reversed: 0 ---- !u!114 &1942439626 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942439623} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1b02d547623984986a44973c4ba2bca0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - devicePixelRatioOverride: 0 - hardwareAntiAliasing: 0 ---- !u!222 &1942439627 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942439623} - m_CullTransparentMesh: 0 diff --git a/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta b/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta deleted file mode 100644 index c04a9724..00000000 --- a/Runtime/Plugins/Raycast/Sample/Raycast Testbed.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e1bac3be89f2644f6ad3a6ed1ff00617 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs deleted file mode 100644 index 3ad1877b..00000000 --- a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Unity.UIWidgets.foundation; -using Unity.UIWidgets.material; -using Unity.UIWidgets.plugins.raycast; -using Unity.UIWidgets.ui; -using Unity.UIWidgets.widgets; -using UnityEngine; -using Color = Unity.UIWidgets.ui.Color; -using Material = Unity.UIWidgets.material.Material; - -namespace Unity.UIWidgets.Sample { - public class RaycastSimpleTestbedPanel : UIWidgetsRaycastablePanel { - protected override void OnEnable() { - FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); - base.OnEnable(); - } - - protected override Widget createWidget() { - return new MaterialApp( - home: new RaycastSimpleTestbedWidget() - ); - } - } - - public class RaycastSimpleTestbedWidget : StatefulWidget { - public RaycastSimpleTestbedWidget(Key key = null) : base(key) { } - - public override State createState() { - return new RaycastSimpleTestbedWidgetState(); - } - } - - public class RaycastSimpleTestbedWidgetState : State<RaycastSimpleTestbedWidget> { - public override Widget build(BuildContext context) { - return new Material( - color: new Color(0x44FFFF00), - child: new Center( - child: new RaycastableContainer( - new MaterialButton( - child: new Text("Material Button"), - onPressed: () => { }, - color: Colors.lightBlue - ) - ) - ) - ); - } - } -} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta b/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta deleted file mode 100644 index 131091ab..00000000 --- a/Runtime/Plugins/Raycast/Sample/RaycastSimpleTestbedPanel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4fc8b0d34b82c4c63a41e0cde280075a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs deleted file mode 100644 index 779406ce..00000000 --- a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs +++ /dev/null @@ -1,213 +0,0 @@ -using System.Collections.Generic; -using Unity.UIWidgets.engine; -using Unity.UIWidgets.foundation; -using Unity.UIWidgets.material; -using Unity.UIWidgets.painting; -using Unity.UIWidgets.plugins.raycast; -using Unity.UIWidgets.rendering; -using Unity.UIWidgets.ui; -using Unity.UIWidgets.widgets; -using UnityEngine; -using Color = Unity.UIWidgets.ui.Color; -using Material = Unity.UIWidgets.material.Material; -using TextStyle = Unity.UIWidgets.painting.TextStyle; - -namespace Unity.UIWidgets.Sample { - public class RaycastTestbedPanel : UIWidgetsRaycastablePanel { - protected override void OnEnable() { - FontManager.instance.addFont(Resources.Load<Font>("fonts/MaterialIcons-Regular"), "Material Icons"); - base.OnEnable(); - } - - protected override Widget createWidget() { - return new MaterialApp( - home: new RaycastTestbedWidget() - ); - } - } - - public class RaycastTestbedWidget : StatefulWidget { - public RaycastTestbedWidget(Key key = null) : base(key) { } - - public override State createState() { - return new RaycastTestbedWidgetState(); - } - } - - public class RaycastTestbedWidgetState : State<RaycastTestbedWidget> { - public bool enableState = false; - public int switchState = 0; - public int switchPosState = 0; - public bool enableState2 = false; - public int switchState2 = 0; - public int switchPosState2 = 2; - - public override Widget build(BuildContext context) { - return new Material( - color: Colors.transparent, - child: new Center( - child: new Column( - mainAxisAlignment: MainAxisAlignment.center, - children: new List<Widget> { - new Row( - mainAxisAlignment: MainAxisAlignment.center, - children: new List<Widget> { - new RaycastableContainer(child: new MaterialButton( - child: new Text($"Enable State: {this.enableState.ToString()}"), - onPressed: () => { - this.setState( - () => { this.enableState = !this.enableState; }); - }, - color: Colors.lightBlue - ) - ), - new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), - new RaycastableContainer(child: new MaterialButton( - child: new Text($"Switch State: {this.switchState.ToString()}"), - onPressed: () => { - this.setState( - () => { this.switchState = (this.switchState + 1) % 3; }); - }, - color: Colors.lightBlue - )), - new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), - new RaycastableContainer(child: new MaterialButton( - child: new Text($"Switch Pos State: {this.switchPosState.ToString()}"), - onPressed: () => { - this.setState( - () => { this.switchPosState = (this.switchPosState + 1) % 2; }); - }, - color: Colors.lightBlue - )) - } - ), - new Padding(padding: EdgeInsets.symmetric(5f)), - new Row( - mainAxisAlignment: MainAxisAlignment.center, - children: new List<Widget> { - new RaycastableContainer(child: new MaterialButton( - child: new Text($"Enable State: {this.enableState2.ToString()}"), - onPressed: () => { - this.setState( - () => { this.enableState2 = !this.enableState2; }); - }, - color: Colors.lightBlue - )), - new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), - new RaycastableContainer(child: new MaterialButton( - child: new Text($"Switch State: {this.switchState2.ToString()}"), - onPressed: () => { - this.setState( - () => { this.switchState2 = (this.switchState2 + 1) % 3; }); - }, - color: Colors.lightBlue - )), - new Padding(padding: EdgeInsets.symmetric(horizontal: 5f)), - new RaycastableContainer(child: new MaterialButton( - child: new Text($"Switch Pos State: {this.switchPosState2.ToString()}"), - onPressed: () => { - this.setState( - () => { this.switchPosState2 = (this.switchPosState2) % 2 + 1; }); - }, - color: Colors.lightBlue - )) - } - ), - new Padding(padding: EdgeInsets.symmetric(5f)), - new Stack( - children: new List<Widget> { - new Row( - mainAxisAlignment: MainAxisAlignment.center, - children: new List<Widget> { - new Container( - padding: EdgeInsets.only(top: 25f * this.switchPosState, - bottom: 25f * (3 - this.switchPosState)), - child: this.enableState - ? (Widget) new RaycastableContainer( - new Container( - child: new Text( - data: this.switchState == 0 - ? "特殊字符串" - : this.switchState == 1 - ? "特殊字符串串" - : "特殊字符串串串", - style: new TextStyle( - fontSize: 48, - fontWeight: FontWeight.bold, - decoration: TextDecoration.none, - color: Colors.red - ) - ), - decoration: new BoxDecoration( - color: new Color(0x44FFFF00) - ) - ) - ) - : new Text( - data: this.switchState == 0 - ? "普通字符串" - : this.switchState == 1 - ? "普通字符串串" - : "普通字符串串串", - style: new TextStyle( - fontSize: 48, - fontWeight: FontWeight.bold, - decoration: TextDecoration.none, - color: Colors.red - ) - ) - ) - } - ), - new Row( - mainAxisAlignment: MainAxisAlignment.center, - children: new List<Widget> { - new Container( - padding: EdgeInsets.only(top: 25f * this.switchPosState2, - bottom: 25f * (3 - this.switchPosState2)), - child: this.enableState2 - ? (Widget) new RaycastableContainer( - new Container( - child: new Text( - data: this.switchState2 == 0 - ? "特殊字符串" - : this.switchState2 == 1 - ? "特殊字符串串" - : "特殊字符串串串", - style: new TextStyle( - fontSize: 48, - fontWeight: FontWeight.bold, - decoration: TextDecoration.none, - color: Colors.red - ) - ), - decoration: new BoxDecoration( - color: new Color(0x44FFFF00) - ) - ) - ) - : (Widget) new Text( - data: this.switchState2 == 0 - ? "普通字符串" - : this.switchState2 == 1 - ? "普通字符串串" - : "普通字符串串串", - style: new TextStyle( - fontSize: 48, - fontWeight: FontWeight.bold, - decoration: TextDecoration.none, - color: Colors.red - ) - ) - ) - } - ) - } - ) - } - ) - ) - ); - } - } -} \ No newline at end of file diff --git a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta b/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta deleted file mode 100644 index 3d3ced9d..00000000 --- a/Runtime/Plugins/Raycast/Sample/RaycastTestbedPanel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1b02d547623984986a44973c4ba2bca0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/Plugins/Raycast.meta b/Runtime/engine/raycastable.meta similarity index 77% rename from Runtime/Plugins/Raycast.meta rename to Runtime/engine/raycastable.meta index f4661cef..4b305bd7 100644 --- a/Runtime/Plugins/Raycast.meta +++ b/Runtime/engine/raycastable.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 536a3d78629ef4c00adb8dc15d9988df +guid: d8e15e1221dae40e68226ec6d8ed8ddb folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Runtime/Plugins/Raycast/RaycastManager.cs b/Runtime/engine/raycastable/RaycastManager.cs similarity index 99% rename from Runtime/Plugins/Raycast/RaycastManager.cs rename to Runtime/engine/raycastable/RaycastManager.cs index 9f5beae7..f9c7aca8 100644 --- a/Runtime/Plugins/Raycast/RaycastManager.cs +++ b/Runtime/engine/raycastable/RaycastManager.cs @@ -3,7 +3,7 @@ using Unity.UIWidgets.ui; using UnityEngine; -namespace Unity.UIWidgets.plugins.raycast { +namespace Unity.UIWidgets.engine.raycast { public class RaycastableRect { bool _isDirty = true; diff --git a/Runtime/Plugins/Raycast/RaycastManager.cs.meta b/Runtime/engine/raycastable/RaycastManager.cs.meta similarity index 100% rename from Runtime/Plugins/Raycast/RaycastManager.cs.meta rename to Runtime/engine/raycastable/RaycastManager.cs.meta diff --git a/Runtime/Plugins/Raycast/RaycastableContainer.cs b/Runtime/engine/raycastable/RaycastableContainer.cs similarity index 98% rename from Runtime/Plugins/Raycast/RaycastableContainer.cs rename to Runtime/engine/raycastable/RaycastableContainer.cs index 8f2b9459..429d6524 100644 --- a/Runtime/Plugins/Raycast/RaycastableContainer.cs +++ b/Runtime/engine/raycastable/RaycastableContainer.cs @@ -3,7 +3,7 @@ using Unity.UIWidgets.ui; using Unity.UIWidgets.widgets; -namespace Unity.UIWidgets.plugins.raycast { +namespace Unity.UIWidgets.engine.raycast { class RaycastableBox : SingleChildRenderObjectWidget { public RaycastableBox( Key key = null, diff --git a/Runtime/Plugins/Raycast/RaycastableContainer.cs.meta b/Runtime/engine/raycastable/RaycastableContainer.cs.meta similarity index 100% rename from Runtime/Plugins/Raycast/RaycastableContainer.cs.meta rename to Runtime/engine/raycastable/RaycastableContainer.cs.meta diff --git a/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs b/Runtime/engine/raycastable/UIWidgetsRaycastablePanel.cs similarity index 96% rename from Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs rename to Runtime/engine/raycastable/UIWidgetsRaycastablePanel.cs index e2961f36..2fc70de1 100644 --- a/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs +++ b/Runtime/engine/raycastable/UIWidgetsRaycastablePanel.cs @@ -1,7 +1,7 @@ using Unity.UIWidgets.engine; using UnityEngine; -namespace Unity.UIWidgets.plugins.raycast { +namespace Unity.UIWidgets.engine.raycast { [RequireComponent(typeof(RectTransform))] public class UIWidgetsRaycastablePanel : UIWidgetsPanel, ICanvasRaycastFilter { int windowHashCode; diff --git a/Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs.meta b/Runtime/engine/raycastable/UIWidgetsRaycastablePanel.cs.meta similarity index 100% rename from Runtime/Plugins/Raycast/UIWidgetsRaycastablePanel.cs.meta rename to Runtime/engine/raycastable/UIWidgetsRaycastablePanel.cs.meta