Upgraded original RothenburgAR to Unity version 2017.4.5f1 (and upgrading from standalone vuforia to the version integrated in unity)

This commit is contained in:
2018-08-03 15:43:36 +02:00
parent 64f296a0aa
commit 13041e7a70
738 changed files with 592316 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: e25274c7177251946800c819216d8665
folderAsset: yes
timeCreated: 1496753302
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,67 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: HighlightCircle
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 1107818239305008406}
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 &1102861046771563702
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: highlight_rotation
m_Speed: 0.1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 7400000, guid: eb7b2ca60ac8fcf4c8ee87f07366b3d6, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1107 &1107818239305008406
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102861046771563702}
m_Position: {x: 96, y: 168, 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: 1102861046771563702}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: ad28deab8f3100544b60e8cd26ecea3a
timeCreated: 1505939654
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d53ce2fe90bd91849abf841a1106d6cd
folderAsset: yes
timeCreated: 1506324310
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: EndHighlight
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: ea6936bba3fbdb1418795e10dd50df9b
timeCreated: 1507029143
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Highlighted
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 9abd3ea2718741543874c4d85443a44f
timeCreated: 1507028819
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 57b8b2fadb5df674a8ce10aba22b4acd
timeCreated: 1506284002
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: PoiFadeInAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5d1a776f4f9307f4babe1301fe86f8f0
timeCreated: 1506284300
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: PoiFadeOutAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 2253d34f4cae9da4bbe339a901b22afd
timeCreated: 1506284220
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: PoiFadedIn
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f52892a27e3c14e419858f151ecbecbf
timeCreated: 1506288411
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: PoiFadedOut
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.11666667
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.11666667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 40fee42385eca5d418b340805ed83c52
timeCreated: 1506286044
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,53 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: PoiRotateAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 897939fbbb0ee8c4e85abd5c9be41bfb
timeCreated: 1506284115
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: StartHighlight
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.49803922
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 696c5f65a860c5f4dbabdea4a0441dd7
timeCreated: 1507028795
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: TitlePoiFadeInAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: e2540c6f377192241bc3c2e0e8d9688b
timeCreated: 1506325427
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: TitlePoiFadeOutAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 7bed771a6542c874bb7f0174f9a84a56
timeCreated: 1506325387
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: TitlePoiFadedInAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 987a1c68a17f8374d9a854d3bc9c33a4
timeCreated: 1506325304
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,257 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: TitlePoiFadedOutAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 607266563
attribute: 2526845255
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 4215373228
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 2334886179
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 607266563
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.r
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.g
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.b
path: Image/poiSprite
classID: 212
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: Image/poiSprite
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f0b59110ff4069d4e8a51c03cf8dcd23
timeCreated: 1506325338
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5434795f27aacc344874e98034cfdeb8
folderAsset: yes
timeCreated: 1506966594
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,273 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: ReticuleAnimatiorController
serializedVersion: 5
m_AnimatorParameters:
- m_Name: CanTriggerPoi
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: 1107851386079098434}
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!1101 &1101204873836367910
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: CanTriggerPoi
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102266488374849876}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.99
m_HasExitTime: 1
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1101474240558119450
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: CanTriggerPoi
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102621467647894126}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1101498368721347436
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: CanTriggerPoi
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102510444308029512}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1101671527080899102
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102203887685227572}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.99
m_HasExitTime: 1
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1101888823084302754
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: CanTriggerPoi
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102621467647894126}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.0355842
m_TransitionOffset: 0
m_ExitTime: 0.9486722
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 2
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &1102203887685227572
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Hollow
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101498368721347436}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 7400000, guid: edd33a5707a83dd448128f7e344fe868, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1102 &1102266488374849876
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Filled
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101474240558119450}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 7400000, guid: f54bd8107c5ebc044a90f7cfe46dd310, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1102 &1102510444308029512
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: ReticuleFillAnimation
m_Speed: 4.5
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101204873836367910}
- {fileID: 1101888823084302754}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 7400000, guid: bc4850a0661df5246b614ad659b96ec1, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1102 &1102621467647894126
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: ReticuleHollowAnimation
m_Speed: 5
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101671527080899102}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 7400000, guid: 8c731bf28dc5d634b97f69d7b826cc53, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1107 &1107851386079098434
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102203887685227572}
m_Position: {x: 264, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102266488374849876}
m_Position: {x: 540, y: 204, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102510444308029512}
m_Position: {x: 264, y: 204, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102621467647894126}
m_Position: {x: 540, y: 120, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 48, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 1102203887685227572}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 0ee2f5feba4671f4893e80ceb40ab892
timeCreated: 1506966424
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,155 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: ReticuleFillAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 3747441678
attribute: 1967290853
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3747441678
attribute: 38095219
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: bc4850a0661df5246b614ad659b96ec1
timeCreated: 1506966503
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,155 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: ReticuleFilled
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 3747441678
attribute: 1967290853
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3747441678
attribute: 38095219
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f54bd8107c5ebc044a90f7cfe46dd310
timeCreated: 1506968172
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,155 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: ReticuleHollow
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 3747441678
attribute: 1967290853
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3747441678
attribute: 38095219
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: edd33a5707a83dd448128f7e344fe868
timeCreated: 1506968179
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,155 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: ReticuleHollowAnimation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 3747441678
attribute: 1967290853
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3747441678
attribute: 38095219
script: {fileID: 0}
typeID: 224
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.x
path: Mask
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 16
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 32
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_SizeDelta.y
path: Mask
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 8c731bf28dc5d634b97f69d7b826cc53
timeCreated: 1506966515
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,175 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: highlight_rotation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: -360}
tangentMode: 0
- serializedVersion: 2
time: 1
value: {x: 0, y: 0, z: -360}
inSlope: {x: 0, y: 0, z: -360}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 4
script: {fileID: 0}
typeID: 4
customType: 14
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: -360
tangentMode: 69
- serializedVersion: 2
time: 1
value: -360
inSlope: -360
outSlope: 0
tangentMode: 69
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.z
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves:
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path:
classID: 224
script: {fileID: 0}
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: eb7b2ca60ac8fcf4c8ee87f07366b3d6
timeCreated: 1505939767
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,101 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: poi_model_rotation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 72, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 10
value: {x: 0, y: 720, z: 0}
inSlope: {x: 0, y: 72, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 4
script: {fileID: 0}
typeID: 4
customType: 14
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 10
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 72
tangentMode: 69
- serializedVersion: 2
time: 10
value: 720
inSlope: 72
outSlope: 0
tangentMode: 69
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path:
classID: 4
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_Events: []

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 174e4b3b259f9b746b9fc42d7fd4b36d
timeCreated: 1505142629
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5e46c141403bc5443bb8e898acacc173
timeCreated: 1493579860
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5da02fca382ed9a4a9d02388b14c1835
folderAsset: yes
timeCreated: 1494843701
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 0a938669bad36624780c0f1e6fd9ae30
folderAsset: yes
timeCreated: 1506962180
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,88 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using NUnit.Framework;
using NUnit.Framework.Constraints;
using RothenburgAR.Common;
using RothenburgAR.Exhibition;
using UnityEngine;
namespace RothenburgAR
{
public class ExhibitionXmlPreloaderTest
{
[Test]
public void CanLoadExhibitionDirectory()
{
// TODO: Implement test
}
[Test]
public void PreloadExhibition()
{
string t_german = "Hallo Welt";
string t_english = "Hello World";
ExhibitionXmlPreloader exhibitionXmlPreloader = new ExhibitionXmlPreloader();
var testDirectory = PathHelper.GetTemporaryDirectoryPath();
Assert.IsFalse(exhibitionXmlPreloader.CanLoadExhibitionDirectory(testDirectory));
string xmlFilePath = PathHelper.GetXmlPathFromDirectoryPath(testDirectory);
File.WriteAllText(xmlFilePath, "<exhibition id='test-exhibition01'>" +
" <exhibit id='test-exhibit01'>" +
" <title>" +
" <dimensions width='200' height='45'/>" +
" <font size='40'/>" +
" <position x='0' y='0' z='0'/>" +
" <rotation x='0' y='0' z='0'/>" +
" <text lang='de' type='inline' value='" + t_german + "'/>" +
" <text lang='en' type='inline' value='" + t_english + "'/>" +
" </title>" +
" <description>" +
" <text lang='de' type='inline' value='" + t_german + "'/>" +
" <text lang='en' type='inline' value='" + t_english + "'/>" +
" </description>" +
" <poiList>" +
" <poi ref-id='malchus01'/>" +
" <poi ref-id='malchus02'>" +
" <position x='0' y='0' z='0'/>" +
" </poi>" +
" </poiList>" +
" </exhibit>" +
"</exhibition>");
// Write dummy tracker data
File.WriteAllText(Path.Combine(testDirectory, "tracker.xml"), "dummy");
File.WriteAllText(Path.Combine(testDirectory, "tracker.dat"), "dummy");
Assert.IsTrue(exhibitionXmlPreloader.CanLoadExhibitionDirectory(testDirectory));
PreloadedExhibition p = exhibitionXmlPreloader.PreloadExhibition(testDirectory);
Assert.AreEqual("test-exhibition01", p.ID);
Assert.AreEqual(1, p.ContainedExhibits.Count);
var testExhibit = p.ContainedExhibits[0];
Assert.AreEqual("test-exhibit01", testExhibit.ID);
Assert.AreEqual(2, p.ContainedExhibits[0].ReferencedPoiEntries.Count);
Assert.AreEqual(testExhibit.ReferencedPoiEntries[0].ReferencedId, "malchus01");
Assert.IsFalse(testExhibit.ReferencedPoiEntries[0].Position.HasValue);
Assert.IsFalse(testExhibit.ReferencedPoiEntries[0].Rotation.HasValue);
Assert.IsFalse(testExhibit.ReferencedPoiEntries[0].Scale.HasValue);
Assert.IsTrue(testExhibit.ReferencedPoiEntries[1].Position.HasValue);
Assert.IsFalse(testExhibit.ReferencedPoiEntries[1].Rotation.HasValue);
Assert.IsFalse(testExhibit.ReferencedPoiEntries[1].Scale.HasValue);
Assert.NotNull(testExhibit.Description);
Assert.IsTrue(testExhibit.Title.HasValue);
Assert.AreEqual(40f, testExhibit.Title.Value.FontSize);
Assert.AreEqual(45f, testExhibit.Title.Value.BoxHeight);
Assert.AreEqual(200f, testExhibit.Title.Value.BoxWidth);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: d70d5c9cd8a8431458b8cb05fac7c446
timeCreated: 1495458492
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,124 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using NUnit.Framework;
using RothenburgAR.Common;
using RothenburgAR.PointOfInterest;
using UnityEngine;
namespace RothenburgAR
{
public class PoiXmlPreloaderTest
{
[Test]
public void CanLoadPoiDirectory()
{
// Setup the directory
var testDirectory = PathHelper.GetTemporaryDirectoryPath();
PoiXmlPreloader poiXmlPreloader = new PoiXmlPreloader();
Assert.AreEqual(false, poiXmlPreloader.CanLoadPoiDirectory(testDirectory));
// Create the XML path
string xmlFilePath = PathHelper.GetXmlPathFromDirectoryPath(testDirectory);
File.WriteAllText(xmlFilePath, "<poi/>");
Assert.AreEqual(true, poiXmlPreloader.CanLoadPoiDirectory(testDirectory));
Directory.Delete(testDirectory, true);
Assert.AreEqual(false, poiXmlPreloader.CanLoadPoiDirectory(testDirectory));
}
[Test]
public void GetXmlPathFromStr()
{
for (var n = 0; n < 10; n++)
{
var dirname = Path.GetRandomFileName();
var dirpath = Path.Combine(Path.GetTempPath(), dirname);
var expected = Path.Combine(dirpath, dirname + ".xml");
Assert.AreEqual(expected, PathHelper.GetXmlPathFromDirectoryPath(dirpath));
}
}
[Test]
public void PreloadPoi()
{
var t_german = "Hallo Welt";
var t_english = "Hello World";
PoiXmlPreloader poiXmlPreloader = new PoiXmlPreloader();
// Setup the directory
var testDirectory = PathHelper.GetTemporaryDirectoryPath();
string xmlFilePath = PathHelper.GetXmlPathFromDirectoryPath(testDirectory);
string textFile_english = Path.Combine(testDirectory, "test_english.txt");
File.WriteAllText(textFile_english, t_english);
Assert.IsFalse(poiXmlPreloader.CanLoadPoiDirectory(testDirectory));
Assert.Throws<FileNotFoundException>(delegate { poiXmlPreloader.PreloadPoi(testDirectory); });
// Write invalid XML
File.WriteAllText(xmlFilePath, "<poi>" +
" <description>" +
" <text lang='de' type='inline' value='" + t_german + "'/>" +
" <text lang='en' type='file' value='" + textFile_english + "'/>" +
" </description>" +
"</poi>");
Assert.IsTrue(poiXmlPreloader.CanLoadPoiDirectory(testDirectory));
Assert.Throws<InvalidXMLException>(delegate { poiXmlPreloader.PreloadPoi(testDirectory); });
// Write valid XML
File.WriteAllText(xmlFilePath, "<poi id='testPoi'>" +
" <sprite path='test.png'/>" +
" <description>" +
" <text lang='de' type='inline' value='" + t_german + "'/>" +
" <text lang='en' type='file' value='" + textFile_english + "'/>" +
" </description>" +
"</poi>");
var pngPath = Path.Combine(testDirectory, "test.png");
// WriteTestPng(pngPath);
poiXmlPreloader = new PoiXmlPreloader();
PoiData poiData = poiXmlPreloader.PreloadPoi(testDirectory);
Assert.NotNull(poiData);
Assert.AreEqual("testPoi", poiData.ID);
}
private void WriteTestPng(string path)
{
byte[] pngBytes = new byte[]
{
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x02, 0x2E,
0x02, 0x00, 0x00, 0x01, 0x57, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xA5, 0x57, 0xD1, 0xAD, 0xC4,
0x30, 0x08, 0x83, 0x81, 0x32, 0x4A, 0x66, 0xC9, 0x36, 0x99, 0x85, 0x45, 0xBC, 0x4E, 0x74, 0xBD,
0x8F, 0x9E, 0x5B, 0xD4, 0xE8, 0xF1, 0x6A, 0x7F, 0xDD, 0x29, 0xB2, 0x55, 0x0C, 0x24, 0x60, 0xEB,
0x0D, 0x30, 0xE7, 0xF9, 0xF3, 0x85, 0x40, 0x74, 0x3F, 0xF0, 0x52, 0x00, 0xC3, 0x0F, 0xBC, 0x14,
0xC0, 0xF4, 0x0B, 0xF0, 0x3F, 0x01, 0x44, 0xF3, 0x3B, 0x3A, 0x05, 0x8A, 0x41, 0x67, 0x14, 0x05,
0x18, 0x74, 0x06, 0x4A, 0x02, 0xBE, 0x47, 0x54, 0x04, 0x86, 0xEF, 0xD1, 0x0A, 0x02, 0xF0, 0x84,
0xD9, 0x9D, 0x28, 0x08, 0xDC, 0x9C, 0x1F, 0x48, 0x21, 0xE1, 0x4F, 0x01, 0xDC, 0xC9, 0x07, 0xC2,
0x2F, 0x98, 0x49, 0x60, 0xE7, 0x60, 0xC7, 0xCE, 0xD3, 0x9D, 0x00, 0x22, 0x02, 0x07, 0xFA, 0x41,
0x8E, 0x27, 0x4F, 0x31, 0x37, 0x02, 0xF9, 0xC3, 0xF1, 0x7C, 0xD2, 0x16, 0x2E, 0xE7, 0xB6, 0xE5,
0xB7, 0x9D, 0xA7, 0xBF, 0x50, 0x06, 0x05, 0x4A, 0x7C, 0xD0, 0x3B, 0x4A, 0x2D, 0x2B, 0xF3, 0x97,
0x93, 0x35, 0x77, 0x02, 0xB8, 0x3A, 0x9C, 0x30, 0x2F, 0x81, 0x83, 0xD5, 0x6C, 0x55, 0xFE, 0xBA,
0x7D, 0x19, 0x5B, 0xDA, 0xAA, 0xFC, 0xCE, 0x0F, 0xE0, 0xBF, 0x53, 0xA0, 0xC0, 0x07, 0x8D, 0xFF,
0x82, 0x89, 0xB4, 0x1A, 0x7F, 0xE5, 0xA3, 0x5F, 0x46, 0xAC, 0xC6, 0x0F, 0xBA, 0x96, 0x1C, 0xB1,
0x12, 0x7F, 0xE5, 0x33, 0x26, 0xD2, 0x4A, 0xFC, 0x41, 0x07, 0xB3, 0x09, 0x56, 0xE1, 0xE3, 0xA1,
0xB8, 0xCE, 0x3C, 0x5A, 0x81, 0xBF, 0xDA, 0x43, 0x73, 0x75, 0xA6, 0x71, 0xDB, 0x7F, 0x0F, 0x29,
0x24, 0x82, 0x95, 0x08, 0xAF, 0x21, 0xC9, 0x9E, 0xBD, 0x50, 0xE6, 0x47, 0x12, 0x38, 0xEF, 0x03,
0x78, 0x11, 0x2B, 0x61, 0xB4, 0xA5, 0x0B, 0xE8, 0x21, 0xE8, 0x26, 0xEA, 0x69, 0xAC, 0x17, 0x12,
0x0F, 0x73, 0x21, 0x29, 0xA5, 0x2C, 0x37, 0x93, 0xDE, 0xCE, 0xFA, 0x85, 0xA2, 0x5F, 0x69, 0xFA,
0xA5, 0xAA, 0x5F, 0xEB, 0xFA, 0xC3, 0xA2, 0x3F, 0x6D, 0xFA, 0xE3, 0xAA, 0x3F, 0xEF, 0xFA, 0x80,
0xA1, 0x8F, 0x38, 0x04, 0xE2, 0x8B, 0xD7, 0x43, 0x96, 0x3E, 0xE6, 0xE9, 0x83, 0x26, 0xE1, 0xC2,
0xA8, 0x2B, 0x0C, 0xDB, 0xC2, 0xB8, 0x2F, 0x2C, 0x1C, 0xC2, 0xCA, 0x23, 0x2D, 0x5D, 0xFA, 0xDA,
0xA7, 0x2F, 0x9E, 0xFA, 0xEA, 0xAB, 0x2F, 0xDF, 0xF2, 0xFA, 0xFF, 0x01, 0x1A, 0x18, 0x53, 0x83,
0xC1, 0x4E, 0x14, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82,
};
File.WriteAllBytes(path, pngBytes);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1784a71b145a5324fa99639345ce17a4
timeCreated: 1494929062
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,106 @@
using System;
using UnityEngine;
using UnityEditor;
using UnityEngine.TestTools;
using NUnit.Framework;
using System.Collections;
using System.IO;
using RothenburgAR.Common;
namespace RothenburgAR
{
public class TextElementTest
{
[Test]
public void AddEntriesInline()
{
string t_german = "Hallo Welt";
string t_english = "Hello World";
TextElement te = new TextElement();
te.AddTextElement("de", TextEntryType.Inline, t_german);
te.AddTextElement("en", TextEntryType.Inline, t_english);
Assert.AreEqual(2, te.EntryAmount);
Assert.AreEqual(t_german, te.GetTextByLanguage("de"));
Assert.AreEqual(t_english, te.GetTextByLanguage("en"));
}
[Test]
public void AddEntriesFile()
{
var testDirectory = TestContext.CurrentContext.TestDirectory;
string path_german = Path.GetTempFileName();
string path_english = Path.GetTempFileName();
string path_japan = "undefined file.txt";
string t_german = "Hallo Welt";
string t_english = "Hello World";
// Write test files
// Do not create japan file - so we can test FileNotFoundException
using (StreamWriter outputFile = new StreamWriter(path_german))
{
outputFile.Write(t_german);
outputFile.Close();
}
using (StreamWriter outputFile = new StreamWriter(path_english))
{
outputFile.Write(t_english);
outputFile.Close();
}
TextElement te = new TextElement();
te.AddTextElement("de", TextEntryType.File, path_german);
te.AddTextElement("en", TextEntryType.File, path_english);
Assert.AreEqual(2, te.EntryAmount);
Assert.AreEqual(t_german, te.GetTextByLanguage("de"));
Assert.AreEqual(t_english, te.GetTextByLanguage("en"));
// Test for Exception thrown if file does not exist
te.AddTextElement("jp", TextEntryType.File, path_japan);
Assert.AreEqual(3, te.EntryAmount);
Assert.Throws<FileNotFoundException>(delegate { te.GetTextByLanguage("jp"); });
}
[Test]
public void AddEntryInvalid()
{
TextElement te = new TextElement();
te.AddTextElement("de", TextEntryType.Invalid, "TEST");
Assert.AreEqual(0, te.EntryAmount);
Assert.AreEqual(null, te.GetTextByLanguage("de"));
}
[Test]
public void AddEntryErrors()
{
TextElement te = new TextElement();
te.AddTextElement("de", TextEntryType.Inline, "TEST");
Assert.AreEqual(1, te.EntryAmount);
Assert.Throws<Exception>(delegate { te.AddTextElement("de", TextEntryType.Inline, "TEST"); });
}
[Test]
public void GetTextEntryTypeFromString()
{
Assert.AreEqual(TextEntryType.Inline, TextElement.GetTextEntryTypeFromString("inline"));
Assert.AreEqual(TextEntryType.Inline, TextElement.GetTextEntryTypeFromString("INLINE"));
Assert.AreEqual(TextEntryType.Inline, TextElement.GetTextEntryTypeFromString("InLiNe"));
Assert.AreEqual(TextEntryType.File, TextElement.GetTextEntryTypeFromString("file"));
Assert.AreEqual(TextEntryType.File, TextElement.GetTextEntryTypeFromString("FILE"));
Assert.AreEqual(TextEntryType.File, TextElement.GetTextEntryTypeFromString("FiLe"));
Assert.AreEqual(TextEntryType.Invalid, TextElement.GetTextEntryTypeFromString("adasd"));
Assert.AreEqual(TextEntryType.Invalid, TextElement.GetTextEntryTypeFromString("NIUH"));
Assert.AreEqual(TextEntryType.Invalid, TextElement.GetTextEntryTypeFromString("%2ius78T"));
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8f35f3a30013b6f4cbd0d96f256e25e8
timeCreated: 1494843707
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e76414ab688eda249b57aaa669cb6253
timeCreated: 1496341300
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: a3e42701cc7d04745bcf6f0cd1875cab
folderAsset: yes
timeCreated: 1494766425
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,54 @@
using RothenburgAR.Common;
using RothenburgAR.Exhibition;
using RothenburgAR.PointOfInterest;
using RothenburgAR.UI;
using UnityEngine;
using Vuforia;
namespace RothenburgAR
{
public class AppInitializerBehaviour : MonoBehaviour
{
public Camera UICamera;
private LogFileHandler logFileHandler = null;
// Use this for initialization
void Start()
{
#if !UNITY_EDITOR
logFileHandler = new LogFileHandler();
#else
Debug.Log("Found Unity Editor; Disabled logging into file.");
#endif
LanguageManager.Instance.LoadLanguagesFromXml();
UIColorSchemeManager.Instance.Initialize();
VuforiaARController.Instance.RegisterVuforiaInitializedCallback(InitializeData);
UIManager.Instance.Initialize();
UIManager.Instance.SetUiCamera(UICamera);
UIManager.Instance.InitStartView();
InputManager.Instance.Initialize();
}
void InitializeData()
{
PoiDataManager.Instance.AddPoiDataSourcePath(PathHelper.POIPath);
PoiDataManager.Instance.AddPoiPreloader(new PoiXmlPreloader());
PoiDataManager.Instance.LoadEverySourcePath();
ExhibitionManager.Instance.AddExhibitionSourcePath(PathHelper.ExhibitionPath);
ExhibitionManager.Instance.AddExhibitionPreloader(new ExhibitionXmlPreloader());
ExhibitionManager.Instance.LoadEverySourcePath(
(int maxPaths, int currentPaths, int subMaxExhibitions, int subCurrentExhibition) =>
{
Debug.Log("<color=green>Done " + subCurrentExhibition + " of " + subMaxExhibitions +
" Exhibitions of Path " + currentPaths + " of " + maxPaths + " paths.</color>");
});
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a28e5d11e876df248b363a6a0aebcda7
timeCreated: 1505842230
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 3c7d6668349086e4c9fac09c3d5b631f
folderAsset: yes
timeCreated: 1497774091
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,38 @@
using System;
namespace RothenburgAR.Common
{
public class InvalidXMLException : Exception
{
public InvalidXMLException()
{
}
public InvalidXMLException(string message)
: base(message)
{
}
public InvalidXMLException(string message, Exception inner)
: base(message, inner)
{
}
};
public class AlreadyInitializedException : Exception
{
public AlreadyInitializedException()
{
}
public AlreadyInitializedException(string message)
: base(message)
{
}
public AlreadyInitializedException(string message, Exception inner)
: base(message, inner)
{
}
};
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 89e15e6ee2a7fec438cffadb980c3d4a
timeCreated: 1496227405
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,84 @@
using System;
using System.IO;
using UnityEngine;
namespace RothenburgAR.Common
{
public class LogFileHandler : ILogHandler
{
private StreamWriter m_StreamWriter;
private ILogHandler m_DefaultLogHandler = Debug.unityLogger.logHandler;
public LogFileHandler()
{
string logFileDirectory = Path.Combine(Application.persistentDataPath, "logs");
if (!Directory.Exists(logFileDirectory))
Directory.CreateDirectory(logFileDirectory);
DeleteOldLogs();
string date = DateTime.Now.ToString("yyyy-MM-dd.hh-mm-ss");
string filePath = Path.Combine(logFileDirectory, date + ".log.txt");
var m_FileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
m_StreamWriter = new StreamWriter(m_FileStream);
// Replace the default debug log handler
Debug.unityLogger.logHandler = this;
}
private void DeleteOldLogs()
{
string logFileDirectory = Path.Combine(Application.persistentDataPath, "logs");
var numberOfFilesToKeep = 30;
var filePaths = Directory.GetFiles(logFileDirectory);
for (var n = 0; n < filePaths.Length - numberOfFilesToKeep; n++)
{
File.Delete(filePaths[n]);
}
}
public void LogFormat(LogType logType, UnityEngine.Object context, string format, params object[] args)
{
var sDate = DateTime.Now.ToString("ddd dd-MM-yyyy hh:mm:ss");
var prefix = sDate + " - " + logType.ToString() + " :: ";
m_StreamWriter.WriteLine(String.Format(prefix + format, args));
m_StreamWriter.Flush();
var color = getColorByLogType(logType);
string newFormat = format;
if (color != null)
{
newFormat = prefix + "<color=" + color + ">" + format + "</color>";
}
m_DefaultLogHandler.LogFormat(logType, context, newFormat, args);
}
private string getColorByLogType(LogType logType)
{
switch (logType)
{
case LogType.Assert:
return "yellow";
case LogType.Error:
case LogType.Exception:
return "red";
case LogType.Warning:
return "orange";
case LogType.Log:
default:
return null;
}
}
public void LogException(Exception exception, UnityEngine.Object context)
{
m_DefaultLogHandler.LogException(exception, context);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 910cb38a0e7849c44bd1cd6c3576a2bf
timeCreated: 1497290914
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,56 @@
using System.IO;
using UnityEngine;
namespace RothenburgAR.Common
{
public class PathHelper
{
public static string DataPath
{
get { return Path.Combine(Application.persistentDataPath, "data"); }
}
public static string POIPath
{
get { return Path.Combine(DataPath, "poi"); }
}
public static string ExhibitionPath
{
get { return Path.Combine(DataPath, "exhibition"); }
}
public static bool DataPathExists
{
get { return Directory.Exists(DataPath); }
}
public static bool POIPathExists
{
get { return Directory.Exists(POIPath); }
}
public static bool ExhibitPathExists
{
get { return Directory.Exists(ExhibitionPath); }
}
public static string GetXmlPathFromDirectoryPath(string poiDirectory)
{
string directoryName = new DirectoryInfo(poiDirectory).Name;
string xmlFileName = directoryName + ".xml";
string xmlFilePath = Path.Combine(poiDirectory, xmlFileName);
return xmlFilePath;
}
// Source: http://stackoverflow.com/questions/278439/creating-a-temporary-directory-in-windows
public static string GetTemporaryDirectoryPath()
{
string tempFolder = Path.GetTempFileName();
File.Delete(tempFolder);
Directory.CreateDirectory(tempFolder);
return tempFolder;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: dfa74881e82f0cc4989c94b69e123c3b
timeCreated: 1494525990
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,84 @@
using UnityEngine;
namespace RothenburgAR.Common
{
// Source : http://wiki.unity3d.com/index.php/Singleton
/// <summary>
/// Be aware this will not prevent a non singleton constructor
/// such as `T myT = new T();`
/// To prevent that, add `protected T () {}` to your singleton class.
///
/// As a note, this is made as MonoBehaviour because we need Coroutines.
/// </summary>
public class Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
private static T _instance;
private static object _lock = new object();
public static T Instance
{
get
{
if (applicationIsQuitting)
{
Debug.LogWarning("[Singleton] Instance '" + typeof(T) +
"' already destroyed on application quit." +
" Won't create again - returning null.");
return null;
}
lock (_lock)
{
if (_instance == null)
{
_instance = (T) FindObjectOfType(typeof(T));
if (FindObjectsOfType(typeof(T)).Length > 1)
{
Debug.LogError("[Singleton] Something went really wrong " +
" - there should never be more than 1 singleton!" +
" Reopening the scene might fix it.");
return _instance;
}
if (_instance == null)
{
GameObject singleton = new GameObject();
_instance = singleton.AddComponent<T>();
singleton.name = "(singleton) " + typeof(T).ToString();
DontDestroyOnLoad(singleton);
Debug.Log("[Singleton] An instance of " + typeof(T) +
" is needed in the scene, so '" + singleton +
"' was created with DontDestroyOnLoad.");
}
else
{
Debug.Log("[Singleton] Using instance already created: " +
_instance.gameObject.name);
}
}
return _instance;
}
}
}
private static bool applicationIsQuitting = false;
/// <summary>
/// When Unity quits, it destroys objects in a random order.
/// In principle, a Singleton is only destroyed when application quits.
/// If any script calls Instance after it have been destroyed,
/// it will create a buggy ghost object that will stay on the Editor scene
/// even after stopping playing the Application. Really bad!
/// So, this was made to be sure we're not creating that buggy ghost object.
/// </summary>
public void OnDestroy()
{
applicationIsQuitting = true;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: eeb05f63fae69254a81f3c4455257e95
timeCreated: 1496230840
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,122 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
namespace RothenburgAR.Common
{
public class TextElement
{
private Dictionary<string, TextEntryLanguageEntry> TextEntries { get; set; }
public int EntryAmount
{
get { return TextEntries.Count; }
}
public TextElement()
{
TextEntries = new Dictionary<string, TextEntryLanguageEntry>();
}
public void AddTextElement(string languageKey, TextEntryType type, string value)
{
if (type == TextEntryType.Invalid)
return;
if (TextEntries.ContainsKey(languageKey))
throw new Exception("Already defined: " + languageKey);
TextEntries.Add(languageKey, new TextEntryLanguageEntry(type, value));
}
public string GetTextByLanguage(string langKey)
{
TextEntryLanguageEntry te;
if (TextEntries.TryGetValue(langKey, out te)) return te.Text;
if (LanguageManager.Instance.DefaultLanguageKey != langKey)
return GetTextByLanguage(LanguageManager.Instance.DefaultLanguageKey);
else
return LanguageManager.ERR_NO_TEXT_FOR_LANG;
}
public static TextEntryType GetTextEntryTypeFromString(string text)
{
switch (text.ToLower())
{
case "inline":
return TextEntryType.Inline;
case "file":
return TextEntryType.File;
default:
return TextEntryType.Invalid;
}
}
public static TextElement BuildFromXmlNode(string basePath, XmlNodeList xmlNodeList)
{
TextElement textElement = new TextElement();
foreach (XmlNode xmlNode in xmlNodeList)
{
if (xmlNode == null || xmlNode.Attributes == null)
throw new ArgumentNullException();
if (xmlNode.Attributes["lang"] == null)
throw new Exception("Attribute lang is not defined.");
if (xmlNode.Attributes["value"] == null)
throw new Exception("Attribute value is not defined.");
if (xmlNode.Attributes["type"] == null)
throw new Exception("Attribute type is not defined.");
var langCode = xmlNode.Attributes["lang"].Value;
var typeStr = xmlNode.Attributes["type"].Value;
TextEntryType type = TextElement.GetTextEntryTypeFromString(typeStr);
var valueStr = xmlNode.Attributes["value"].Value;
if (type == TextEntryType.File)
valueStr = Path.Combine(basePath, valueStr);
textElement.AddTextElement(langCode, type, valueStr);
}
return textElement;
}
}
public enum TextEntryType
{
Invalid = 0,
Inline = 1,
File = 2
}
public class TextEntryLanguageEntry
{
private string Value { get; set; }
private TextEntryType Type { get; set; }
public string Text
{
get
{
// If it is an Inline-Text, just return it
if (Type == TextEntryType.Inline)
return Value;
// If it is no inline text, we need to have a file path as "value".
if (!File.Exists(Value))
throw new FileNotFoundException();
// Attention:
// if there should be performance issues, here could be a nice place to add caching
return File.ReadAllText(Value, System.Text.Encoding.UTF8);
}
}
public TextEntryLanguageEntry(TextEntryType type, string value)
{
Value = value;
Type = type;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5eb9345e483f6d24587536342cddf6fe
timeCreated: 1494775887
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5d1c75999922a294286eb48e38e14954
folderAsset: yes
timeCreated: 1497774101
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,91 @@
using RothenburgAR.Common;
using RothenburgAR.PointOfInterest;
using RothenburgAR.UI;
using UnityEngine;
using Vuforia;
namespace RothenburgAR.Exhibition
{
public class ExhibitBehaviour : MonoBehaviour
{
public string ID { get; set; }
public TrackableBehaviour Tracker { get; set; }
public ExhibitionBehaviour Exhibition { get; set; }
public ExhibitTitleBehaviour TitleBehaviour { get; set; }
public bool HasTitle
{
get { return TitleBehaviour != null; }
}
protected void Start()
{
CreateEventHandler();
}
private void CreateEventHandler()
{
var eventHandler = Tracker.gameObject.AddComponent<TrackableEventHandler>();
eventHandler.Exhibit = this;
Tracker.RegisterTrackableEventHandler(eventHandler);
}
public void SetTitle(PreloadedExhibitTitle newTitle)
{
if (!HasTitle)
{
var prefab = Resources.Load<ExhibitTitleBehaviour>("Prefabs/ExhibitTitle");
TitleBehaviour = Instantiate(prefab);
TitleBehaviour.transform.SetParent(Tracker.transform);
TitleBehaviour.Exhibit = this;
}
if (newTitle.Rotation.HasValue)
TitleBehaviour.transform.localEulerAngles = newTitle.Rotation.Value + new Vector3(90, 0, 0);
if (newTitle.Position.HasValue)
TitleBehaviour.transform.localPosition = newTitle.Position.Value;
TitleBehaviour.FontSize = newTitle.FontSize;
TitleBehaviour.BoxHeight = newTitle.BoxHeight;
TitleBehaviour.BoxWidth = newTitle.BoxWidth;
TitleBehaviour.DataText = newTitle.Text;
}
public void SetDescription(TextElement newDescription)
{
if (!HasTitle) return;
TitleBehaviour.SetDescription(newDescription);
}
public void AddPoiReference(PreloadedPoiReference referencedPoi)
{
var poiId = referencedPoi.ReferencedId;
if (!PoiDataManager.Instance.HasPoiData(poiId))
{
Debug.LogWarning("No POI with ID '" + poiId + "'");
return;
}
Debug.Log(
"Adding POI " + poiId +
" to exhibit " + this.ID +
" in exhibition " + this.Exhibition.ID
);
var poiElementPrefab = Resources.Load("Prefabs/POI", typeof(PoiBehaviour));
PoiBehaviour poiElement = Instantiate(poiElementPrefab) as PoiBehaviour;
// Set the poiElement as child of the tracker
poiElement.transform.SetParent(Tracker.transform);
poiElement.ReferencedID = poiId;
poiElement.Exhibit = this;
if (referencedPoi.Position.HasValue)
poiElement.transform.position = referencedPoi.Position.Value;
if (referencedPoi.Rotation.HasValue)
poiElement.transform.localEulerAngles = referencedPoi.Rotation.Value;
if (referencedPoi.Scale.HasValue)
poiElement.transform.localScale = referencedPoi.Scale.Value;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: eb10774f6d70c1c4db6392f6e0c59a99
timeCreated: 1496344944
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,167 @@
using RothenburgAR.Common;
using RothenburgAR.PointOfInterest;
using RothenburgAR.UI;
using TMPro;
using UnityEngine;
namespace RothenburgAR.Exhibition
{
public class ExhibitTitleBehaviour : MonoBehaviour
{
public MeshRenderer BackgroundMeshRenderer;
public GameObject BackgroundGo;
public ExhibitBehaviour Exhibit;
private PoiBehaviour _descriptionPoiBehaviour;
private PoiData _descriptionPoiData;
private TextMeshPro GuiText
{
get { return this.GetComponentInChildren<TextMeshPro>(); }
}
private RectTransform GuiRect
{
get { return this.GetComponentInChildren<RectTransform>(); }
}
public float FontSize
{
get { return this.GuiText.fontSize; }
set { this.GuiText.fontSize = value; }
}
public float BoxWidth
{
get { return this.GuiRect.rect.width; }
set
{
UpdateRect(value, BoxHeight);
}
}
public float BoxHeight
{
get { return this.GuiRect.rect.height; }
set
{
UpdateRect(BoxWidth, value);
}
}
public string DisplayText
{
get { return this.GuiText.text; }
set { this.GuiText.text = value; }
}
public TextElement DataText
{
get; set;
}
public void UpdateRect(float width, float height)
{
this.GuiRect.sizeDelta = new Vector2(width, height);
if (_descriptionPoiBehaviour != null)
{
BackgroundMeshRenderer.transform.localScale = new Vector3(width, height, 1.0f);
_descriptionPoiBehaviour.transform.localPosition = new Vector3(-0.4f, 0f, -0.005f);
}
else
{
BackgroundMeshRenderer.transform.localScale = new Vector3(width, height, 1.0f);
}
}
void Start()
{
CreateBorder();
}
public void SetDescription(TextElement newDescription)
{
if (_descriptionPoiBehaviour == null)
{
var push = 0.1f;
BackgroundMeshRenderer.transform.localScale += new Vector3(push, 0f, 0f);
// Create the POI
var poiElementPrefab = Resources.Load("Prefabs/POI", typeof(PoiBehaviour));
_descriptionPoiBehaviour = Instantiate(poiElementPrefab) as PoiBehaviour;
if (_descriptionPoiBehaviour == null) return;
_descriptionPoiBehaviour.IsTitlePoi = true;
var spriteRendererArray = _descriptionPoiBehaviour.gameObject.GetComponentsInChildren<SpriteRenderer>();
foreach (var spriteRender in spriteRendererArray)
{
spriteRender.material = UIColorSchemeManager.Instance.GetUIMaterial(UIMaterial.BaseOpaque);
}
_descriptionPoiBehaviour.transform.localScale = new Vector3(0.85f, 0.85f, 0.85f);
_descriptionPoiBehaviour.transform.SetParent(BackgroundMeshRenderer.transform);
// Set margin of the text element
var guiTextMargin = GuiText.margin;
guiTextMargin.x = push;
GuiText.margin = guiTextMargin;
// Set position of the POI
_descriptionPoiBehaviour.transform.localPosition = new Vector3(-0.5f + push, 0f, -0.005f);
_descriptionPoiBehaviour.Exhibit = Exhibit;
_descriptionPoiBehaviour.ReferencedID = "TITLE:" + Exhibit.ID;
// Set POI Rotation
var transformLocalRotation = _descriptionPoiBehaviour.transform.localRotation;
transformLocalRotation.x = 0f;
_descriptionPoiBehaviour.transform.localRotation = transformLocalRotation;
}
if (_descriptionPoiData == null)
{
_descriptionPoiData = new PoiData {ID = "TITLE:" + Exhibit.ID};
PoiDataManager.Instance.AddPoiData(_descriptionPoiData);
}
_descriptionPoiData.Description = newDescription;
}
private void CreateBorder()
{
var borderContainer = new GameObject("BorderContainer");
borderContainer.transform.SetParent(BackgroundGo.transform, true);
borderContainer.transform.localPosition = Vector3.zero;
borderContainer.transform.rotation = Quaternion.identity;
borderContainer.transform.localScale = Vector3.one;
var outlineRenderer = borderContainer.AddComponent<LineRenderer>();
outlineRenderer.useWorldSpace = false;
outlineRenderer.startWidth = 0.01f;
outlineRenderer.endWidth = 0.01f;
var size = BackgroundGo.GetComponent<MeshFilter>().mesh.bounds.size;
//produces weird seam at begin/end point, so we'll loop it ourselves by drawing back to topLeft and topRight manually
outlineRenderer.loop = false;
Vector3 topLeft = new Vector3(-size.x / 2, 0, -size.y / 2);
Vector3 topRight = new Vector3(size.x / 2, 0, -size.y / 2);
Vector3 bottomLeft = new Vector3(-size.x / 2, 0, size.y / 2);
Vector3 bottomRight = new Vector3(size.x / 2, 0, size.y / 2);
outlineRenderer.positionCount = 6;
outlineRenderer.SetPosition(0, topLeft);
outlineRenderer.SetPosition(1, topRight);
outlineRenderer.SetPosition(2, bottomRight);
outlineRenderer.SetPosition(3, bottomLeft);
outlineRenderer.SetPosition(4, topLeft);
outlineRenderer.SetPosition(5, topRight);
outlineRenderer.material = UIColorSchemeManager.Instance.GetUIMaterial(UIMaterial.BaseOpaque);
outlineRenderer.enabled = false;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: bd0b15f7f87279d44b52fffd4484095b
timeCreated: 1495542891
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,11 @@
using UnityEngine;
namespace RothenburgAR.Exhibition
{
public class ExhibitionBehaviour : MonoBehaviour
{
public string DatasetPath { get; set; }
public string ID { get; set; }
public TrackerDatabase TrackerDatabase { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: de94030995c94a74d8b393c428b4f2da
timeCreated: 1494769547
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,105 @@
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using Vuforia;
namespace RothenburgAR.Exhibition
{
public class ExhibitionFactory
{
public static ExhibitionBehaviour BuildExhibition(PreloadedExhibition exhibitionData)
{
GameObject newExhibitionGo = new GameObject("Exhibition:" + exhibitionData.ID, typeof(ExhibitionBehaviour));
ExhibitionBehaviour newExhibition = newExhibitionGo.GetComponent<ExhibitionBehaviour>();
newExhibition.ID = exhibitionData.ID;
newExhibition.DatasetPath = exhibitionData.DatasetPath;
Debug.Log(newExhibition.ID + ": Load tracker database");
// Create the trackers
TrackerDatabase trackerDbGo =
VuforiaTrackerLoader.LoadDatabase(Path.Combine(newExhibition.DatasetPath, "tracker.xml"));
Debug.Log(newExhibition.ID + ": Rename TrackableBehaviours ");
newExhibition.TrackerDatabase = trackerDbGo;
var tmpList = InitializeTrackableBehaviours(trackerDbGo, newExhibition);
Debug.Log(newExhibition.ID + ": Build Exhibits");
foreach (var preloadedExhibit in exhibitionData.ContainedExhibits)
{
if (!tmpList.ContainsKey(preloadedExhibit.ID))
{
Debug.LogWarning("Skipping Exhibit '" + preloadedExhibit.ID +
"': No TrackableBehaviour found for exhibit with id !");
continue;
}
var currentTrackableBehaviour = tmpList[preloadedExhibit.ID];
BuildExhibit(currentTrackableBehaviour, preloadedExhibit, newExhibition);
}
Debug.Log(newExhibition.ID + ": Activate Dataset");
// Todo: Reload Tracker DB
if (!VuforiaTrackerLoader.ActivateDataset(trackerDbGo.DataSet))
{
Debug.LogWarning("Could not activate the dataset of exhibition " + exhibitionData.ID);
}
return newExhibition;
}
private static Dictionary<string, TrackableBehaviour> InitializeTrackableBehaviours(
TrackerDatabase trackerDbGo,
ExhibitionBehaviour newExhibition)
{
var tmpList = new Dictionary<string, TrackableBehaviour>();
foreach (var trackableBehaviour in trackerDbGo.TrackableBehaviours)
{
trackableBehaviour.name = "Tracker:" + trackableBehaviour.TrackableName;
trackableBehaviour.transform.SetParent(newExhibition.transform);
trackableBehaviour.gameObject.SetActive(false);
trackableBehaviour.gameObject.AddComponent<DefaultTrackableEventHandler>();
tmpList.Add(trackableBehaviour.TrackableName, trackableBehaviour);
}
return tmpList;
}
private static void BuildExhibit(TrackableBehaviour currentTrackableBehaviour,
PreloadedExhibit preloadedExhibit,
ExhibitionBehaviour newExhibition)
{
ExhibitBehaviour newExhibit;
GameObject newExhibitGo;
var newExhibitName = "Exhibit:" + preloadedExhibit.ID;
if (currentTrackableBehaviour is ImageTargetBehaviour)
{
newExhibitGo = new GameObject(newExhibitName, typeof(ImageExhibitBehaviour));
newExhibit = newExhibitGo.GetComponent<ImageExhibitBehaviour>();
}
else
{
newExhibitGo = new GameObject(newExhibitName, typeof(ExhibitBehaviour));
newExhibit = newExhibitGo.GetComponent<ExhibitBehaviour>();
}
newExhibit.Exhibition = newExhibition;
newExhibit.ID = preloadedExhibit.ID;
newExhibit.transform.SetParent(newExhibition.transform);
newExhibit.Tracker = currentTrackableBehaviour;
currentTrackableBehaviour.transform.SetParent(newExhibit.transform);
currentTrackableBehaviour.gameObject.SetActive(true);
// Create Title, if exists
if (preloadedExhibit.Title.HasValue)
newExhibit.SetTitle(preloadedExhibit.Title.Value);
if (preloadedExhibit.Description != null)
newExhibit.SetDescription(preloadedExhibit.Description);
foreach (var referencedPoi in preloadedExhibit.ReferencedPoiEntries)
newExhibit.AddPoiReference(referencedPoi);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1ecfb51da502736419860e62db545b51
timeCreated: 1495538436
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,189 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using RothenburgAR.Common;
using UnityEngine;
namespace RothenburgAR.Exhibition
{
public class ExhibitionManager : Singleton<ExhibitionManager>
{
private List<string> ExhibitionSourcePathList { get; set; }
private List<IExhibitionPreloader> ExhibitionPreloaderList { get; set; }
private Dictionary<string, ExhibitionBehaviour> ExhibitionList { get; set; }
public ExhibitionManager()
{
ExhibitionSourcePathList = new List<string>();
ExhibitionPreloaderList = new List<IExhibitionPreloader>();
ExhibitionList = new Dictionary<string, ExhibitionBehaviour>();
}
public void AddExhibitionSourcePath(string path)
{
// Todo: Throw Exception
if (Directory.Exists(path))
{
ExhibitionSourcePathList.Add(path);
Debug.Log("AddExhibitionSourcePath: Added source path '" + path + "'");
}
else
{
Debug.Log("AddExhibitionSourcePath: Path '" + path + "'; does not exist - ignoring");
}
}
public void LoadEverySourcePath(Action<int, int, int, int> progressCallback)
{
StartCoroutine(LoadEverySourcePathCoroutine(progressCallback));
}
private IEnumerator LoadEverySourcePathCoroutine(Action<int, int, int, int> progressCallback)
{
int listLength = ExhibitionSourcePathList.Count;
int currentIndex = 0;
foreach (var s in ExhibitionSourcePathList)
{
currentIndex++;
var index = currentIndex;
LoadSourcePath(s,
(int subMax, int subCurrent) =>
{
progressCallback(listLength, index, subMax, subCurrent);
});
yield return null;
}
}
public void LoadEverySourcePath()
{
Debug.Log("Loading every path");
ExhibitionSourcePathList.ForEach(LoadSourcePath);
}
public void LoadSourcePath(string path, Action<int, int> progressCallback)
{
StartCoroutine(LoadSourcePathCoroutine(path, progressCallback));
}
private IEnumerator LoadSourcePathCoroutine(string path, Action<int, int> progressCallback)
{
if (!Directory.Exists(path))
{
Debug.Log("LoadSourcePath: Path '" + path + "'; does not exist - aborting");
}
else
{
var dirs = Directory.GetDirectories(path);
int max = dirs.Length;
int current = 0;
progressCallback(max, 0);
foreach (var directory in dirs)
{
yield return null;
LoadExhibitionFromDirectPath(directory);
progressCallback(max, ++current);
}
}
}
public void LoadSourcePath(string path)
{
if (!Directory.Exists(path))
{
Debug.Log("LoadSourcePath: Path '" + path + "'; does not exist - aborting");
return;
}
foreach (var directory in Directory.GetDirectories(path))
{
LoadExhibitionFromDirectPath(directory);
}
}
private void LoadExhibitionFromDirectPath(string path)
{
if (!Directory.Exists(path))
{
Debug.Log("LoadExhibitionFromDirectPath: Path '" + path + "'; does not exist - aborting");
return;
}
IExhibitionPreloader preloader = SelectExhibitionPreloader(path);
if (preloader == null)
{
Debug.LogWarning("Could not find a valid preloader for path '" + path + "'; Ignoring");
return;
}
try
{
PreloadedExhibition preloadedExhibition = preloader.PreloadExhibition(path);
if (ExhibitionList.ContainsKey(preloadedExhibition.ID))
{
Debug.LogWarning("Exhibition with ID '" + preloadedExhibition.ID + "' already exists! Ignoring '" +
path + "'");
return;
}
Debug.Log("BUILD; " + preloadedExhibition.ID);
var exhibitionBehaviour = ExhibitionFactory.BuildExhibition(preloadedExhibition);
ExhibitionList.Add(exhibitionBehaviour.ID, exhibitionBehaviour);
Debug.Log("Added new exhibition with ID '" + exhibitionBehaviour.ID + "' from '" + path + "'");
}
catch (Exception e)
{
Debug.LogError("Could not load path '" + path + "'; Ignoring; Error: " + e.Message);
throw;
}
}
private IExhibitionPreloader SelectExhibitionPreloader(string path)
{
IExhibitionPreloader selectedPreloader = null;
// Find a valid preloader
foreach (var preloader in ExhibitionPreloaderList)
{
if (preloader.CanLoadExhibitionDirectory(path))
{
selectedPreloader = preloader;
break;
}
}
return selectedPreloader;
}
public void AddExhibitionPreloader(IExhibitionPreloader preloader)
{
ExhibitionPreloaderList.Add(preloader);
}
public void ClearExhibitionList()
{
ExhibitionList.Clear();
}
public void ClearSourcePathList()
{
ExhibitionSourcePathList.Clear();
}
public void ClearExhibitionPreloaderList()
{
ExhibitionPreloaderList.Clear();
}
public void ClearAll()
{
ClearExhibitionList();
ClearExhibitionPreloaderList();
ClearSourcePathList();
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 88c814d46eaeee14580a73a7b75f9bd8
timeCreated: 1496231625
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,192 @@
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Xml;
using RothenburgAR.Common;
using UnityEngine;
namespace RothenburgAR.Exhibition
{
public class ExhibitionXmlPreloader : IExhibitionPreloader
{
public bool CanLoadExhibitionDirectory(string exhibitionDirectory)
{
if (!Directory.Exists(exhibitionDirectory))
return false;
string xmlFilePath = PathHelper.GetXmlPathFromDirectoryPath(exhibitionDirectory);
if (!File.Exists(xmlFilePath))
return false;
if (!File.Exists(Path.Combine(exhibitionDirectory, "tracker.xml")))
return false;
if (!File.Exists(Path.Combine(exhibitionDirectory, "tracker.dat")))
return false;
// Todo: More validations
// TODO: POIs sollen ein optionales Sprite erhalten - Angeben in der XML und laden von der Platte
return true;
}
public PreloadedExhibition PreloadExhibition(string exhibitionDirectory)
{
string xmlFilePath = PathHelper.GetXmlPathFromDirectoryPath(exhibitionDirectory);
if (!File.Exists(xmlFilePath))
throw new FileNotFoundException(xmlFilePath);
XmlDocument doc = new XmlDocument();
doc.Load(xmlFilePath);
// Read the ID from the xml
if (doc.DocumentElement == null || doc.DocumentElement.Attributes == null ||
doc.DocumentElement.Attributes["id"] == null)
throw new InvalidXMLException("Could not read doc.DocumentElement.Attributes['id] ");
string exhibitionId = doc.DocumentElement.Attributes["id"].Value;
// Todo: Implement "Title"
PreloadedExhibition resultExhibition = new PreloadedExhibition
{
ContainedExhibits = new List<PreloadedExhibit>(),
ID = exhibitionId,
DatasetPath = exhibitionDirectory
};
var exhibitNodes = doc.SelectNodes("//exhibition/exhibit");
foreach (XmlNode exhibitNode in exhibitNodes)
{
if (exhibitNode.Attributes == null || exhibitNode.Attributes["id"] == null)
{
// Todo: Log error
continue;
}
var newExhibit = PreloadExhibit(exhibitionDirectory, exhibitNode);
resultExhibition.ContainedExhibits.Add(newExhibit);
}
return resultExhibition;
}
private PreloadedExhibit PreloadExhibit(string exhibitionDirectory, XmlNode exhibitNode)
{
PreloadedExhibit newExhibit = new PreloadedExhibit();
newExhibit.ID = exhibitNode.Attributes["id"].Value;
newExhibit.ReferencedPoiEntries = new List<PreloadedPoiReference>();
// Load Description Text
XmlNodeList descrList = exhibitNode.SelectNodes("description/text");
if (descrList != null && descrList.Count > 0)
{
TextElement exhibitDescr = TextElement.BuildFromXmlNode(exhibitionDirectory, descrList);
newExhibit.Description = exhibitDescr;
}
// Load Title Text
XmlNodeList titleList = exhibitNode.SelectNodes("title/text");
if (titleList != null && titleList.Count > 0)
{
TextElement exhibitTitle = TextElement.BuildFromXmlNode(exhibitionDirectory, titleList);
var fontSize = GetFloatFromXmlNode(exhibitNode.SelectSingleNode("title/font"), "size");
var boxHeight = GetFloatFromXmlNode(exhibitNode.SelectSingleNode("title/dimensions"), "height");
var boxWidth = GetFloatFromXmlNode(exhibitNode.SelectSingleNode("title/dimensions"), "width");
PreloadedExhibitTitle preTitle = new PreloadedExhibitTitle
{
Text = exhibitTitle,
Position = GetVector3FromXmlNode(exhibitNode.SelectSingleNode("title/position")),
Rotation = GetVector3FromXmlNode(exhibitNode.SelectSingleNode("title/rotation")),
FontSize = fontSize ?? 20,
BoxWidth = boxWidth ?? 200,
BoxHeight = boxHeight ?? 25
};
newExhibit.Title = preTitle;
}
// Load POI References
XmlNodeList poiRefList = exhibitNode.SelectNodes("poiList/poi");
if (poiRefList != null && poiRefList.Count > 0)
{
foreach (XmlNode poiRefEntry in poiRefList)
{
if (poiRefEntry.Attributes == null || poiRefEntry.Attributes["ref-id"] == null)
continue;
PreloadedPoiReference poiReference =
new PreloadedPoiReference
{
ReferencedId = poiRefEntry.Attributes["ref-id"].Value,
Position = GetVector3FromXmlNode(poiRefEntry.SelectSingleNode("position")),
Rotation = GetVector3FromXmlNode(poiRefEntry.SelectSingleNode("rotation")),
Scale = GetVector3FromXmlNode(poiRefEntry.SelectSingleNode("scale"))
};
newExhibit.ReferencedPoiEntries.Add(poiReference);
}
}
return newExhibit;
}
private string GetStringFromXmlNode(XmlNode node, string key)
{
if (node == null)
return null;
if (node.Attributes == null)
return null;
if (node.Attributes[key] == null)
return null;
return node.Attributes[key].Value;
}
private float? GetFloatFromXmlNode(XmlNode node, string key)
{
var str = GetStringFromXmlNode(node, key);
if (str == null)
return null;
try
{
return float.Parse(str, CultureInfo.InvariantCulture.NumberFormat);
}
catch
{
return null;
}
}
private Vector3? GetVector3FromXmlNode(XmlNode node)
{
if (node == null)
return null;
if (node.Attributes == null)
return null;
if (node.Attributes["x"] == null)
return null;
if (node.Attributes["y"] == null)
return null;
if (node.Attributes["z"] == null)
return null;
try
{
float posX = float.Parse(node.Attributes["x"].Value,
CultureInfo.InvariantCulture.NumberFormat);
float posY = float.Parse(node.Attributes["y"].Value,
CultureInfo.InvariantCulture.NumberFormat);
float posZ = float.Parse(node.Attributes["z"].Value,
CultureInfo.InvariantCulture.NumberFormat);
return new Vector3(posX, posY, posZ);
}
catch
{
// TODO: log error
return null;
}
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a6480d1e55f977447a21ac633d35a140
timeCreated: 1494965597
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
namespace RothenburgAR.Exhibition
{
public interface IExhibitionPreloader
{
bool CanLoadExhibitionDirectory(string exhibitionDirectory);
PreloadedExhibition PreloadExhibition(string exhibitionDirectory);
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f3e3f3309ff63114f90a2ebbfba98f4d
timeCreated: 1494767174
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,49 @@
using RothenburgAR.UI;
using UnityEngine;
using Vuforia;
namespace RothenburgAR.Exhibition
{
class ImageExhibitBehaviour : ExhibitBehaviour
{
protected new void Start()
{
base.Start();
CreateColoredOutline();
}
private void CreateColoredOutline()
{
var currentImageTargetBehaviour = Tracker as ImageTargetBehaviour;
if (currentImageTargetBehaviour == null) return;
var subGO = new GameObject("OutlineContainer");
subGO.transform.parent = currentImageTargetBehaviour.gameObject.transform;
subGO.transform.localScale = Vector3.one;
var outlineRenderer = subGO.AddComponent<LineRenderer>();
outlineRenderer.useWorldSpace = false;
outlineRenderer.startWidth = 0.01f;
outlineRenderer.endWidth = 0.01f;
Vector2 size = currentImageTargetBehaviour.GetSize();
size /= currentImageTargetBehaviour.gameObject.transform.localScale.z;
//produces weird seam at begin/end point, so we'll loop it ourselves by drawing back to topLeft and topRight manually
outlineRenderer.loop = false;
Vector3 topLeft = new Vector3(-size.x / 2, 0, -size.y / 2);
Vector3 topRight = new Vector3(size.x / 2, 0, -size.y / 2);
Vector3 bottomLeft = new Vector3(-size.x / 2, 0, size.y / 2);
Vector3 bottomRight = new Vector3(size.x / 2, 0, size.y / 2);
outlineRenderer.positionCount = 6;
outlineRenderer.SetPosition(0, topLeft);
outlineRenderer.SetPosition(1, topRight);
outlineRenderer.SetPosition(2, bottomRight);
outlineRenderer.SetPosition(3, bottomLeft);
outlineRenderer.SetPosition(4, topLeft);
outlineRenderer.SetPosition(5, topRight);
outlineRenderer.material = UIColorSchemeManager.Instance.GetUIMaterial(UIMaterial.ExhibitOutline);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3e157718d0022b149abcead963a9766a
timeCreated: 1506151077
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,41 @@
using System.Collections.Generic;
using RothenburgAR.Common;
using UnityEngine;
namespace RothenburgAR.Exhibition
{
public struct PreloadedExhibition
{
public string ID { get; set; }
public string DatasetPath { get; set; }
public TextElement Description { get; set; }
public List<PreloadedExhibit> ContainedExhibits { get; set; }
}
public struct PreloadedExhibit
{
public string ID { get; set; }
public TextElement Description { get; set; }
public List<PreloadedPoiReference> ReferencedPoiEntries { get; set; }
public PreloadedExhibitTitle? Title { get; set; }
}
public struct PreloadedPoiReference
{
public string ReferencedId { get; set; }
public Vector3? Scale { get; set; }
public Vector3? Rotation { get; set; }
public Vector3? Position { get; set; }
}
public struct PreloadedExhibitTitle
{
public TextElement Text { get; set; }
public Vector3? Rotation { get; set; }
public Vector3? Position { get; set; }
public Vector2? Dimensions { get; set; }
public float FontSize { get; set; }
public float BoxHeight { get; set; }
public float BoxWidth { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: dd47845a6bc513645aed5cee30f07c21
timeCreated: 1494766621
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using Vuforia;
namespace RothenburgAR.Exhibition
{
public class VuforiaTrackerLoader
{
public static TrackerDatabase LoadDatabase(string databaseXmlPath)
{
if (!File.Exists(databaseXmlPath))
{
throw new FileNotFoundException();
}
ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
DataSet dataSet = tracker.CreateDataSet();
if (dataSet.Load(databaseXmlPath, VuforiaUnity.StorageType.STORAGE_ABSOLUTE))
{
var trackableBehaviours = new List<TrackableBehaviour>();
IEnumerable<TrackableBehaviour> tbs = TrackerManager.Instance.GetStateManager().GetTrackableBehaviours();
foreach (TrackableBehaviour tb in tbs)
{
if (tb.name != "New Game Object" || !tb.gameObject.activeSelf)
{
continue;
}
tb.gameObject.name = "New Trackable Object";
trackableBehaviours.Add(tb);
}
return new TrackerDatabase
{
Path = databaseXmlPath,
DataSet = dataSet,
TrackableBehaviours = trackableBehaviours
};
}
else
{
throw new Exception("Could not load DataSet");
}
}
public static bool ActivateDataset(DataSet dataSet)
{
bool success = true;
ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
tracker.Stop();
if (!tracker.ActivateDataSet(dataSet))
{
Debug.Log("<color=yellow>Failed to Activate DataSet</color>");
success = false;
}
if (!tracker.Start())
{
Debug.Log("<color=yellow>Tracker Failed to Start.</color>");
success = false;
}
return success;
}
}
public struct TrackerDatabase
{
public string Path { get; set; }
public List<TrackableBehaviour> TrackableBehaviours { get; set; }
public DataSet DataSet { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3d82cdc67980eba42bbad7dd59cd53e5
timeCreated: 1495456059
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,124 @@
using System.Collections.Generic;
using System.IO;
using System.Xml;
using RothenburgAR.Common;
using UnityEngine;
namespace RothenburgAR
{
struct LanguageDescription
{
public string Key;
public string Name;
public string FlagImagePath;
}
class LanguageManager : Singleton<LanguageManager>
{
public const string ERR_TOKEN_NOT_FOUND = "ERR_TOKEN_NOT_FOUND";
public const string ERR_NO_TEXT_FOR_LANG = "ERR_NO_TEXT_FOR_LANG";
private Dictionary<string, TextElement> TextTokenList;
public List<LanguageDescription> AvailableLanguages;
public string DefaultLanguageKey { get; set; }
public string CurrentLanguageKey { get; set; }
public LanguageManager()
{
AvailableLanguages = new List<LanguageDescription>();
TextTokenList = new Dictionary<string, TextElement>();
}
public void AddLanguage(string key, string langName, string flagImagePath)
{
Debug.Log("Adding Language; name='" + langName +
"'; key='" + key +
"'; flagImagePath='" + flagImagePath + "'");
AvailableLanguages.Add(new LanguageDescription
{
Key = key,
Name = langName,
FlagImagePath = flagImagePath
});
}
public void AddString(string token, string languagekey, string text)
{
if (!TextTokenList.ContainsKey(token))
{
TextTokenList.Add(token, new TextElement());
}
TextTokenList[token].AddTextElement(languagekey, TextEntryType.Inline, text);
}
public void SetTextElement(string token, TextElement textElement)
{
TextTokenList[token] = textElement;
}
public string GetString(string token)
{
return GetString(token, CurrentLanguageKey);
}
public string GetString(string token, string languagekey)
{
if (!TextTokenList.ContainsKey(token))
{
Debug.Log("Could not find language token '" + token + "'");
return ERR_TOKEN_NOT_FOUND;
}
var str = TextTokenList[token].GetTextByLanguage(languagekey);
if (str != ERR_NO_TEXT_FOR_LANG) return str;
Debug.Log("Could not find language '" + languagekey + "' for token '" + token + "'");
if (languagekey == DefaultLanguageKey)
{
return ERR_NO_TEXT_FOR_LANG;
}
else
{
// Try to get it for the default language
return GetString(token, DefaultLanguageKey);
}
}
public void LoadLanguagesFromXml()
{
var xmlFilePath = Path.Combine(PathHelper.DataPath, "localization.xml");
Debug.Log("Loading languages from '" + xmlFilePath + "'");
if (!File.Exists(xmlFilePath))
throw new FileNotFoundException(xmlFilePath);
XmlDocument doc = new XmlDocument();
doc.Load(xmlFilePath);
var languageNodes = doc.SelectNodes("//language");
foreach (XmlNode languageNode in languageNodes)
{
var langKey = languageNode.Attributes["key"].Value;
var langName = languageNode.Attributes["name"].Value;
var langFlagPath = Path.Combine(PathHelper.DataPath, languageNode.Attributes["flagPath"].Value);
AddLanguage(langKey, langName, langFlagPath);
if (languageNode.Attributes["default"] != null || DefaultLanguageKey == null)
{
Debug.Log("Setting default language to '" + langKey + "'");
CurrentLanguageKey = langKey;
}
}
var entryNodes = doc.SelectNodes("//entry");
foreach (XmlNode entryNode in entryNodes)
{
var entryToken = entryNode.Attributes["name"].Value;
var entryTextElement = TextElement.BuildFromXmlNode(PathHelper.DataPath, entryNode.ChildNodes);
SetTextElement(entryToken, entryTextElement);
}
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1df58e47431070a4081689b8227ac08b
timeCreated: 1506368514
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1e9f4ffb930e15c458901c9a405fc356
folderAsset: yes
timeCreated: 1497774109
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
namespace RothenburgAR.PointOfInterest
{
public interface IPoiPreloader
{
bool CanLoadPoiDirectory(string poiDirectory);
PoiData PreloadPoi(string poiDirectory);
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a680df836c347934a8bf1935d85b1383
timeCreated: 1494769264
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,144 @@
using System;
using System.Collections.Generic;
using System.IO;
using RothenburgAR.Common;
using UnityEngine;
namespace RothenburgAR.PointOfInterest
{
public class PoiDataManager : Singleton<PoiDataManager>
{
private List<string> DataSourcePathList { get; set; }
private List<IPoiPreloader> PoiPreloaderList { get; set; }
private Dictionary<string, PoiData> PoiDataList { get; set; }
public PoiDataManager()
{
DataSourcePathList = new List<string>();
PoiPreloaderList = new List<IPoiPreloader>();
PoiDataList = new Dictionary<string, PoiData>();
}
public void AddPoiPreloader(IPoiPreloader preloader)
{
PoiPreloaderList.Add(preloader);
}
public void AddPoiDataSourcePath(string path)
{
// Todo: Throw Exception
if (Directory.Exists(path))
{
DataSourcePathList.Add(path);
Debug.Log("AddPoiDataSourcePath: Added source path '" + path + "'");
}
else
{
Debug.Log("AddPoiDataSourcePath: Path '" + path + "'; does not exist - ignoring");
}
}
public void LoadEverySourcePath()
{
Debug.Log("Loading every path");
DataSourcePathList.ForEach(LoadSourcePath);
}
public void LoadSourcePath(string path)
{
if (!Directory.Exists(path))
{
Debug.Log("LoadSourcePath: Path '" + path + "'; does not exist - aborting");
return;
}
foreach (var directory in Directory.GetDirectories(path))
{
LoadPoiFromDirectPath(directory);
}
}
private void LoadPoiFromDirectPath(string path)
{
if (!Directory.Exists(path))
{
Debug.Log("LoadPoiFromDirectPath: Path '" + path + "'; does not exist - aborting");
return;
}
IPoiPreloader preloader = SelectPoiPreloader(path);
if (preloader == null)
{
Debug.LogWarning("Could not find a valid preloader for path '" + path + "'; Ignoring");
return;
}
try
{
var newPoi = preloader.PreloadPoi(path);
AddPoiData(newPoi);
}
catch (Exception e)
{
Debug.LogError("Could not load path '" + path + "'; Ignoring; Error: " + e.Message);
}
}
public void AddPoiData(PoiData newPoi)
{
if (PoiDataList.ContainsKey(newPoi.ID))
{
Debug.LogWarning("Poi with ID '" + newPoi.ID + "' already exists! Ignoring.");
return;
}
PoiDataList.Add(newPoi.ID, newPoi);
Debug.Log("Added new poi with ID '" + newPoi.ID + "'.");
}
private IPoiPreloader SelectPoiPreloader(string path)
{
IPoiPreloader selectedPreloader = null;
// Find a valid preloader
foreach (var preloader in PoiPreloaderList)
{
if (preloader.CanLoadPoiDirectory(path))
{
selectedPreloader = preloader;
break;
}
}
return selectedPreloader;
}
public bool HasPoiData(string id)
{
return PoiDataList.ContainsKey(id);
}
public PoiData GetPoiData(string id)
{
return PoiDataList[id];
}
public void ClearPoiDataList()
{
PoiDataList.Clear();
}
public void ClearSourcePathList()
{
DataSourcePathList.Clear();
}
public void ClearPoiPreloaderList()
{
PoiPreloaderList.Clear();
}
public void ClearAll()
{
ClearPoiDataList();
ClearPoiPreloaderList();
ClearSourcePathList();
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 771e4a7301277204e9c2acb7d6b3e466
timeCreated: 1496229515
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,38 @@
using RothenburgAR.Exhibition;
using UnityEngine;
using Vuforia;
namespace RothenburgAR.PointOfInterest
{
public class PoiBehaviour : MonoBehaviour
{
public GameObject ImageContainer;
public string ReferencedID { get; set; }
public ExhibitBehaviour Exhibit { get; set; }
public bool IsActive { get; private set; }
public void Awake()
{
SetActive(false);
}
public bool IsTitlePoi
{
get { return GetComponent<Animator>().GetBool("IsTitlePoi"); }
set { GetComponent<Animator>().SetBool("IsTitlePoi", value); }
}
public void SetActive(bool newIsActive)
{
IsActive = newIsActive;
if (Exhibit != null && Exhibit.Tracker.CurrentStatus != TrackableBehaviour.Status.TRACKED )
ImageContainer.GetComponent<MeshCollider>().enabled = false;
else
ImageContainer.GetComponent<MeshCollider>().enabled = !newIsActive;
GetComponent<Animator>().SetBool("FadeOut", newIsActive);
}
}
}

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