2024.5.23杨华提交修改1

This commit is contained in:
黄嘉宇 2024-05-23 10:03:52 +08:00
parent d80ac8d488
commit 6fe3bcbb66
363 changed files with 523736 additions and 1690 deletions

View File

@ -1064,7 +1064,7 @@ GameObject:
m_Component:
- component: {fileID: 89677427}
- component: {fileID: 89677429}
- component: {fileID: 89677428}
- component: {fileID: 89677430}
m_Layer: 5
m_Name: SetSystem
m_TagString: Untagged
@ -1092,7 +1092,15 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1050, y: 435}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &89677428
--- !u!222 &89677429
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 89677426}
m_CullTransparentMesh: 1
--- !u!114 &89677430
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -1101,7 +1109,7 @@ MonoBehaviour:
m_GameObject: {fileID: 89677426}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@ -1112,24 +1120,13 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: fa0c8ad8e6ffc06498c0da332c908fd3, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &89677429
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 89677426}
m_CullTransparentMesh: 1
m_Texture: {fileID: 2800000, guid: fa0c8ad8e6ffc06498c0da332c908fd3, type: 3}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!1 &91025464
GameObject:
m_ObjectHideFlags: 0
@ -4740,6 +4737,86 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 374859221}
m_CullTransparentMesh: 1
--- !u!1 &377429945
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 377429946}
- component: {fileID: 377429948}
- component: {fileID: 377429947}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &377429946
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 377429945}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2145806250}
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 &377429947
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 377429945}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.6511247, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 60
m_FontStyle: 1
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 60
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: <
--- !u!222 &377429948
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 377429945}
m_CullTransparentMesh: 1
--- !u!1 &379354440
GameObject:
m_ObjectHideFlags: 0
@ -5505,6 +5582,86 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414392646}
m_CullTransparentMesh: 1
--- !u!1 &427238074
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 427238075}
- component: {fileID: 427238077}
- component: {fileID: 427238076}
m_Layer: 5
m_Name: Tips
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &427238075
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 427238074}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1361738231}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 313.4176, y: -35.30591}
m_SizeDelta: {x: 547.2349, y: 70.6109}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &427238076
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 427238074}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.5896226, g: 0.9458609, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 34
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u4F7F\u7528\u94B3\u5F62\u7535\u6D41\u88681"
--- !u!222 &427238077
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 427238074}
m_CullTransparentMesh: 1
--- !u!1 &431218845
GameObject:
m_ObjectHideFlags: 0
@ -17800,6 +17957,7 @@ GameObject:
- component: {fileID: 1067605754}
- component: {fileID: 1067605755}
- component: {fileID: 1067605756}
- component: {fileID: 1067605757}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -18350,6 +18508,25 @@ MonoBehaviour:
StopClick: {fileID: 0}
path:
MP4Name:
--- !u!114 &1067605757
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1067605736}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e44ac87aada1b644dac8d22a4e7e2a82, type: 3}
m_Name:
m_EditorClassIdentifier:
leftBtn: {fileID: 2145806253}
rightBtn: {fileID: 1707656242}
tips: {fileID: 89677430}
tipText: {fileID: 427238076}
index: 0
imageCount: 0
texturesTips: []
--- !u!1 &1091536119
GameObject:
m_ObjectHideFlags: 0
@ -22907,6 +23084,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 790965686}
- {fileID: 427238075}
m_Father: {fileID: 1906731478}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -30348,6 +30526,128 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1695943083}
m_CullTransparentMesh: 1
--- !u!1 &1707656238
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1707656239}
- component: {fileID: 1707656241}
- component: {fileID: 1707656240}
- component: {fileID: 1707656242}
m_Layer: 5
m_Name: RightBtn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1707656239
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1707656238}
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_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1787245989}
m_Father: {fileID: 1906731478}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -180, y: 0}
m_SizeDelta: {x: 100, y: 127.7389}
m_Pivot: {x: 1, y: 0.5}
--- !u!114 &1707656240
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1707656238}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.5120332, b: 1, a: 0.13333334}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1707656241
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1707656238}
m_CullTransparentMesh: 1
--- !u!114 &1707656242
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1707656238}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
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: 1707656240}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &1708161586
GameObject:
m_ObjectHideFlags: 0
@ -31811,6 +32111,86 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1787008123}
m_CullTransparentMesh: 1
--- !u!1 &1787245988
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1787245989}
- component: {fileID: 1787245991}
- component: {fileID: 1787245990}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1787245989
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1787245988}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1707656239}
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 &1787245990
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1787245988}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.6511247, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 60
m_FontStyle: 1
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 60
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: '>'
--- !u!222 &1787245991
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1787245988}
m_CullTransparentMesh: 1
--- !u!1 &1790206773
GameObject:
m_ObjectHideFlags: 0
@ -33273,6 +33653,8 @@ RectTransform:
m_Children:
- {fileID: 1361738231}
- {fileID: 89677427}
- {fileID: 2145806250}
- {fileID: 1707656239}
m_Father: {fileID: 277472811}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -38076,6 +38458,128 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2143281895}
m_CullTransparentMesh: 1
--- !u!1 &2145806249
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2145806250}
- component: {fileID: 2145806252}
- component: {fileID: 2145806251}
- component: {fileID: 2145806253}
m_Layer: 5
m_Name: LeftBtn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2145806250
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2145806249}
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_ConstrainProportionsScale: 0
m_Children:
- {fileID: 377429946}
m_Father: {fileID: 1906731478}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 180, y: 0}
m_SizeDelta: {x: 100, y: 127.7389}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &2145806251
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2145806249}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.5120332, b: 1, a: 0.13333334}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &2145806252
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2145806249}
m_CullTransparentMesh: 1
--- !u!114 &2145806253
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2145806249}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
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: 2145806251}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &223104166407512384
GameObject:
m_ObjectHideFlags: 0

View File

@ -0,0 +1,78 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//============================================================
//支持中文文件使用UTF-8编码
//@author Adam
//@create 20240522
//@company Aadm
//
//@description:
//============================================================
namespace Components
{
public class NPCWaypoints : MonoBehaviour
{
public Transform[] waypoints; // 路径点数组
private int currentWaypoint = 0; // 当前路径点索引
private float moveSpeed = 1f; // 移动速度
public Animator npcAnimator;
public bool isMove = false;
public bool isOnce = false;
public bool isLooked = true;
// Use this for initialization
private void Start()
{
for (int i = 0; i < waypoints.Length; i++)
{
waypoints[i].GetComponent<MeshRenderer>().enabled = false;
}
}
private void Update()
{
if (!isMove) return;
if (currentWaypoint < waypoints.Length)
{
float distance = Vector3.Distance(transform.position, waypoints[currentWaypoint].position);
if (distance > 0.1f)
{
if (isLooked)
{
transform.LookAt(waypoints[currentWaypoint]);
isLooked = false;
}
Vector3 direction = waypoints[currentWaypoint].position - transform.position;
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}
else
{
currentWaypoint++;
isLooked = true;
}
}
else
{
if (isMove && !isOnce)
{
npcAnimator.SetBool("isWalk", false);
isMove = false;
isOnce = true;
}
}
}
//[ContextMenu("StartMove")]
public void StartMove()
{
StartCoroutine(WaitMove());
}
private IEnumerator WaitMove()
{
yield return new WaitForSeconds(3f);
npcAnimator.SetBool("isWalk", true);
isMove = true;
isOnce = false;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 116e73b071222f8499967697228559a1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,84 @@
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
//============================================================
//支持中文文件使用UTF-8编码
//@author Adam
//@create 20240516
//@company LG
//
//@description:
//============================================================
public class SystemController : MonoBehaviour
{
public Button leftBtn;
public Button rightBtn;
public RawImage tips;
public Text tipText;
public int index = 0;
public int imageCount;
public Texture2D[] texturesTips;
// Use this for initialization
private void Start()
{
texturesTips = LoadSprite("Tips");
leftBtn.onClick.AddListener(OnLeft);
rightBtn.onClick.AddListener(OnRight);
imageCount = texturesTips.Length;
tips.texture = texturesTips[index];
tipText.text = texturesTips[index].name;
}
public void OnRight()
{
index++;
if (index >= imageCount)
{
index = imageCount - 1;
}
tipText.text = texturesTips[index].name;
tips.texture = texturesTips[index];
}
public void OnLeft()
{
index--;
if (index < 0)
{
index = 0;
}
tipText.text = texturesTips[index].name;
tips.texture = texturesTips[index];
}
public Texture2D[] LoadSprite(string name)
{
string fileName_1 = Path.Combine(Application.streamingAssetsPath, name);
Debug.Log(fileName_1);
if (!Directory.Exists(fileName_1))
{
throw new FileNotFoundException("Could not find file: " + fileName_1);
}
string[] filePaths = Directory.GetFiles(fileName_1, "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".jpg") || s.EndsWith(".png"))
.ToArray();
Texture2D[] sprites = new Texture2D[filePaths.Length];
for (int i = 0; i < filePaths.Length; i++)
{
byte[] bytes = File.ReadAllBytes(filePaths[i]);
Texture2D texture = new Texture2D(2, 2);
texture.LoadImage(bytes);
string tipName = filePaths[i].Substring(filePaths[i].LastIndexOf(@"\") + 1, filePaths[i].LastIndexOf('.') - filePaths[i].LastIndexOf('\\') - 1);
string[] tempNames = tipName.Split("_");
texture.name = tempNames[2];
sprites[i] = texture;
}
return sprites;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e44ac87aada1b644dac8d22a4e7e2a82
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 53ee37c207e32e14d8a743ae9d9ddb8c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 91ccc6da58c5c8545ab55312718656c3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f2ab3149758181f4ca713e1f3489c62f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,86 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 3d66Model-9825864-files-1
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords:
- _EMISSION
- _NORMALMAP
m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 46401282a7a59f9469c8ee4f2d61359b, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 88d0414c9e7584441943afc141654c72, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9e4f01f5cbefae8439b17d2493397604
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,159 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-5947397917592710247
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Stand
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -3584095163756711014}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 0
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -203655887218126122, guid: 2acc773208dfe3342a32ea7692436303, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-3584095163756711014
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: isWalk
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 123349700110745945}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.9820574
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Women-01
serializedVersion: 5
m_AnimatorParameters:
- m_Name: isWalk
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 5646184920311110848}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &123349700110745945
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Walking
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 2284494380324349274}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 0
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -203655887218126122, guid: 33c62cb424def044290f5749a3e66d34, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &2284494380324349274
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: isWalk
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -5947397917592710247}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.7413793
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1107 &5646184920311110848
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -5947397917592710247}
m_Position: {x: 420, y: 230, z: 0}
- serializedVersion: 1
m_State: {fileID: 123349700110745945}
m_Position: {x: 570, y: 410, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -5947397917592710247}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 929b30606ed3b3544b3e3c185b9b3053
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c710d43be8dbf074f84302db553c254b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: fa0c8ad8e6ffc06498c0da332c908fd3
guid: 88d0414c9e7584441943afc141654c72
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@ -36,13 +36,13 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
@ -51,9 +51,9 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
@ -131,7 +131,7 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
spriteID:
internalID: 0
vertices: []
indices:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 46401282a7a59f9469c8ee4f2d61359b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 1
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,108 @@
fileFormatVersion: 2
guid: ee451e45686549b40aacd5af45fdb233
ModelImporter:
serializedVersion: 21300
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 1
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips:
- 2acc773208dfe3342a32ea7692436303
- 33c62cb424def044290f5749a3e66d34
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,109 @@
fileFormatVersion: 2
guid: 2acc773208dfe3342a32ea7692436303
ModelImporter:
serializedVersion: 21300
internalIDToNameTable:
- first:
74: -203655887218126122
second: mixamo.com
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 1
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,138 @@
fileFormatVersion: 2
guid: 33c62cb424def044290f5749a3e66d34
ModelImporter:
serializedVersion: 21300
internalIDToNameTable:
- first:
74: -203655887218126122
second: Walking
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 1
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: Walking
takeName: mixamo.com
internalID: 0
firstFrame: 0
lastFrame: 29
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -4,7 +4,7 @@ using System.IO;
//============================================================
//@author YangHua
//@create 2016/4/28
//@company QianHuo
//@company Adam
//
//@description:把'81-C# Script-NewBehaviourScript.cs.txt'文件,
// 修改里面的作者为自己的名字,覆盖到:
@ -17,7 +17,7 @@ namespace AMLab
public class TemplateKeyParser : UnityEditor.AssetModificationProcessor
{
private static string AUTHOR = "YangHua";
private static string COMPANY = "QianHuo";
private static string COMPANY = "Adam";
public static void OnWillCreateAsset(string path)
{
//Debug.Log("TempleteKeyParser=>" + path);

View File

@ -49,5 +49,6 @@ public class MultimeterRecovery : MonoBehaviour
GameManager.Instance.show("0");
UIManager.Instance.toolsItemManager.recoverBtn.gameObject.SetActive(true);
});
btn.gameObject.SetActive(false);
}
}

View File

@ -1,3 +1,4 @@
using Components;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@ -33,13 +34,14 @@ public class BoxPengZhuang : MonoBehaviour
{
g1.gameObject.SetActive(true);
g1.init(dialogue);
gameObject.transform.parent.GetComponent<NPCWaypoints>().StartMove();
gameObject.SetActive(false);
if (!UIManager.Instance.ganTanHao.KeyGanTanHao.ContainsKey(GlobalFlag.userId))
{
gameObject.SetActive(false);
UIManager.Instance.isBox = true;
}
await FractionManager.Instance.overAsync(3, 2, "¹¤×÷Ö¤");
gameObject.SetActive(false);
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7107,9 +7107,17 @@ PrefabInstance:
propertyPath: InitialUrl
value: http://127.0.0.1:3633/#/
objectReference: {fileID: 0}
- target: {fileID: 114949863196309792, guid: 3e10f3b6a733e441c8352020cff2f1f6, type: 3}
propertyPath: Resolution
value: 1.03
objectReference: {fileID: 0}
- target: {fileID: 114949863196309792, guid: 3e10f3b6a733e441c8352020cff2f1f6, type: 3}
propertyPath: PixelDensity
value: 1
objectReference: {fileID: 0}
- target: {fileID: 114949863196309792, guid: 3e10f3b6a733e441c8352020cff2f1f6, type: 3}
propertyPath: KeyboardEnabled
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 114949863196309792, guid: 3e10f3b6a733e441c8352020cff2f1f6, type: 3}
propertyPath: NativeOnScreenKeyboardEnabled

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 86a5f6051f694c24db9a746016f56f48
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7fc8be9ab77ee3e409bf233c1b72d59b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 29c532ebd3ca3ab479ea692f365241db
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 215a210b0d93b4346869b3b6787d906e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9a4d1a51adb4ab342b087ffb7cc8330d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4839ecef7646b364b8a6d72b1b07371a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 572dfe1dc8853c34e85f6fd74cebb981
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
[ScreenCaputre]
Resolution = Custom
Optional Resolutions : Original , Half , Quarter , Eighth , Sixteenth , Custom
CustomValue = 800*600
noAudio = false
AudioSpeed = 20
OpenVideoPlayBack = true

View File

@ -1 +1 @@
Build from LGZN_H at 2024/5/21 13:57:17
Build from ADAM at 2024/5/22 16:57:32

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e1af6d7538e0c4382940c502ac857197
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3f61b635b575947e9abfac04cb82067f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d81ee1045c91f4c79852f85367eb106a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e419cc8c4878947a5971402dbdec76f0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1038a3399a6af4c639c0851aede5495f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: MockViewportMaterial
m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: -1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 9f7b60728c99d4fe6b67e0d86b1e7b5e, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 0
- _Metallic: 0
- _Mode: 3
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 0
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 0
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cc28f1f6b8abe41dba1a8aba8c0b501d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,196 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#if UNITY_ANDROID
#pragma warning disable CS0618
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEditor.Build;
using UnityEngine;
using UnityEngine.Rendering;
using Vuplex.WebView.Internal;
namespace Vuplex.WebView.Editor {
public static class AndroidEditorUtils {
public static void PreprocessBuild(string productName, string proguardRulesExpectedRelativePath, string nativeLibraryName, bool native2DSupported) {
_validateGraphicsApi(native2DSupported);
_forceInternetPermission();
_assertThatOculusLowOverheadModeIsDisabled();
_assertThatSrpBatcherIsDisabled();
_updateNativePluginSettings(nativeLibraryName);
_updateProguardFileIfNeeded(productName, proguardRulesExpectedRelativePath);
}
/// <summary>
/// Updates the proguard-user.txt file if needed to prevent the names of 3D WebView's Java classes from being obfuscated.
/// https://support.vuplex.com/articles/android-minification
/// </summary>
static void _updateProguardFileIfNeeded(string productName, string neededProguardRulesExpectedRelativePath) {
var minificationEnabled = false;
// minifyDebug and minifyRelease were added in 2020.1.
#if UNITY_2020_1_OR_NEWER
minificationEnabled = EditorUserBuildSettings.development ? PlayerSettings.Android.minifyDebug : PlayerSettings.Android.minifyRelease;
#endif
if (!minificationEnabled) {
return;
}
var neededProguardRulesFilePath = EditorUtils.FindFile(Path.Combine(Application.dataPath, neededProguardRulesExpectedRelativePath));
var neededProguardRules = File.ReadAllText(neededProguardRulesFilePath);
// Note: the prefix and suffix avoid using characters considered special characters in regexes, like parentheses.
var prefix = $"# --- Start of section automatically included for {productName} - PLEASE DO NOT EDIT ---";
var suffix = $"# --- End of section for {productName} ---";
var fullTextToAdd = $"{prefix}\n{neededProguardRules}\n{suffix}";
var androidPluginsFolderPath = Path.Combine(Application.dataPath, "Plugins", "Android");
var proguardUserFilePath = Path.Combine(androidPluginsFolderPath, "proguard-user.txt");
var proguardUserFileExists = File.Exists(proguardUserFilePath);
if (proguardUserFileExists) {
var existingFileText = File.ReadAllText(proguardUserFilePath);
var existingWebViewProguardRulesRegex = new Regex($"{prefix}.*{suffix}", RegexOptions.Singleline);
var existingWebViewProguardRulesResult = existingWebViewProguardRulesRegex.Match(existingFileText);
if (existingWebViewProguardRulesResult.Success) {
if (existingWebViewProguardRulesResult.Value != fullTextToAdd) {
// The proguard-user.txt file contains an older version of the rules, so update them.
var newFileText = existingFileText.Replace(existingWebViewProguardRulesResult.Value, fullTextToAdd);
File.WriteAllText(proguardUserFilePath, newFileText);
}
} else {
// A proguard-user.txt file exists, but it doesn't include the rules yet, so add them.
var newFileText = existingFileText + "\n\n" + fullTextToAdd;
File.WriteAllText(proguardUserFilePath, newFileText);
}
} else {
// No proguard-user.txt file exists yet, so create the file.
Directory.CreateDirectory(androidPluginsFolderPath);
File.WriteAllText(proguardUserFilePath, fullTextToAdd);
}
}
static void _assertThatSrpBatcherIsDisabled() {
#if UNITY_2018_2_OR_NEWER && !VUPLEX_DISABLE_SRP_WARNING
// Checking renderPipelineAsset is needed to verify that URP is enabled because useScriptableRenderPipelineBatching
// can sometimes be true even when the built-in render pipeline is in use.
if (GraphicsSettings.useScriptableRenderPipelineBatching && GraphicsSettings.renderPipelineAsset != null) {
throw new BuildFailedException("URP settings error: \"SRP Batcher\" is enabled in Universal Render Pipeline (URP) settings, but URP for Android has an issue that prevents 3D WebView's textures from showing up outside of a Canvas. If the project uses a WebViewPrefab, please go to the URP Asset and disable \"SRP Batcher\". In newer versions of URP, it's necessary to click \"Show Additional Properties\" in order to show the SRP Batcher option, like described here: https://docs.unity3d.com/2021.3/Documentation/Manual/SRPBatcher.html . If the project only uses CanvasWebViewPrefab and not WebViewPrefab, you can instead add the scripting symbol VUPLEX_DISABLE_SRP_WARNING to the project to ignore this warning.");
}
#endif
}
static void _assertThatOculusLowOverheadModeIsDisabled() {
if (!EditorUtils.XRSdkIsEnabled("oculus")) {
return;
}
var lowOverheadModeEnabled = false;
#if VUPLEX_OCULUS
// The Oculus XR plugin is installed
Unity.XR.Oculus.OculusLoader oculusLoader = Unity.XR.Oculus.OculusSettings.CreateInstance<Unity.XR.Oculus.OculusLoader>();
Unity.XR.Oculus.OculusSettings oculusSettings = oculusLoader.GetSettings();
lowOverheadModeEnabled = oculusSettings.LowOverheadMode;
#elif UNITY_2019_2_OR_NEWER && !UNITY_2020_1_OR_NEWER
// VROculus.lowOverheadMode is only supported from Unity 2019.2 - 2019.4
lowOverheadModeEnabled = PlayerSettings.VROculus.lowOverheadMode;
#endif
if (lowOverheadModeEnabled) {
throw new BuildFailedException("XR settings error: Vuplex 3D WebView requires that \"Low Overhead Mode\" be disabled in Oculus XR settings. Please disable Low Overhead Mode in Oculus XR settings.");
}
}
static void _forceInternetPermission() {
#if !VUPLEX_ANDROID_DISABLE_REQUIRE_INTERNET
if (!PlayerSettings.Android.forceInternetPermission) {
PlayerSettings.Android.forceInternetPermission = true;
WebViewLogger.LogWarning("Just a heads-up: 3D WebView changed the Android player setting \"Internet Access\" to \"Require\" to ensure that it can fetch web pages from the internet. (This message will only be logged once.)");
}
#endif
}
static void _updateNativePluginSettings(string fileName) {
#if UNITY_2019_1_OR_NEWER
var pluginAbsolutePaths = Directory.GetFiles(Application.dataPath, fileName, SearchOption.AllDirectories).ToList();
// PluginImporter.GetAtPath() requires a relative path and doesn't support absolute paths.
var pluginRelativePaths = pluginAbsolutePaths.Select(path => path.Replace(Application.dataPath, "Assets"));
foreach (var filePath in pluginRelativePaths) {
var pluginImporter = (PluginImporter)PluginImporter.GetAtPath(filePath);
var changedSettings = false;
// Set the libVuplexWebViewAndroid.so or libVuplexWebViewAndroidGecko.so plugin files to be preloaded, which is equivalent to
// enabling their "Load on Startup" checkbox. This is done via a script because the .meta files
// for these plugins was generated with an older version of Unity in order to be compatible with
// 2018.4, which doesn't support the preload option. Enabling preloading is required for Vulkan support.
if (!pluginImporter.isPreloaded) {
pluginImporter.isPreloaded = true;
changedSettings = true;
}
// Unity 2020.3 and newer support x86_64 for Chrome OS. 3D WebView ships x86_64 libraries, but they
// are initially disabled because older versions of Unity can't handle if "CPU" is set to "X86_64".
// So, we enable those x86_64 libraries dynamically here.
#if UNITY_2020_3_OR_NEWER
if (filePath.Contains("x86_64")) {
if (!pluginImporter.GetCompatibleWithPlatform(BuildTarget.Android)) {
pluginImporter.SetCompatibleWithPlatform(BuildTarget.Android, true);
changedSettings = true;
}
if (pluginImporter.GetPlatformData(BuildTarget.Android, "CPU") != "X86_64") {
pluginImporter.SetPlatformData(BuildTarget.Android, "CPU", "X86_64");
changedSettings = true;
}
}
#endif
if (changedSettings) {
pluginImporter.SaveAndReimport();
}
}
#endif
}
static void _validateGraphicsApi(bool native2DSupported) {
#if !VUPLEX_DISABLE_GRAPHICS_API_WARNING
var autoGraphicsApiEnabled = PlayerSettings.GetUseDefaultGraphicsAPIs(BuildTarget.Android);
var selectedGraphicsApi = PlayerSettings.GetGraphicsAPIs(BuildTarget.Android)[0];
var vulkanEnabled = selectedGraphicsApi == GraphicsDeviceType.Vulkan;
if (!(vulkanEnabled || autoGraphicsApiEnabled)) {
// OpenGLES is selected, so nothing to warn about.
return;
}
var warningPrefix = autoGraphicsApiEnabled ? "Auto Graphics API is enabled in Player Settings, which means that the Vulkan Graphics API may be used."
: "The Vulkan Graphics API is enabled in Player Settings.";
#if UNITY_2020_2_OR_NEWER
// At build time, XRSettings.enabled is always false, so to check if XR is enabled,
// we must instead check whether XRSettings.supportedDevices[0] != "None".
var xrDevices = VXUtils.XRSettings.supportedDevices;
var xrIsEnabled = xrDevices.Length > 0 && xrDevices[0] != "None";
if (!xrIsEnabled) {
WebViewLogger.LogWarning($"{warningPrefix} 3D WebView for Android supports Vulkan, but{(native2DSupported ? " unless the application only uses webviews in Native 2D Mode, then" : "")} the target Android devices must support the Vulkan extension VK_ANDROID_external_memory_android_hardware_buffer. That extension is supported on newer devices like Oculus Quest but isn't supported on all Android phones that support Vulkan. If your application is intended for general Android phones, it's recommended to{(native2DSupported ? " either only use Native 2D Mode or to" : "")} change the project's selected Graphics API to OpenGLES in Player Settings.{(native2DSupported ? " If your application is already only using Native 2D Mode, then please ignore this message." : "")} For more details, please see this page: <em>https://support.vuplex.com/articles/vulkan#android</em>");
}
#if !UNITY_2022_1_OR_NEWER
if (PlayerSettings.GetMobileMTRendering(BuildTargetGroup.Android)) {
WebViewLogger.LogWarning("Your project has Multithreaded Rendering and Vulkan enabled with a version of Unity older than 2022.1, which may cause web rendering to appear jittery. Unity 2022.1 or newer is recommended if your project requires Multithreaded Rendering to be enabled. For more details, please see this page: <em>https://support.vuplex.com/articles/vulkan</em>");
}
#endif
#else
throw new BuildFailedException(warningPrefix + " 3D WebView for Android requires Unity 2020.2 or newer in order to support Vulkan. So, please either upgrade to a newer version of Unity or change the selected Graphics API to OpenGLES in Player Settings.");
#endif
#endif
}
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: dd041d4a8ab324bc2899621ed1b3e5d9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,108 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEditor;
namespace Vuplex.WebView.Editor {
public abstract class BaseWebViewPrefabInspector : UnityEditor.Editor {
public virtual void OnEnable() {
_clickingEnabled = serializedObject.FindProperty("ClickingEnabled");
_cursorIconsEnabled = serializedObject.FindProperty("CursorIconsEnabled");
_dragMode = serializedObject.FindProperty("DragMode");
_dragThreshold = serializedObject.FindProperty("DragThreshold");
_hoveringEnabled = serializedObject.FindProperty("HoveringEnabled");
_keyboardEnabled = serializedObject.FindProperty("KeyboardEnabled");
_logConsoleMessages = serializedObject.FindProperty("LogConsoleMessages");
_resolution = serializedObject.FindProperty("Resolution");
_initialUrl = serializedObject.FindProperty("InitialUrl");
_nativeOnScreenKeyboardEnabled = serializedObject.FindProperty("NativeOnScreenKeyboardEnabled");
_pixelDensity = serializedObject.FindProperty("PixelDensity");
_remoteDebuggingEnabled = serializedObject.FindProperty("RemoteDebuggingEnabled");
_scrollingEnabled = serializedObject.FindProperty("ScrollingEnabled");
_scrollingSensitivity = serializedObject.FindProperty("ScrollingSensitivity");
}
public override void OnInspectorGUI() {
DocumentationLinkDrawer.DrawDocumentationLink(_getDocumentationLink());
EditorGUILayout.Space();
serializedObject.Update();
EditorGUILayout.PropertyField(_initialUrl);
EditorGUILayout.PropertyField(_resolution);
EditorGUILayout.PropertyField(_dragMode);
EditorGUILayout.PropertyField(_keyboardEnabled);
EditorGUILayout.Space();
_renderCustomPlatformSpecificSettings();
EditorGUILayout.PropertyField(_nativeOnScreenKeyboardEnabled);
EditorGUILayout.PropertyField(_pixelDensity);
EditorGUILayout.PropertyField(_cursorIconsEnabled);
EditorGUILayout.Space();
EditorGUILayout.PropertyField(_remoteDebuggingEnabled);
EditorGUILayout.PropertyField(_logConsoleMessages);
EditorUtils.DrawLink("Troubleshooting help", "https://developer.vuplex.com/webview/troubleshooting", 24);
EditorUtils.DrawLink("Remote debugging help", "https://support.vuplex.com/articles/how-to-debug-web-content", 27);
EditorGUILayout.Space();
EditorGUILayout.Space();
#if UNITY_2019_1_OR_NEWER
// BeginFoldoutHeaderGroup and EndFoldoutHeaderGroup only exist in Unity 2019.1 and newer.
_showOtherSettings = EditorGUILayout.BeginFoldoutHeaderGroup(_showOtherSettings, "Other settings");
#else
// Fallback to creating a label for the section.
_showOtherSettings = true;
var style = new UnityEngine.GUIStyle { fontStyle = UnityEngine.FontStyle.Bold };
style.normal.textColor = EditorGUIUtility.isProSkin ? new UnityEngine.Color(0.77f, 0.77f, 0.77f) : UnityEngine.Color.black;
EditorGUILayout.LabelField("Other settings", style);
#endif
if (_showOtherSettings) {
_renderCustomOtherSettings();
EditorGUILayout.PropertyField(_clickingEnabled);
EditorGUILayout.PropertyField(_hoveringEnabled);
EditorGUILayout.PropertyField(_scrollingEnabled);
EditorGUILayout.PropertyField(_scrollingSensitivity);
EditorGUILayout.PropertyField(_dragThreshold);
}
#if UNITY_2019_1_OR_NEWER
EditorGUILayout.EndFoldoutHeaderGroup();
#endif
EditorGUILayout.Space();
serializedObject.ApplyModifiedProperties();
}
SerializedProperty _clickingEnabled;
SerializedProperty _cursorIconsEnabled;
SerializedProperty _dragMode;
SerializedProperty _dragThreshold;
SerializedProperty _hoveringEnabled;
SerializedProperty _keyboardEnabled;
SerializedProperty _logConsoleMessages;
SerializedProperty _resolution;
SerializedProperty _initialUrl;
SerializedProperty _nativeOnScreenKeyboardEnabled;
SerializedProperty _pixelDensity;
SerializedProperty _remoteDebuggingEnabled;
SerializedProperty _scrollingEnabled;
SerializedProperty _scrollingSensitivity;
bool _showOtherSettings;
protected abstract string _getDocumentationLink();
protected virtual void _renderCustomOtherSettings() {}
protected virtual void _renderCustomPlatformSpecificSettings() {}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 12235521ed9354bd29154cb73f4a7c9d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,30 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEditor;
namespace Vuplex.WebView.Editor {
/// <summary>
/// Adds a "View documentation" link to the inspector.
/// </summary>
[CustomEditor(typeof(CanvasPointerInputDetector))]
public class CanvasPointerInputDetectorInspector : UnityEditor.Editor {
public override void OnInspectorGUI() {
DocumentationLinkDrawer.DrawDocumentationLink("https://developer.vuplex.com/webview/IPointerInputDetector");
DrawDefaultInspector();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a629eb6a80da745468dc349f3d92563f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,44 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEditor;
namespace Vuplex.WebView.Editor {
[CustomEditor(typeof(CanvasWebViewPrefab))]
public class CanvasWebViewPrefabInspector : BaseWebViewPrefabInspector {
public override void OnEnable() {
base.OnEnable();
serializedObject.Update();
_native2DModeEnabled = serializedObject.FindProperty("Native2DModeEnabled");
}
SerializedProperty _native2DModeEnabled;
protected override string _getDocumentationLink() {
return "https://developer.vuplex.com/webview/CanvasWebViewPrefab";
}
protected override void _renderCustomOtherSettings() {
EditorGUILayout.HelpBox("These settings are used with the default rendering mode but are ignored when running in native 2D mode.", MessageType.Info);
}
protected override void _renderCustomPlatformSpecificSettings() {
EditorGUILayout.PropertyField(_native2DModeEnabled);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bf1bcc6f301554381be0e9bdbbaf04b8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,241 @@
/*
* This file is a copy of Unity's [ConditionalCompilationUtility](https://github.com/Unity-Technologies/ConditionalCompilationUtility/tree/f364090bbda3728e1662074c969c2b7c3c34199b)
* with the following modifications:
* - Changed the namespace.
* - Removed the usage of k_EnableCCU and instead hardcoded the use of the Vuplex OptionalDependencyAttribute class.
* - Pasted the license below.
* - Updated ForEachAssembly() to catch TypeLoadException in addition to ReflectionTypeLoadException.
* - Made it so that if an optional dependency is removed, the scripting symbol for it is removed.
* - Made it so that the legacy VUPLEX_CCU scripting symbol previously used by this script is automatically removed from the project.
*
* Unity Companion License 1.0 ("License")
* Copyright (C) 2017-2018 Unity Technologies ApS ("Unity")
*
* Unity hereby grants to you a worldwide, non-exclusive, no-charge, and royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute the software that is made available with this License ("Software"), subject to the following terms and conditions:
*
* 1. Unity Companion Use Only. Exercise of the license granted herein is limited to exercise for the creation, use, and/or distribution of applications, software, or other content pursuant to a valid Unity development engine software license ("Engine License"). That means while use of the Software is not limited to use in the software licensed under the Engine License, the Software may not be used for any purpose other than the creation, use, and/or distribution of Engine License-dependent applications, software, or other content. No other exercise of the license granted herein is permitted.
*
* 2. No Modification of Engine License. Neither this License nor any exercise of the license granted herein modifies the Engine License in any way.
*
* 3. Ownership & Grant Back to You.
*
* 3.1 You own your content. In this License, "derivative works" means derivatives of the Software itself--works derived only from the Software by you under this License (for example, modifying the code of the Software itself to improve its efficacy); "derivative works" of the Software do not include, for example, games, apps, or content that you create using the Software. You keep all right, title, and interest to your own content.
*
* 3.2 Unity owns its content. While you keep all right, title, and interest to your own content per the above, as between Unity and you, Unity will own all right, title, and interest to all intellectual property rights (including patent, trademark, and copyright) in the Software and derivative works of the Software, and you hereby assign and agree to assign all such rights in those derivative works to Unity.
*
* 3.3 You have a license to those derivative works. Subject to this License, Unity grants to you the same worldwide, non-exclusive, no-charge, and royalty-free copyright license to derivative works of the Software you create as is granted to you for the Software under this License.
*
* 4. Trademarks. You are not granted any right or license under this License to use any trademarks, service marks, trade names, products names, or branding of Unity or its affiliates ("Trademarks"). Descriptive uses of Trademarks are permitted; see, for example, Unity's Branding Usage Guidelines at https://unity3d.com/public-relations/brand.
*
* 5. Notices & Third-Party Rights. This License, including the copyright notice above, must be provided in all substantial portions of the Software and derivative works thereof (or, if that is impracticable, in any other location where such notices are customarily placed). Further, if the Software is accompanied by a Unity "third-party notices" or similar file, you acknowledge and agree that software identified in that file is governed by those separate license terms.
*
* 6. DISCLAIMER, LIMITATION OF LIABILITY. THE SOFTWARE AND ANY DERIVATIVE WORKS THEREOF IS PROVIDED ON AN "AS IS" BASIS, AND IS PROVIDED WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND/OR NONINFRINGEMENT. IN NO EVENT SHALL ANY COPYRIGHT HOLDER OR AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES (WHETHER DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL, INCLUDING PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR PROFITS, AND BUSINESS INTERRUPTION), OR OTHER LIABILITY WHATSOEVER, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM OR OUT OF, OR IN CONNECTION WITH, THE SOFTWARE OR ANY DERIVATIVE WORKS THEREOF OR THE USE OF OR OTHER DEALINGS IN SAME, EVEN WHERE ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* 7. USE IS ACCEPTANCE and License Versions. Your receipt and use of the Software constitutes your acceptance of this License and its terms and conditions. Software released by Unity under this License may be modified or updated and the License with it; upon any such modification or update, you will comply with the terms of the updated License for any use of any of the Software under the updated License.
*
* 8. Use in Compliance with Law and Termination. Your exercise of the license granted herein will at all times be in compliance with applicable law and will not infringe any proprietary rights (including intellectual property rights); this License will terminate immediately on any breach by you of this License.
*
* 9. Severability. If any provision of this License is held to be unenforceable or invalid, that provision will be enforced to the maximum extent possible and the other provisions will remain in full force and effect.
*
* 10. Governing Law and Venue. This License is governed by and construed in accordance with the laws of Denmark, except for its conflict of laws rules; the United Nations Convention on Contracts for the International Sale of Goods will not apply. If you reside (or your principal place of business is) within the United States, you and Unity agree to submit to the personal and exclusive jurisdiction of and venue in the state and federal courts located in San Francisco County, California concerning any dispute arising out of this License ("Dispute"). If you reside (or your principal place of business is) outside the United States, you and Unity agree to submit to the personal and exclusive jurisdiction of and venue in the courts located in Copenhagen, Denmark concerning any Dispute.
*/
#if UNITY_EDITOR
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using UnityEditor;
using UnityEditor.Compilation;
using Assembly = System.Reflection.Assembly;
using Debug = UnityEngine.Debug;
using System.Threading;
using VuplexOptionalDependencyAttribute = Vuplex.WebView.Editor.OptionalDependencyAttribute;
namespace Vuplex.WebView.ConditionalCompilation
{
/// <summary>
/// The Conditional Compilation Utility (CCU) will add defines to the build settings once dependendent classes have been detected.
/// A goal of the CCU was to not require the CCU itself for other libraries to specify optional dependencies. So, it relies on the
/// specification of at least one custom attribute in a project that makes use of it. Here is an example:
///
/// [Conditional(UNITY_CCU)] // | This is necessary for CCU to pick up the right attributes
/// public class OptionalDependencyAttribute : Attribute // | Must derive from System.Attribute
/// {
/// public string dependentClass; // | Required field specifying the fully qualified dependent class
/// public string define; // | Required field specifying the define to add
/// }
///
/// Then, simply specify the assembly attribute(s) you created in any of your C# files:
/// [assembly: OptionalDependency("UnityEngine.InputNew.InputSystem", "USE_NEW_INPUT")]
/// [assembly: OptionalDependency("Valve.VR.IVRSystem", "ENABLE_STEAMVR_INPUT")]
///
/// namespace Foo
/// {
/// ...
/// }
/// </summary>
[InitializeOnLoad]
static class ConditionalCompilationUtility
{
const string k_PreviousUnsuccessfulDefines = "ConditionalCompilationUtility.PreviousUnsuccessfulDefines";
public static string[] defines { private set; get; }
static Type _dependencyAttributeType = typeof(VuplexOptionalDependencyAttribute);
static ConditionalCompilationUtility()
{
#if UNITY_2017_3_OR_NEWER
var errorsFound = false;
CompilationPipeline.assemblyCompilationFinished += (outputPath, compilerMessages) =>
{
var errorCount = compilerMessages.Count(m => m.type == CompilerMessageType.Error && m.message.Contains("CS0246"));
if (errorCount > 0 && !errorsFound)
{
var previousDefines = EditorPrefs.GetString(k_PreviousUnsuccessfulDefines);
var currentDefines = string.Join(";", defines);
if (currentDefines != previousDefines)
{
// Store the last set of unsuccessful defines to avoid ping-ponging
EditorPrefs.SetString(k_PreviousUnsuccessfulDefines, currentDefines);
// Since there were errors in compilation, try removing any dependency defines
UpdateDependencies(true);
}
errorsFound = true;
}
};
AssemblyReloadEvents.afterAssemblyReload += () =>
{
if (!errorsFound)
UpdateDependencies();
};
#else
UpdateDependencies();
#endif
}
static void UpdateDependencies(bool reset = false)
{
var buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
if (buildTargetGroup == BuildTargetGroup.Unknown)
{
var propertyInfo = typeof(EditorUserBuildSettings).GetProperty("activeBuildTargetGroup", BindingFlags.Static | BindingFlags.NonPublic);
if (propertyInfo != null)
buildTargetGroup = (BuildTargetGroup)propertyInfo.GetValue(null, null);
}
var previousProjectDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);
var projectDefines = previousProjectDefines.Split(';').ToList();
var ccuDefines = new List<string>();
var conditionalAttributeType = typeof(ConditionalAttribute);
const string kDependentClass = "dependentClass";
const string kDefine = "define";
var dependencies = new Dictionary<string, string>();
ForEachAssembly(assembly =>
{
var typeAttributes = assembly.GetCustomAttributes(_dependencyAttributeType, false);
foreach (var typeAttribute in typeAttributes)
{
// These fields were already validated in a previous step
var dependentClass = _dependencyAttributeType.GetField(kDependentClass).GetValue(typeAttribute) as string;
var define = _dependencyAttributeType.GetField(kDefine).GetValue(typeAttribute) as string;
if (!string.IsNullOrEmpty(dependentClass) && !string.IsNullOrEmpty(define) && !dependencies.ContainsKey(dependentClass))
dependencies.Add(dependentClass, define);
}
});
ForEachAssembly(assembly =>
{
foreach (var dependency in dependencies)
{
var typeName = dependency.Key;
var define = dependency.Value;
var type = assembly.GetType(typeName);
if (type != null)
{
if (!projectDefines.Contains(define, StringComparer.OrdinalIgnoreCase))
projectDefines.Add(define);
ccuDefines.Add(define);
}
}
});
// Remove scripting symbols for optional dependencies that have been removed.
foreach (var define in dependencies.Values)
{
if (projectDefines.Contains(define) && !ccuDefines.Contains(define))
projectDefines.Remove(define);
}
// Remove the legacy VUPLEX_CCU scripting symbol that this script used to add.
if (projectDefines.Contains("VUPLEX_CCU"))
projectDefines.Remove("VUPLEX_CCU");
if (reset)
{
foreach (var define in dependencies.Values)
{
projectDefines.Remove(define);
}
ccuDefines.Clear();
}
ConditionalCompilationUtility.defines = ccuDefines.ToArray();
var newDefines = string.Join(";", projectDefines.ToArray());
if (previousProjectDefines != newDefines)
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, newDefines);
}
static void ForEachAssembly(Action<Assembly> callback)
{
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in assemblies)
{
try
{
callback(assembly);
}
catch (Exception ex) when (ex is ReflectionTypeLoadException || ex is TypeLoadException)
{
// Skip any assemblies that don't load properly
continue;
}
}
}
static void ForEachType(Action<Type> callback)
{
ForEachAssembly(assembly =>
{
var types = assembly.GetTypes();
foreach (var t in types)
callback(t);
});
}
static IEnumerable<Type> GetAssignableTypes(Type type, Func<Type, bool> predicate = null)
{
var list = new List<Type>();
ForEachType(t =>
{
if (type.IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract && (predicate == null || predicate(t)))
list.Add(t);
});
return list;
}
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 55a3f084f6ac84e1db970f412e251da0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,30 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEditor;
namespace Vuplex.WebView.Editor {
/// <summary>
/// Adds a "View documentation" link to the inspector.
/// </summary>
[CustomEditor(typeof(DefaultPointerInputDetector))]
public class DefaultPointerInputDetectorInspector : UnityEditor.Editor {
public override void OnInspectorGUI() {
DocumentationLinkDrawer.DrawDocumentationLink("https://developer.vuplex.com/webview/IPointerInputDetector");
DrawDefaultInspector();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a4161c7b2198c4efcbd3123708e4091a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,29 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEngine;
using UnityEditor;
namespace Vuplex.WebView.Editor {
public static class DocumentationLinkDrawer {
/// <summary>
/// Draws a "View documentation" link.
/// </summary>
public static void DrawDocumentationLink(string url) {
EditorUtils.DrawLink("View documentation", url, 23);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 15705ab5708a341e0a98cb0af0b6fa84
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,154 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using System.IO;
using System.Linq;
using UnityEngine;
using UnityEditor;
using Vuplex.WebView.Internal;
namespace Vuplex.WebView.Editor {
public static class EditorUtils {
public static void CopyAndReplaceDirectory(string srcPath, string dstPath, bool ignoreMetaFiles = true) {
if (Directory.Exists(dstPath)) {
Directory.Delete(dstPath, true);
}
if (File.Exists(dstPath)) {
File.Delete(dstPath);
}
Directory.CreateDirectory(dstPath);
foreach (var file in Directory.GetFiles(srcPath)) {
if (!ignoreMetaFiles || Path.GetExtension(file) != ".meta") {
File.Copy(file, Path.Combine(dstPath, Path.GetFileName(file)));
}
}
foreach (var dir in Directory.GetDirectories(srcPath)) {
CopyAndReplaceDirectory(dir, Path.Combine(dstPath, Path.GetFileName(dir)), ignoreMetaFiles);
}
}
public static void DrawLink(string linkText, string url, int underlineLength) {
var linkStyle = new GUIStyle {
richText = true,
padding = new RectOffset {
top = 2,
bottom = 2
}
};
var linkClicked = GUILayout.Button(
EditorUtils.TextWithColor(linkText, EditorUtils.GetLinkColor()),
linkStyle
);
var linkRect = GUILayoutUtility.GetLastRect();
EditorGUIUtility.AddCursorRect(linkRect, MouseCursor.Link);
// Unity's editor GUI doesn't support underlines, so fake it.
var underscores = new string[underlineLength];
for (var i = 0; i < underlineLength; i++) {
underscores[i] = "_";
}
var underline = String.Join("", underscores);
GUI.Label(
linkRect,
EditorUtils.TextWithColor(underline, EditorUtils.GetLinkColor()),
new GUIStyle {
richText = true,
padding = new RectOffset {
top = 4,
bottom = 2
}
});
if (linkClicked) {
Application.OpenURL(url);
}
}
/// <summary>
/// Returns the path to a given directory, searching for it if needed.
/// If `directoryToSearch` isn't provided, `Application.dataPath` is used.
/// </summary>
public static string FindDirectory(string expectedPath, string directoryToSearch = null, string[] ignorePaths = null) {
if (Directory.Exists(expectedPath)) {
return expectedPath;
}
// The directory isn't in the expected location, so fall back to finding it.
var directoryName = Path.GetFileName(expectedPath);
if (directoryToSearch == null) {
directoryToSearch = Application.dataPath;
}
var directories = Directory.GetDirectories(directoryToSearch, directoryName, SearchOption.AllDirectories);
if (ignorePaths != null) {
directories = directories.ToList().Where(d => !ignorePaths.Contains(d)).ToArray();
}
return _returnOnePathOrThrow(directories, expectedPath, directoryToSearch, true);
}
/// <summary>
/// Returns the path to a given file, searching for it if needed.
/// If `directoryToSearch` isn't provided, `Application.dataPath` is used.
/// </summary>
public static string FindFile(string expectedPath, string directoryToSearch = null) {
if (File.Exists(expectedPath)) {
return expectedPath;
}
// The file isn't in the expected location, so fall back to finding it.
var fileName = Path.GetFileName(expectedPath);
if (directoryToSearch == null) {
directoryToSearch = Application.dataPath;
}
var files = Directory.GetFiles(directoryToSearch, fileName, SearchOption.AllDirectories);
return _returnOnePathOrThrow(files, expectedPath, directoryToSearch);
}
public static string GetLinkColor() => EditorGUIUtility.isProSkin ? "#7faef0ff" : "#11468aff";
public static string TextWithColor(string text, string color) => $"<color={color}>{text}</color>";
public static bool XRSdkIsEnabled(string sdkNameFragment) {
// This approach is taken because the legacy Oculus XR plugin identifies itself as "Oculus", but
// the new XR plugin shows up as two devices named "oculus input" and "oculus display". Similarly,
// the MockHMD plugin used to identify itself as "MockHMD" but now it shows up as "MockHMD Head Tracking"
// and "MockHMD Display".
foreach (var sdkName in VXUtils.XRSettings.supportedDevices) {
if (sdkName.ToLowerInvariant().Contains(sdkNameFragment.ToLowerInvariant())) {
return true;
}
}
return false;
}
static string _returnOnePathOrThrow(string[] paths, string expectedPath, string directorySearched, bool isDirectory = false) {
var itemName = isDirectory ? "directory" : "file";
if (paths.Length == 1) {
return paths[0];
}
var targetFileOrDirectoryName = Path.GetFileName(expectedPath);
if (paths.Length > 1) {
var joinedPaths = String.Join(", ", paths);
throw new Exception($"Unable to determine which version of the {itemName} {targetFileOrDirectoryName} to use because multiple instances ({paths.Length}) were unexpectedly found in the directory {directorySearched}. Please review the list of instances found and remove duplicates so that there is only one: {joinedPaths}");
}
throw new Exception($"Unable to locate the {itemName} {targetFileOrDirectoryName}. It's not in the expected location ({expectedPath}), and no instances were found in the directory {directorySearched}. To resolve this issue, please try deleting your existing Assets/Vuplex directory and reinstalling 3D WebView.");
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 70f8251b128d6ed4fb9dfd2c185496cc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,28 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEngine;
using UnityEditor;
using Vuplex.WebView.Internal;
namespace Vuplex.WebView.Editor {
[CustomPropertyDrawer(typeof(LabelAttribute))]
class LabelDrawer : PropertyDrawer {
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
EditorGUI.PropertyField(position, property, new GUIContent((attribute as LabelAttribute).Label, property.tooltip));
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f7cc4d471c1d54e75b87468526b602cd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,37 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#if UNITY_EDITOR
using System;
using System.Diagnostics;
using Vuplex.WebView.ConditionalCompilation;
namespace Vuplex.WebView.Editor {
/// <summary>
/// From the example of how to use Unity's ConditionalCompilationUtility:
/// https://github.com/Unity-Technologies/ConditionalCompilationUtility/tree/f364090bbda3728e1662074c969c2b7c3c34199b
/// </summary>
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
// Refer to System.Attribute by its full name in case the project has a class named "Attribute" in the global namespace.
public class OptionalDependencyAttribute : System.Attribute {
public string dependentClass;
public string define;
public OptionalDependencyAttribute(string dependentClass, string define) {
this.dependentClass = dependentClass;
this.define = define;
}
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 36b97f9b079074ee685a6ee41adc0f3b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,27 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// This can't be imported as just OptionalDependencyAttribute because
// it would clash with other packages that define that attribute, like
// XR Interaction Toolkit.
#if UNITY_EDITOR
using VuplexOptionalDependencyAttribute = Vuplex.WebView.Editor.OptionalDependencyAttribute;
// Detect if specific packages are installed and, if so,
// define scripting symbols so that 3D WebView can handle them.
[assembly: VuplexOptionalDependency("Unity.XR.Oculus.OculusLoader", "VUPLEX_OCULUS")]
[assembly: VuplexOptionalDependency("OVRProjectConfig", "VUPLEX_OCULUS_PROJECT_CONFIG")]
[assembly: VuplexOptionalDependency("UnityEngine.XR.Interaction.Toolkit.XRBaseInteractor", "VUPLEX_XR_INTERACTION_TOOLKIT")]
[assembly: VuplexOptionalDependency("Microsoft.MixedReality.Toolkit.MixedRealityToolkit", "VUPLEX_MRTK")]
[assembly: VuplexOptionalDependency("Vuplex.WebView.StandaloneWebPlugin", "VUPLEX_STANDALONE")]
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e6ee0f86057d9439896db7eb0e9cf5da
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,25 @@
// Copyright (c) 2023 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using UnityEditor;
namespace Vuplex.WebView.Editor {
[CustomEditor(typeof(WebViewPrefab))]
public class WebViewPrefabInspector : BaseWebViewPrefabInspector {
protected override string _getDocumentationLink() {
return "https://developer.vuplex.com/webview/WebViewPrefab";
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b88a73aa4eea34b3eb0c643e900629a0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7db53a5c7645d49dc9cb47325b1c4c44
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c9e0722a5d73544aea97fc9f27d57a28
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: 9f7b60728c99d4fe6b67e0d86b1e7b5e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e215f6e969624419f9f78abee1aacc76
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d50ed4d84413b4b38aef9d7a59ed5f22
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,91 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: AndroidWebMaterial
m_Shader: {fileID: 4800000, guid: 6e30a287c37c64ea8a78626f476223bb, type: 3}
m_ShaderKeywords: FLIP_Y _ALPHATEST_ON _STEREOMODE_NONE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: -1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _ColorMask: 15
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableGammaCorrection: 0
- _FlipX: 0
- _FlipY: 1
- _Gamma: 0.6
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 1
- _OcclusionStrength: 1
- _OverrideStereoToMono: 0
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _StereoMode: 0
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _CropRect: {r: 0, g: 0, b: 0, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _VideoCutoutRect: {r: 0, g: 0, b: 0, a: 0}

View File

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

View File

@ -0,0 +1,91 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DefaultWebMaterial
m_Shader: {fileID: 4800000, guid: 4e653f72759f94e82b22355692823efe, type: 3}
m_ShaderKeywords: FLIP_Y _ALPHATEST_ON _STEREOMODE_NONE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: -1, y: -1}
m_Offset: {x: 1, y: 1}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _ColorMask: 15
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableGammaCorrection: 0
- _FlipX: 0
- _FlipY: 1
- _Gamma: 0.6
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 1
- _OcclusionStrength: 1
- _OverrideStereoToMono: 0
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _StereoMode: 0
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _CropRect: {r: 0, g: 0, b: 0, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _VideoCutoutRect: {r: 0, g: 0, b: 0, a: 0}

View File

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

Some files were not shown because too many files have changed in this diff Show More