initial commit
This commit is contained in:
parent
6715289efe
commit
788c3389af
37645 changed files with 2526849 additions and 80 deletions
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9c35576368d70674c9be9a4217442553
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"displayName": "Code Coverage Tutorial",
|
||||
"description": "The Code Coverage Tutorial will give you an insight into what Code Coverage is and how you can identify areas of your code that need more testing, even if you haven't written any automated tests."
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3d9c0d91f50349d29637153ddec7f1d9
|
||||
timeCreated: 1565354374
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 60bdcafe20bbece469862b1a7a6743ca
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0c64d264596194ba0bff9b27c7928d57
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,167 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1220112045462766
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4705424115751604}
|
||||
- component: {fileID: 33764645063084806}
|
||||
- component: {fileID: 23598453568307950}
|
||||
m_Layer: 0
|
||||
m_Name: Visual
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4705424115751604
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1220112045462766}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4183478139923782}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &33764645063084806
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1220112045462766}
|
||||
m_Mesh: {fileID: 4300002, guid: baedbbad82997f445a8cb4da210404e0, type: 3}
|
||||
--- !u!23 &23598453568307950
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1220112045462766}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 583ff7026dac91849b7c7b2468ba456b, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 0
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &1653686695687168
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4183478139923782}
|
||||
- component: {fileID: 58911922280945336}
|
||||
- component: {fileID: 50909243341912102}
|
||||
- component: {fileID: 114601615147883220}
|
||||
m_Layer: 0
|
||||
m_Name: Asteroid
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4183478139923782
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1653686695687168}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 4705424115751604}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!58 &58911922280945336
|
||||
CircleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1653686695687168}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 1
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5
|
||||
--- !u!50 &50909243341912102
|
||||
Rigidbody2D:
|
||||
serializedVersion: 4
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1653686695687168}
|
||||
m_BodyType: 1
|
||||
m_Simulated: 1
|
||||
m_UseFullKinematicContacts: 0
|
||||
m_UseAutoMass: 0
|
||||
m_Mass: 1
|
||||
m_LinearDrag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_GravityScale: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_Interpolate: 1
|
||||
m_SleepingMode: 1
|
||||
m_CollisionDetection: 1
|
||||
m_Constraints: 0
|
||||
--- !u!114 &114601615147883220
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1653686695687168}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2ffc52749732c4937a322d64623addf3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
asteroidExplosion: {fileID: 100004, guid: a6d58f54ce5934781962a4f887e834f3, type: 3}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6ef8c70ee398040cd96c9c6b046d7ee0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,76 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1859710063229298
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4366364659058516}
|
||||
- component: {fileID: 20377649588474206}
|
||||
m_Layer: 0
|
||||
m_Name: Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4366364659058516
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1859710063229298}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!20 &20377649588474206
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1859710063229298}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 1
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1a06aa0896835ab4d92672582ee1742e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9cfd2cdd25852594b8c9f1c5528e8e87
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,6 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a6d58f54ce5934781962a4f887e834f3
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 23fbf2b41e7a11b468af47b5b9fe6edc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,63 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1001 &100100000
|
||||
Prefab:
|
||||
m_ObjectHideFlags: 1
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications: []
|
||||
m_RemovedComponents: []
|
||||
m_ParentPrefab: {fileID: 0}
|
||||
m_RootGameObject: {fileID: 1560558224493566}
|
||||
m_IsPrefabParent: 1
|
||||
--- !u!1 &1560558224493566
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 4315250768066480}
|
||||
- component: {fileID: 114341638294691572}
|
||||
m_Layer: 0
|
||||
m_Name: GameManager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4315250768066480
|
||||
Transform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1560558224493566}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &114341638294691572
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1560558224493566}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a714a81b1536b4426b80643ee6a61629, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
spaceshipPrefab: {fileID: 1546399597766936, guid: 6168cd56cd6c54ceea9dce5cbd70458a,
|
||||
type: 2}
|
||||
asteroidPrefab: {fileID: 1653686695687168, guid: 6ef8c70ee398040cd96c9c6b046d7ee0,
|
||||
type: 2}
|
||||
asteroidCount: 0
|
||||
asteroidSpawnDelay: 1
|
||||
asteroidSpawnTimer: 0
|
||||
deaths: 0
|
||||
mobileInputCanvas: {fileID: 1935473650922600, guid: 073a42ed5c0e32f4caca730878a5f2b9,
|
||||
type: 2}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1d08b6c4fc93b4816be92979bac02b20
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,173 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1001 &100100000
|
||||
Prefab:
|
||||
m_ObjectHideFlags: 1
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications: []
|
||||
m_RemovedComponents: []
|
||||
m_ParentPrefab: {fileID: 0}
|
||||
m_RootGameObject: {fileID: 1138199845139298}
|
||||
m_IsPrefabParent: 1
|
||||
--- !u!1 &1035386964261088
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 4796391903237718}
|
||||
- component: {fileID: 108192813739255852}
|
||||
m_Layer: 0
|
||||
m_Name: ColdLight
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1138199845139298
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 4696753086440088}
|
||||
m_Layer: 0
|
||||
m_Name: Lighting
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1851966716751366
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 4803032359773098}
|
||||
- component: {fileID: 108756170717035470}
|
||||
m_Layer: 0
|
||||
m_Name: WarmLight
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4696753086440088
|
||||
Transform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1138199845139298}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 4803032359773098}
|
||||
- {fileID: 4796391903237718}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!4 &4796391903237718
|
||||
Transform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1035386964261088}
|
||||
m_LocalRotation: {x: -0.2376234, y: 0.73535436, z: 0.5491153, w: 0.31821623}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4696753086440088}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 286.5, y: -226.8, z: 0}
|
||||
--- !u!4 &4803032359773098
|
||||
Transform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1851966716751366}
|
||||
m_LocalRotation: {x: 0.40592465, y: -0.23485525, z: 0.10876717, w: 0.87649184}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4696753086440088}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 49.7, y: -30, z: 0}
|
||||
--- !u!108 &108192813739255852
|
||||
Light:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1035386964261088}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 8
|
||||
m_Type: 1
|
||||
m_Color: {r: 0, g: 0.71034503, b: 1, a: 1}
|
||||
m_Intensity: 0.3
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 0
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Lightmapping: 4
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
--- !u!108 &108756170717035470
|
||||
Light:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1851966716751366}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 8
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 0.3103448, b: 0, a: 1}
|
||||
m_Intensity: 0.77
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 0
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Lightmapping: 4
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 94a58f57296315a43acf9cb0455c51cb
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6168cd56cd6c54ceea9dce5cbd70458a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1680df514e7e41543ad9ef4a61e49e42
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 58dc4a156c6b5984987f3394fd558d37
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b1182636d049cdd41be478e824a3be06
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,179 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1260654842730644
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4762832958201390}
|
||||
- component: {fileID: 61714626582628662}
|
||||
- component: {fileID: 50249730776775846}
|
||||
- component: {fileID: 114708358174716088}
|
||||
m_Layer: 0
|
||||
m_Name: Laser
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4762832958201390
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1260654842730644}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 4618405364176704}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!61 &61714626582628662
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1260654842730644}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0, y: 0.25}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
oldSize: {x: 0.083333336, y: 0.083333336}
|
||||
newSize: {x: 0.2, y: 0.2}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.2, y: 0.5}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!50 &50249730776775846
|
||||
Rigidbody2D:
|
||||
serializedVersion: 4
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1260654842730644}
|
||||
m_BodyType: 1
|
||||
m_Simulated: 1
|
||||
m_UseFullKinematicContacts: 0
|
||||
m_UseAutoMass: 0
|
||||
m_Mass: 1
|
||||
m_LinearDrag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_GravityScale: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_Interpolate: 1
|
||||
m_SleepingMode: 1
|
||||
m_CollisionDetection: 1
|
||||
m_Constraints: 0
|
||||
--- !u!114 &114708358174716088
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1260654842730644}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5db3784d30964d24aa8bad3aabc8a2d0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
destroyOnCollision: 0
|
||||
isActive: 1
|
||||
duration: 0.75
|
||||
--- !u!1 &1480441331374636
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4618405364176704}
|
||||
- component: {fileID: 33346622378511068}
|
||||
- component: {fileID: 23809108965932534}
|
||||
m_Layer: 0
|
||||
m_Name: Visual
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4618405364176704
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480441331374636}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.25, z: 0}
|
||||
m_LocalScale: {x: 1, y: 0.86, z: 0.5}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4762832958201390}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &33346622378511068
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480441331374636}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &23809108965932534
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480441331374636}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 3220a19be9d4c6e4891e401eb38caa9e, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 0
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 77573510eaf859c4695181255e2d6c2d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,177 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1258988639053648
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4276166475450550}
|
||||
- component: {fileID: 33874305319380902}
|
||||
- component: {fileID: 23378388564085086}
|
||||
m_Layer: 0
|
||||
m_Name: Visual
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4276166475450550
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1258988639053648}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4925278178489408}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &33874305319380902
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1258988639053648}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &23378388564085086
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1258988639053648}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 3220a19be9d4c6e4891e401eb38caa9e, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 0
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &1382199488278630
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4925278178489408}
|
||||
- component: {fileID: 61250418499648812}
|
||||
- component: {fileID: 50666150104879410}
|
||||
- component: {fileID: 114078910698489114}
|
||||
m_Layer: 0
|
||||
m_Name: Projectile
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4925278178489408
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1382199488278630}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 4276166475450550}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!61 &61250418499648812
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1382199488278630}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
oldSize: {x: 0.083333336, y: 0.083333336}
|
||||
newSize: {x: 0.2, y: 0.2}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.2, y: 0.2}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!50 &50666150104879410
|
||||
Rigidbody2D:
|
||||
serializedVersion: 4
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1382199488278630}
|
||||
m_BodyType: 1
|
||||
m_Simulated: 1
|
||||
m_UseFullKinematicContacts: 0
|
||||
m_UseAutoMass: 0
|
||||
m_Mass: 1
|
||||
m_LinearDrag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_GravityScale: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_Interpolate: 1
|
||||
m_SleepingMode: 1
|
||||
m_CollisionDetection: 1
|
||||
m_Constraints: 0
|
||||
--- !u!114 &114078910698489114
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1382199488278630}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ab65719fb77f94941b627fdedb501f31, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
destroyOnCollision: 1
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: de5f42023184642b0b244a8e0ad56f03
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,19 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 15d37c83db3355947a8633e4162238f7, type: 3}
|
||||
m_Name: WeaponData
|
||||
m_EditorClassIdentifier:
|
||||
weapons:
|
||||
- weaponName: Basic
|
||||
weaponPrefab: {fileID: 1382199488278630, guid: de5f42023184642b0b244a8e0ad56f03, type: 3}
|
||||
- weaponName: Laser
|
||||
weaponPrefab: {fileID: 1260654842730644, guid: 77573510eaf859c4695181255e2d6c2d, type: 3}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cd21e76343fd12145b604e732bdf3810
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c9c418a8e883b1246a9d4a98cfeab4b7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,55 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1019787296165444
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4893403959414016}
|
||||
- component: {fileID: 114472804864517158}
|
||||
m_Layer: 0
|
||||
m_Name: TestsReferences
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4893403959414016
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1019787296165444}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &114472804864517158
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1019787296165444}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 442ac454dde377b499a5106b58789677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
asteroidsScene: {fileID: 102900000, guid: 99c9720ab356a0642a771bea13969a05, type: 3}
|
||||
spaceshipPrefab: {fileID: 1546399597766936, guid: 6168cd56cd6c54ceea9dce5cbd70458a, type: 3}
|
||||
cameraPrefab: {fileID: 1859710063229298, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
asteroidPrefab: {fileID: 1653686695687168, guid: 6ef8c70ee398040cd96c9c6b046d7ee0, type: 3}
|
||||
gameManagerPrefab: {fileID: 1560558224493566, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
projectilePrefab: {fileID: 1382199488278630, guid: de5f42023184642b0b244a8e0ad56f03, type: 3}
|
||||
laserPrefab: {fileID: 1260654842730644, guid: 77573510eaf859c4695181255e2d6c2d, type: 3}
|
||||
inGameMenuPrefab: {fileID: 1458198147551692, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
spaceshipDebrisPrefab: {fileID: 1715439837662698, guid: 23fbf2b41e7a11b468af47b5b9fe6edc, type: 3}
|
||||
explosionPrefab: {fileID: 100004, guid: a6d58f54ce5934781962a4f887e834f3, type: 3}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0b1bf207adfbf5643bd9daafdc4792f7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4f704ae4b4f98ae41a0bce26658850c1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,654 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 1.4239352, g: 1.5, b: 0.9485295, a: 1}
|
||||
m_AmbientEquatorColor: {r: 1, g: 0.8308824, b: 0.8308824, a: 1}
|
||||
m_AmbientGroundColor: {r: 1.2044117, g: 1.1801472, b: 1.5, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 1
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 10
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 256
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 2
|
||||
m_PVRDenoiserTypeDirect: 0
|
||||
m_PVRDenoiserTypeIndirect: 0
|
||||
m_PVRDenoiserTypeAO: 0
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 0
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 1333992059}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1001 &479409701
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1035386964261088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1851966716751366, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4696753086440088, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 108192813739255852, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_Intensity
|
||||
value: 0.2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 108756170717035470, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
propertyPath: m_Intensity
|
||||
value: 0.6
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 94a58f57296315a43acf9cb0455c51cb, type: 3}
|
||||
--- !u!1001 &838114435
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -10
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4366364659058516, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 20377649588474206, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_ClearFlags
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 20377649588474206, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_BackGroundColor.r
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 20377649588474206, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_BackGroundColor.g
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 20377649588474206, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
propertyPath: m_BackGroundColor.b
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 1a06aa0896835ab4d92672582ee1742e, type: 3}
|
||||
--- !u!1001 &1037302348
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4315250768066480, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 1d08b6c4fc93b4816be92979bac02b20, type: 3}
|
||||
--- !u!850595691 &1333992059
|
||||
LightingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Settings.lighting
|
||||
serializedVersion: 2
|
||||
m_GIWorkflowMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_RealtimeEnvironmentLighting: 1
|
||||
m_BounceScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_UsingShadowmask: 1
|
||||
m_BakeBackend: 1
|
||||
m_LightmapMaxSize: 1024
|
||||
m_BakeResolution: 10
|
||||
m_Padding: 2
|
||||
m_TextureCompression: 1
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAO: 0
|
||||
m_MixedBakeMode: 2
|
||||
m_LightmapsBakeMode: 1
|
||||
m_FilterMode: 1
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_RealtimeResolution: 2
|
||||
m_ForceWhiteAlbedo: 0
|
||||
m_ForceUpdates: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherRayCount: 256
|
||||
m_FinalGatherFiltering: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 256
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_PVRBounces: 2
|
||||
m_PVRRussianRouletteStartBounce: 2
|
||||
m_PVREnvironmentMIS: 0
|
||||
m_PVRFilteringMode: 2
|
||||
m_PVRDenoiserTypeDirect: 0
|
||||
m_PVRDenoiserTypeIndirect: 0
|
||||
m_PVRDenoiserTypeAO: 0
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
--- !u!1001 &1354673069
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1113499502402590, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1173420939086550, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1934168555171880, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 114697676484000544, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_Color.r
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 114697676484000544, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_Color.g
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 114697676484000544, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_Color.b
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224004167847328056, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224004167847328056, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224004167847328056, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 470.25
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224004167847328056, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -160
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224080333828678188, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224080333828678188, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224080333828678188, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224080333828678188, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224102344202964502, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224102344202964502, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224102344202964502, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 470.25
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224102344202964502, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -410
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224192680270864624, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224192680270864624, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224192680270864624, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224192680270864624, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224196067101167210, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224196067101167210, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224196067101167210, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224196067101167210, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224207955033908946, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224278096779884986, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224278096779884986, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224278096779884986, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224278096779884986, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224331889350544396, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224331889350544396, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224331889350544396, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224331889350544396, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224466862422967478, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224466862422967478, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224466862422967478, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224466862422967478, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224537579283149488, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224537579283149488, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224537579283149488, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224537579283149488, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224602281206798814, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224602281206798814, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224602281206798814, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224602281206798814, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224701616038502490, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224701616038502490, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224701616038502490, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224701616038502490, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224924819232728110, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224924819232728110, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224924819232728110, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224924819232728110, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224941624602128828, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224941624602128828, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224941624602128828, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 224941624602128828, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 58dc4a156c6b5984987f3394fd558d37, type: 3}
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 99c9720ab356a0642a771bea13969a05
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 85f76a965e80c47e59bc69dad4b1fc16
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 304890e1473c6f043bddd6aedf753ed1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,11 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class AnimatorDisabler : StateMachineBehaviour
|
||||
{
|
||||
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
|
||||
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
||||
{
|
||||
if (stateInfo.normalizedTime >= 1.0f)
|
||||
animator.enabled = false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f7d5bbcfccd21a24a95cf046c5166dc3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "Unity.TestTools.CodeCoverage.Sample.Asteroids",
|
||||
"references": [],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d3ece71e594f242f595df589ae3414f7
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ad033f3644482f24383a32bddafe2e9d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,62 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class AsteroidController : MonoBehaviour
|
||||
{
|
||||
public GameObject asteroidExplosion;
|
||||
|
||||
private int splitCount = 0;
|
||||
private Vector2 direction = Vector2.right;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
transform.rotation = Random.rotation;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if(!GameManager.IsPaused)
|
||||
Move();
|
||||
}
|
||||
|
||||
public void Move()
|
||||
{
|
||||
transform.position += (Vector3) direction * Time.deltaTime / transform.localScale.x / 2.0f;
|
||||
if (Vector2.Distance(transform.position, Vector2.zero) > 20.0f)
|
||||
DestroyImmediate(gameObject);
|
||||
}
|
||||
|
||||
public void Split()
|
||||
{
|
||||
if(splitCount < 2)
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
AsteroidController asteroid = Instantiate(gameObject, transform.position, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
asteroid.SetSplitCount(splitCount + 1);
|
||||
asteroid.SetDirection(new Vector2(Random.Range(-20.0f, 20.0f), Random.Range(-20.0f, 20.0f)));
|
||||
}
|
||||
GameManager.AddToScore(splitCount);
|
||||
Instantiate(asteroidExplosion, transform.position, transform.GetChild(0).rotation).transform.localScale = transform.localScale;
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
public void SetSplitCount(int value)
|
||||
{
|
||||
splitCount = value;
|
||||
transform.localScale = new Vector3(1.0f, 1.0f, 1.0f)/ (Mathf.Pow(2, splitCount));
|
||||
}
|
||||
|
||||
public int GetSplitCount()
|
||||
{
|
||||
return splitCount;
|
||||
}
|
||||
|
||||
public void SetDirection(Vector2 value)
|
||||
{
|
||||
direction = (value - (Vector2)transform.position).normalized;
|
||||
}
|
||||
|
||||
public Vector2 GetDirection()
|
||||
{
|
||||
return direction;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2ffc52749732c4937a322d64623addf3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,31 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class DebrisController : MonoBehaviour
|
||||
{
|
||||
public GameObject explosionParticles;
|
||||
|
||||
public float impulse = 1.0f;
|
||||
public float debrisDuration = 0.5f;
|
||||
|
||||
private Rigidbody2D[] fragments;
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (GameManager.effectsEnabled)
|
||||
{
|
||||
if (explosionParticles != null)
|
||||
{
|
||||
GameObject particles = Instantiate(explosionParticles, transform.position, Quaternion.identity);
|
||||
particles.transform.localScale = transform.localScale == Vector3.one ? transform.localScale : Vector3.one / 3.0f + transform.localScale / 2.0f;
|
||||
Destroy(particles, particles.GetComponent<ParticleSystem>().main.duration);
|
||||
}
|
||||
|
||||
fragments = GetComponentsInChildren<Rigidbody2D>();
|
||||
foreach (Rigidbody2D fragment in fragments)
|
||||
{
|
||||
fragment.AddForce((fragment.position - (Vector2)transform.position) * transform.localScale.x * impulse, ForceMode2D.Impulse);
|
||||
}
|
||||
Destroy(gameObject, debrisDuration);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6d0340cb4fdc1a84dbc5c92daf754b55
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,143 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class SpaceshipController : MonoBehaviour
|
||||
{
|
||||
public GameObject spaceshipDebris;
|
||||
public WeaponList weaponList;
|
||||
public Vector2 direction = Vector2.zero;
|
||||
|
||||
bool isColliding = false;
|
||||
|
||||
public enum Weapon
|
||||
{
|
||||
Basic,
|
||||
Laser
|
||||
}
|
||||
|
||||
public Weapon currentWeapon = Weapon.Basic;
|
||||
private GameObject weaponInstance;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!GameManager.IsPaused)
|
||||
Move();
|
||||
}
|
||||
|
||||
public void Move()
|
||||
{
|
||||
float horizontalAxis = Input.GetAxis("Horizontal");
|
||||
float verticalAxis = Input.GetAxis("Vertical");
|
||||
|
||||
if (verticalAxis > 0.0f)
|
||||
Thrust(verticalAxis);
|
||||
if (Mathf.Abs(horizontalAxis) > 0.0f)
|
||||
Turn(horizontalAxis);
|
||||
if (Input.GetKeyDown(KeyCode.Space))
|
||||
Shoot();
|
||||
|
||||
transform.position += (Vector3)direction * Time.deltaTime * 4.0f;
|
||||
CalculatePositionOnCamera();
|
||||
}
|
||||
|
||||
public void Thrust(float power)
|
||||
{
|
||||
direction = Vector2.Lerp(direction, transform.up * power, Time.deltaTime * 4.0f);
|
||||
}
|
||||
|
||||
public void Turn(float delta)
|
||||
{
|
||||
transform.eulerAngles = new Vector3(0.0f, 0.0f, transform.eulerAngles.z - delta * 150.0f * Time.deltaTime);
|
||||
transform.GetChild(0).localEulerAngles = new Vector3(0.0f, -delta * 30.0f, 0.0f);
|
||||
}
|
||||
|
||||
public void Shoot(bool onMobile = false)
|
||||
{
|
||||
// If Weapon is Basic, the Prefabs/Weapons/Projectile prefab is instantiated
|
||||
// If Weapon is Laser, the Prefabs/Weapons/Laser prefab is instantiated
|
||||
|
||||
switch (currentWeapon)
|
||||
{
|
||||
case Weapon.Basic:
|
||||
ProjectileController projectile = Instantiate(weaponList.weapons[(int)currentWeapon].weaponPrefab, transform.position, Quaternion.identity).GetComponent<ProjectileController>();
|
||||
projectile.SetDirection(transform.up);
|
||||
break;
|
||||
case Weapon.Laser:
|
||||
if (weaponInstance != null)
|
||||
break;
|
||||
weaponInstance = Instantiate(weaponList.weapons[(int)currentWeapon].weaponPrefab, transform.position, Quaternion.identity);
|
||||
weaponInstance.transform.up = transform.up;
|
||||
weaponInstance.transform.parent = transform;
|
||||
break;
|
||||
default:
|
||||
Debug.LogError("Invalid weapon state.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D collision)
|
||||
{
|
||||
// Preventing multiple collision triggers on the same frame
|
||||
if (isColliding)
|
||||
return;
|
||||
|
||||
AsteroidController asteroidController = collision.gameObject.GetComponent<AsteroidController>();
|
||||
|
||||
if (asteroidController)
|
||||
{
|
||||
asteroidController.Split();
|
||||
if(GameManager.instance != null)
|
||||
GameManager.instance.RespawnShip();
|
||||
Instantiate(spaceshipDebris, transform.position, transform.GetChild(0).rotation);
|
||||
Destroy(gameObject);
|
||||
isColliding = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void CalculatePositionOnCamera()
|
||||
{
|
||||
if (Camera.main != null)
|
||||
{
|
||||
bool warped = false;
|
||||
|
||||
Vector2 positionOnCamera = Camera.main.WorldToViewportPoint(transform.position);
|
||||
if (positionOnCamera.x > 1.05f)
|
||||
{
|
||||
warped = true;
|
||||
transform.position = (Vector2)Camera.main.ViewportToWorldPoint(new Vector2(-0.05f, positionOnCamera.y));
|
||||
}
|
||||
else if (positionOnCamera.x < -0.05f)
|
||||
{
|
||||
warped = true;
|
||||
transform.position = (Vector2)Camera.main.ViewportToWorldPoint(new Vector2(1.05f, positionOnCamera.y));
|
||||
}
|
||||
else if (positionOnCamera.y > 1.05f)
|
||||
{
|
||||
warped = true;
|
||||
transform.position = (Vector2)Camera.main.ViewportToWorldPoint(new Vector2(positionOnCamera.x, -0.05f));
|
||||
}
|
||||
else if (positionOnCamera.y < -0.05f)
|
||||
{
|
||||
warped = true;
|
||||
transform.position = (Vector2)Camera.main.ViewportToWorldPoint(new Vector2(positionOnCamera.x, 1.05f));
|
||||
}
|
||||
|
||||
if (warped)
|
||||
{
|
||||
transform.GetChild(0).GetChild(0).GetComponent<EngineTrail>().ClearParticles();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateWeapon(int score)
|
||||
{
|
||||
Weapon weapon = Weapon.Basic;
|
||||
|
||||
if (score >= 8000)
|
||||
weapon = Weapon.Laser;
|
||||
|
||||
if (weapon == currentWeapon)
|
||||
return;
|
||||
|
||||
currentWeapon = weapon;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5aeff83e8c0bc4fb2b3d12ab3b2d49a8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 400
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 867fb24d4d60d5141b99b22a52954c62
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,32 @@
|
|||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
public class EngineTrail : MonoBehaviour
|
||||
{
|
||||
ParticleSystem ps;
|
||||
ParticleSystem.EmissionModule em;
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (!GameManager.effectsEnabled)
|
||||
gameObject.SetActive(false);
|
||||
|
||||
ps = GetComponent<ParticleSystem>();
|
||||
em = ps.emission;
|
||||
em.enabled = true;
|
||||
}
|
||||
|
||||
public void ClearParticles()
|
||||
{
|
||||
StartCoroutine(Clear());
|
||||
}
|
||||
|
||||
IEnumerator Clear()
|
||||
{
|
||||
em.enabled = false;
|
||||
ps.Clear();
|
||||
yield return null;
|
||||
em.enabled = true;
|
||||
ps.Clear();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f2c27cb7e7d02014eab1dc6e617dbc18
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 102f521d3fefd5a46b63e4713e96cdfa
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,161 @@
|
|||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class GameManager : MonoBehaviour
|
||||
{
|
||||
// Values and methods for testing
|
||||
public static bool effectsEnabled = true;
|
||||
public static bool startEnabled = true;
|
||||
public static bool updateEnabled = true;
|
||||
public static bool asteroidsEnabled = true;
|
||||
|
||||
public static void InitializeTestingEnvironment(bool start, bool update, bool effects, bool asteroids, bool paused)
|
||||
{
|
||||
effectsEnabled = effects;
|
||||
startEnabled = start;
|
||||
updateEnabled = update;
|
||||
asteroidsEnabled = asteroids;
|
||||
IsPaused = paused;
|
||||
}
|
||||
|
||||
public static GameManager instance;
|
||||
public static SpaceshipController spaceship;
|
||||
public static int score;
|
||||
public static int scoreSinceLastDeath;
|
||||
private static bool isPaused;
|
||||
|
||||
public GameObject spaceshipPrefab;
|
||||
public GameObject asteroidPrefab;
|
||||
|
||||
[HideInInspector]
|
||||
public float asteroidSpawnDelay = 1.0f;
|
||||
[HideInInspector]
|
||||
public float asteroidSpawnTimer = 0.0f;
|
||||
[HideInInspector]
|
||||
public int deaths = 0;
|
||||
|
||||
public const float SPACESHIP_RESPAWN_DELAY = 1.0f;
|
||||
public const float RELOAD_SCENE_DELAY = 3.0f;
|
||||
|
||||
public static bool IsPaused
|
||||
{
|
||||
get { return isPaused; }
|
||||
set { Time.timeScale = value ? 0.0f : 1.0f; isPaused = value; }
|
||||
}
|
||||
|
||||
public static bool SpaceshipIsActive() { return spaceship != null; }
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
if (instance == null)
|
||||
instance = this;
|
||||
else if (instance != this)
|
||||
Destroy(gameObject);
|
||||
|
||||
Time.timeScale = 1.0f;
|
||||
IsPaused = false;
|
||||
score = 0;
|
||||
scoreSinceLastDeath = 0;
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (startEnabled)
|
||||
{
|
||||
spaceship = Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity).GetComponent<SpaceshipController>();
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (updateEnabled && !IsPaused)
|
||||
{
|
||||
UpdateTimers();
|
||||
if (asteroidSpawnTimer <= 0.0f && asteroidsEnabled)
|
||||
SpawnAsteroids();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateTimers()
|
||||
{
|
||||
if (asteroidSpawnTimer > 0.0f)
|
||||
asteroidSpawnTimer -= Time.deltaTime;
|
||||
}
|
||||
|
||||
public void RespawnShip(float delay = SPACESHIP_RESPAWN_DELAY)
|
||||
{
|
||||
StartCoroutine(RespawnShipCoroutine(delay));
|
||||
}
|
||||
|
||||
public IEnumerator RespawnShipCoroutine(float delay)
|
||||
{
|
||||
deaths++;
|
||||
if (LifeCounter.instance)
|
||||
LifeCounter.instance.SetLives(3 - deaths);
|
||||
yield return new WaitForSeconds(delay);
|
||||
|
||||
if (deaths < 3)
|
||||
{
|
||||
spaceship = Instantiate(spaceshipPrefab, Vector2.zero, Quaternion.identity).GetComponent<SpaceshipController>();
|
||||
}
|
||||
else
|
||||
{
|
||||
StartCoroutine(ReloadScene());
|
||||
}
|
||||
}
|
||||
|
||||
public void SpawnAsteroids()
|
||||
{
|
||||
AsteroidController asteroid;
|
||||
if (Camera.main != null)
|
||||
{
|
||||
Vector2 spawnPosition = Random.value > 0.5f ? Camera.main.ViewportToWorldPoint(new Vector2(Random.value > 0.5f ? Random.Range(-0.1f, -0.05f) : Random.Range(1.05f, 1.1f), Random.Range(-0.1f, 1.1f))) : Camera.main.ViewportToWorldPoint(new Vector2(Random.Range(-0.1f, 1.1f), Random.value > 0.5f ? Random.Range(-0.1f, -0.05f) : Random.Range(1.05f, 1.1f)));
|
||||
asteroid = Instantiate(asteroidPrefab, spawnPosition, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
asteroid.SetDirection(Camera.main.ViewportToWorldPoint(new Vector2(Random.value, Random.value)));
|
||||
}
|
||||
else
|
||||
asteroid = Instantiate(asteroidPrefab, Vector2.zero, Quaternion.identity).GetComponent<AsteroidController>(); //for test purposes
|
||||
|
||||
float randomValue = Random.value;
|
||||
if (randomValue < 0.333f)
|
||||
asteroid.SetSplitCount(0); // big asteroid
|
||||
else if (randomValue > 0.666f)
|
||||
asteroid.SetSplitCount(1); // medium asteroid
|
||||
else
|
||||
asteroid.SetSplitCount(2); // small asteroid
|
||||
|
||||
asteroidSpawnTimer = asteroidSpawnDelay;
|
||||
}
|
||||
|
||||
IEnumerator ReloadScene()
|
||||
{
|
||||
yield return new WaitForSeconds(RELOAD_SCENE_DELAY);
|
||||
Scene scene = SceneManager.GetActiveScene();
|
||||
SceneManager.LoadScene(scene.name);
|
||||
}
|
||||
|
||||
public static void AddToScore(int splitCount)
|
||||
{
|
||||
switch (splitCount)
|
||||
{
|
||||
case 0:
|
||||
score += 1000;
|
||||
scoreSinceLastDeath += 1000;
|
||||
break;
|
||||
case 1:
|
||||
score += 500;
|
||||
scoreSinceLastDeath += 500;
|
||||
break;
|
||||
case 2:
|
||||
score += 250;
|
||||
scoreSinceLastDeath += 250;
|
||||
break;
|
||||
}
|
||||
|
||||
if (SpaceshipIsActive())
|
||||
spaceship.UpdateWeapon(scoreSinceLastDeath);
|
||||
if(ScoreCounter.instance)
|
||||
ScoreCounter.instance.StartCounting(score);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a714a81b1536b4426b80643ee6a61629
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8791fb1d8e87e63498d7d560b34eada0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,29 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class InGameMenuController : MonoBehaviour
|
||||
{
|
||||
private GameObject pauseMenu;
|
||||
private bool pauseMenuActive = false;
|
||||
|
||||
void Start()
|
||||
{
|
||||
pauseMenu = transform.GetChild(0).gameObject;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetButtonDown("Cancel"))
|
||||
ChangeMenuState(!pauseMenuActive);
|
||||
}
|
||||
|
||||
public void ChangeMenuState(bool isPaused)
|
||||
{
|
||||
if (pauseMenuActive == isPaused)
|
||||
return;
|
||||
|
||||
pauseMenu.SetActive(isPaused);
|
||||
|
||||
pauseMenuActive = isPaused;
|
||||
GameManager.IsPaused = isPaused;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bf32140837e8cc14388b9522d4d48282
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 200
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,63 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class LifeCounter : MonoBehaviour
|
||||
{
|
||||
public static LifeCounter instance;
|
||||
|
||||
int previousLifeCount = 3;
|
||||
|
||||
Animator[] lives;
|
||||
|
||||
public Sprite lifeVisual;
|
||||
public Sprite emptyLifeVisual;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
if (instance == null)
|
||||
instance = this;
|
||||
else if (instance != this)
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
lives = transform.GetComponentsInChildren<Animator>();
|
||||
}
|
||||
|
||||
public void SetLives(int currentLives)
|
||||
{
|
||||
if (currentLives > 3)
|
||||
currentLives = 3;
|
||||
|
||||
if(currentLives <= previousLifeCount)
|
||||
{
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
if (i >= currentLives)
|
||||
{
|
||||
if (i < previousLifeCount)
|
||||
{
|
||||
lives[i].enabled = true;
|
||||
lives[i].SetTrigger("Remove");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
if (i <= currentLives)
|
||||
{
|
||||
if (i >= previousLifeCount)
|
||||
{
|
||||
lives[i].enabled = true;
|
||||
lives[i].SetTrigger("Recover");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
previousLifeCount = currentLives;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c00135462c6948043888456656db5a54
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,83 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class ScoreCounter : MonoBehaviour {
|
||||
public static ScoreCounter instance;
|
||||
int currentScore = 0;
|
||||
int targetScore = 0;
|
||||
Text[] numbers;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
if (instance == null)
|
||||
instance = this;
|
||||
else if (instance != this)
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
// Use this for initialization
|
||||
void Start () {
|
||||
numbers = transform.GetComponentsInChildren<Text>();
|
||||
}
|
||||
|
||||
Coroutine iterator;
|
||||
|
||||
public void StartCounting(int score)
|
||||
{
|
||||
targetScore = score;
|
||||
|
||||
if (iterator != null)
|
||||
StopCoroutine(iterator);
|
||||
iterator = StartCoroutine(IterateScore());
|
||||
}
|
||||
|
||||
public IEnumerator IterateScore () {
|
||||
while(currentScore < targetScore * 0.9f)
|
||||
{
|
||||
currentScore = (int)Mathf.Lerp(currentScore, targetScore, Time.deltaTime * 10.0f);
|
||||
SetScore(currentScore);
|
||||
yield return null;
|
||||
}
|
||||
SetScore(targetScore);
|
||||
StartCoroutine(Pop(targetScore.ToString().Length));
|
||||
}
|
||||
|
||||
public void SetScore(int score)
|
||||
{
|
||||
char[] charScore = score.ToString().ToCharArray();
|
||||
int scoreLength = charScore.Length;
|
||||
int k = 0;
|
||||
for(int i = 0; i < numbers.Length; i++)
|
||||
{
|
||||
if (i < numbers.Length - scoreLength)
|
||||
numbers[i].text = "0";
|
||||
else
|
||||
{
|
||||
numbers[i].text = charScore[k++].ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public IEnumerator Pop(int digits)
|
||||
{
|
||||
int index = numbers.Length - digits;
|
||||
float t = 0.0f;
|
||||
while (t < 1.0f)
|
||||
{
|
||||
Vector3 scale = t < 0.2f ? Vector3.one * (1.0f + t) : Vector3.Lerp(numbers[index].transform.localScale, Vector3.one, t);
|
||||
|
||||
for (int i = index; i < numbers.Length; i++)
|
||||
numbers[i].transform.localScale = scale;
|
||||
|
||||
t += Time.deltaTime * 10.0f;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
for (int i = index; i < numbers.Length; i++)
|
||||
numbers[i].transform.localScale = Vector3.one;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b1adf9b0f5de63b4faf2f253148cb20e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1a868f07139a86d449a8d8f83eb76e15
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,20 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class BaseProjectile : MonoBehaviour
|
||||
{
|
||||
public bool destroyOnCollision = true;
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D collision)
|
||||
{
|
||||
AsteroidController asteroidController = collision.gameObject.GetComponent<AsteroidController>();
|
||||
|
||||
if (asteroidController)
|
||||
{
|
||||
if (collision.isActiveAndEnabled)
|
||||
asteroidController.Split();
|
||||
|
||||
if (destroyOnCollision)
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6d9489cb904b7d346ac5ba24652829c2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,36 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class LaserController : BaseProjectile
|
||||
{
|
||||
public bool isActive = true;
|
||||
public float duration = 0.75f;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!GameManager.IsPaused)
|
||||
{
|
||||
if (isActive)
|
||||
Expand();
|
||||
else
|
||||
Shrink();
|
||||
|
||||
duration -= Time.deltaTime;
|
||||
if (duration <= 0.0f)
|
||||
isActive = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void Expand()
|
||||
{
|
||||
if (transform.localScale.y <= 25.0f)
|
||||
transform.localScale += Vector3.up * Time.deltaTime * 75.0f;
|
||||
}
|
||||
|
||||
private void Shrink()
|
||||
{
|
||||
transform.localScale -= Vector3.up * Time.deltaTime * 75.0f;
|
||||
transform.position += transform.up * Time.deltaTime * 75.0f;
|
||||
if (transform.localScale.y <= 0.0f)
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5db3784d30964d24aa8bad3aabc8a2d0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,30 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class ProjectileController : BaseProjectile
|
||||
{
|
||||
private Vector2 direction = Vector2.right;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!GameManager.IsPaused)
|
||||
Move();
|
||||
}
|
||||
|
||||
public void Move()
|
||||
{
|
||||
transform.position += (Vector3)direction * Time.deltaTime * 16;
|
||||
transform.up = direction;
|
||||
if (Vector2.Distance(transform.position, Vector2.zero) > 20.0f)
|
||||
DestroyImmediate(gameObject);
|
||||
}
|
||||
|
||||
public void SetDirection(Vector2 value)
|
||||
{
|
||||
direction = value;
|
||||
}
|
||||
|
||||
public Vector2 GetDirection()
|
||||
{
|
||||
return direction;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ab65719fb77f94941b627fdedb501f31
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,16 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "WeaponData", menuName = "Weapon List", order = 1)]
|
||||
public class WeaponList : ScriptableObject
|
||||
{
|
||||
[System.Serializable]
|
||||
public struct Weapon
|
||||
{
|
||||
public string weaponName;
|
||||
public GameObject weaponPrefab;
|
||||
};
|
||||
|
||||
[SerializeField]
|
||||
public List<Weapon> weapons;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 15d37c83db3355947a8633e4162238f7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 889a67e57e639497d9f86cc65d35ac2f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,266 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
using System.Collections;
|
||||
|
||||
public class AsteroidTests
|
||||
{
|
||||
GameObject asteroidPrefab;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
GameManager.InitializeTestingEnvironment(false, false, false, false, false);
|
||||
|
||||
asteroidPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().asteroidPrefab;
|
||||
}
|
||||
|
||||
void ClearScene()
|
||||
{
|
||||
Transform[] objects = Object.FindObjectsOfType<Transform>();
|
||||
foreach (Transform obj in objects)
|
||||
{
|
||||
if (obj != null)
|
||||
Object.DestroyImmediate(obj.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _01_AsteroidPrefabExists()
|
||||
{
|
||||
Assert.NotNull(asteroidPrefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _02_AsteroidPrefabCanBeInstantiated()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject asteroid = (GameObject)Object.Instantiate(asteroidPrefab);
|
||||
asteroid.name = "Asteroid";
|
||||
Assert.NotNull(GameObject.Find("Asteroid"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _03_AsteroidPrefabHasRequiredComponentTransform()
|
||||
{
|
||||
Assert.IsNotNull(asteroidPrefab.GetComponent<Transform>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _04_AsteroidPrefabHasRequiredComponentCollider()
|
||||
{
|
||||
Assert.IsNotNull(asteroidPrefab.GetComponent<CircleCollider2D>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _05_AsteroidPrefabHasRequiredComponentControllerScript()
|
||||
{
|
||||
Assert.IsNotNull(asteroidPrefab.GetComponent<AsteroidController>());
|
||||
Assert.IsNotNull(asteroidPrefab.GetComponent<AsteroidController>().asteroidExplosion); // Checking if script component has required references
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _06_AsteroidGameobjectIsDestroyedOnSplit()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject asteroid = (GameObject)Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
asteroid.GetComponent<AsteroidController>().Split();
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(asteroid == null, "Base asteroid was not destroyed on Split");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _07_AsteroidSplitCountCanBeChanged()
|
||||
{
|
||||
ClearScene();
|
||||
AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
asteroid.SetSplitCount(2);
|
||||
Assert.IsTrue(asteroid.GetSplitCount() == 2);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _08_AsteroidCanSplitIntoTwo()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject asteroid = (GameObject)Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
asteroid.GetComponent<AsteroidController>().Split(); // Split base asteroid
|
||||
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>(); // Find all asteroids in the scene
|
||||
Assert.IsTrue(asteroids.Length == 2); // There should be 2 asteroids in the scene now
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _09_AsteroidCanSplitTwice()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject asteroid = (GameObject)Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
asteroid.GetComponent<AsteroidController>().Split(); // Split base asteroid
|
||||
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>(); // Find all asteroids in the scene
|
||||
foreach(AsteroidController childAsteroid in asteroids)
|
||||
childAsteroid.Split(); // Split found asteroids
|
||||
|
||||
yield return null;
|
||||
|
||||
asteroids = Object.FindObjectsOfType<AsteroidController>(); // Find all asteroids in the scene
|
||||
Assert.IsTrue(asteroids.Length == 4); // There should be 4 asteroids in the scene now
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
// It takes three hits to destroy an asteroid from base size, after 3 hits the asteroid should not split anymore
|
||||
public IEnumerator _10_AsteroidCannotSplitThreeTimes()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject asteroid = (GameObject)Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
asteroid.GetComponent<AsteroidController>().Split(); // Split base asteroid
|
||||
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>(); // Find all asteroids in the scene
|
||||
foreach (AsteroidController childAsteroid in asteroids)
|
||||
childAsteroid.Split(); // Split found asteroids
|
||||
|
||||
yield return null;
|
||||
|
||||
asteroids = Object.FindObjectsOfType<AsteroidController>(); // Find all asteroids in the scene
|
||||
foreach (AsteroidController childAsteroid in asteroids)
|
||||
childAsteroid.Split(); // Split found asteroids
|
||||
|
||||
yield return null;
|
||||
|
||||
asteroids = Object.FindObjectsOfType<AsteroidController>(); // Find all asteroids in the scene
|
||||
Assert.IsTrue(asteroids.Length == 0); // There should be no asteroids left in the scene
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
// Splitting the asteroid should spawn 2 asteroids at half scale of the split asteroid
|
||||
public IEnumerator _11_AsteroidScaleIsCutInHalfOnSplit()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject asteroid = (GameObject)Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
asteroid.GetComponent<AsteroidController>().Split(); // Split base asteroid
|
||||
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>(); // Find all asteroids in the scene
|
||||
foreach (AsteroidController childAsteroid in asteroids)
|
||||
Assert.IsTrue(childAsteroid.transform.localScale == new Vector3(0.5f, 0.5f, 0.5f));
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void _12_AsteroidCanMove()
|
||||
{
|
||||
ClearScene();
|
||||
AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
asteroid.Move();
|
||||
Assert.IsTrue(asteroid.transform.position != Vector3.zero);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _13_AsteroidDirectionCanBeChanged()
|
||||
{
|
||||
ClearScene();
|
||||
AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
asteroid.SetDirection(Vector2.up);
|
||||
Assert.IsTrue(asteroid.GetDirection() == Vector2.up);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _14_AsteroidMovesAccordingToItsDirectionVector()
|
||||
{
|
||||
ClearScene();
|
||||
AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
asteroid.SetDirection(Vector2.up);
|
||||
Assert.IsTrue(asteroid.GetDirection() == Vector2.up);
|
||||
|
||||
float t = 0.5f;
|
||||
while (t > 0.0f)
|
||||
{
|
||||
t -= Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
Assert.IsTrue(asteroid.transform.position.x == 0.0f && asteroid.transform.position.y > 0.0f);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _15_AsteroidIsDestroyedWhenOffscreen()
|
||||
{
|
||||
ClearScene();
|
||||
AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.right * 100, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(asteroid == null, "Asteroid was not destroyed when off screen");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _16_AsteroidPrefabHasRequiredVisual()
|
||||
{
|
||||
Transform visualChild = asteroidPrefab.transform.GetChild(0);
|
||||
Assert.IsTrue(visualChild.name == "Visual");
|
||||
Assert.IsNotNull(visualChild);
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshRenderer>());
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshRenderer>().sharedMaterials[0]);
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshFilter>());
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshFilter>().sharedMesh);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _17_AsteroidPrefabHasRequiredComponentRigidbody()
|
||||
{
|
||||
Assert.IsNotNull(asteroidPrefab.GetComponent<Rigidbody2D>());
|
||||
Assert.IsTrue(asteroidPrefab.GetComponent<Rigidbody2D>().isKinematic);
|
||||
Assert.IsTrue(asteroidPrefab.GetComponent<Rigidbody2D>().collisionDetectionMode == CollisionDetectionMode2D.Continuous);
|
||||
Assert.IsTrue(asteroidPrefab.GetComponent<Rigidbody2D>().interpolation == RigidbodyInterpolation2D.Interpolate);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _18_AsteroidStartsWithARandomRotation()
|
||||
{
|
||||
ClearScene();
|
||||
AsteroidController asteroid1 = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
AsteroidController asteroid2 = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
AsteroidController asteroid3 = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(asteroid1.transform.rotation != asteroid2.transform.rotation && asteroid1.transform.rotation != asteroid3.transform.rotation && asteroid2.transform.rotation != asteroid3.transform.rotation);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _19_AsteroidSpawnsExplosionWhenDestroyed()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject asteroid = (GameObject)Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
asteroid.GetComponent<AsteroidController>().Split();
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(asteroid == null);
|
||||
GameObject explosion = GameObject.Find("ExplosionRegular(Clone)");
|
||||
Assert.NotNull(explosion);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _20_AsteroidDoesntMoveDuringPause()
|
||||
{
|
||||
ClearScene();
|
||||
AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
asteroid.SetDirection(Vector2.up);
|
||||
Vector3 startPosition = asteroid.transform.position;
|
||||
GameManager.IsPaused = true;
|
||||
|
||||
for(int i = 0; i < 20; i++)
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(asteroid.transform.position == startPosition);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6ab6f846b4ad547d6b568e2c987b74c7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "Unity.TestTools.CodeCoverage.Sample.Asteroids.Tests",
|
||||
"references": [
|
||||
"Unity.TestTools.CodeCoverage.Sample.Asteroids",
|
||||
"UnityEngine.TestRunner",
|
||||
"UnityEditor.TestRunner"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": true,
|
||||
"precompiledReferences": [
|
||||
"nunit.framework.dll"
|
||||
],
|
||||
"autoReferenced": false,
|
||||
"defineConstraints": [
|
||||
"UNITY_INCLUDE_TESTS"
|
||||
],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d397668ee21414d44b387471611d12a8
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,50 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
using System.Collections;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
|
||||
public class CameraTests
|
||||
{
|
||||
GameObject cameraPrefab;
|
||||
string asteroidsScenePath;
|
||||
LoadSceneParameters loadSceneParameters;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
GameManager.InitializeTestingEnvironment(true, true, true, false, false);
|
||||
|
||||
loadSceneParameters = new LoadSceneParameters(LoadSceneMode.Single, LocalPhysicsMode.None);
|
||||
|
||||
Object asteroidsScene = ((GameObject)Resources.Load("TestsReferences")).GetComponent<TestsReferences>().asteroidsScene;
|
||||
asteroidsScenePath = AssetDatabase.GetAssetPath(asteroidsScene);
|
||||
|
||||
cameraPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().cameraPrefab;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _01_CameraPrefabExists()
|
||||
{
|
||||
Assert.NotNull(cameraPrefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _02_CameraPrefabHasRequiredComponents()
|
||||
{
|
||||
Assert.IsTrue(cameraPrefab.GetComponent<Camera>().clearFlags == CameraClearFlags.Skybox);
|
||||
Assert.IsTrue(cameraPrefab.GetComponent<Camera>().orthographic);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _03_CameraExistsInScene()
|
||||
{
|
||||
EditorSceneManager.LoadSceneInPlayMode(asteroidsScenePath, loadSceneParameters);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(Object.FindObjectOfType<Camera>().name == "Camera");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8950a0381a02c27488d31f5dba9570c7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,105 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
using System.Collections;
|
||||
|
||||
public class FXTests
|
||||
{
|
||||
GameObject spaceshipPrefab;
|
||||
GameObject asteroidPrefab;
|
||||
GameObject spaceshipDebrisPrefab;
|
||||
GameObject explosionPrefab;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
GameManager.InitializeTestingEnvironment(false, false, true, false, false);
|
||||
|
||||
spaceshipPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().spaceshipPrefab;
|
||||
asteroidPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().asteroidPrefab;
|
||||
spaceshipDebrisPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().spaceshipDebrisPrefab;
|
||||
explosionPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().explosionPrefab;
|
||||
}
|
||||
|
||||
void ClearScene()
|
||||
{
|
||||
Transform[] objects = Object.FindObjectsOfType<Transform>();
|
||||
foreach (Transform obj in objects)
|
||||
{
|
||||
if (obj != null)
|
||||
Object.DestroyImmediate(obj.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _01_FXPrefabsExist()
|
||||
{
|
||||
Assert.NotNull(spaceshipDebrisPrefab);
|
||||
Assert.NotNull(spaceshipDebrisPrefab.GetComponent<DebrisController>());
|
||||
Assert.NotNull(explosionPrefab);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _02_DebrisFragmentsHaveVelocityOnStart()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject debris = Object.Instantiate(spaceshipDebrisPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return null;
|
||||
|
||||
foreach(Rigidbody2D fragment in debris.GetComponentsInChildren<Rigidbody2D>())
|
||||
{
|
||||
Assert.IsTrue(fragment.velocity != Vector2.zero);
|
||||
}
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _03_DebrisFragmentsAreDestroyedAfterSeconds()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject debris = Object.Instantiate(spaceshipDebrisPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForSeconds(1.0f); // Debris should be destroyed after 1 sec
|
||||
|
||||
Assert.IsTrue(debris == null);
|
||||
Assert.IsTrue(Object.FindObjectsOfType<Rigidbody2D>().Length == 0);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _04_ExplosionParticlesAreSpawnedWithDebris()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject debris = Object.Instantiate(spaceshipDebrisPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return null;
|
||||
|
||||
ParticleSystem explosion = Object.FindObjectOfType<ParticleSystem>();
|
||||
Assert.IsTrue(explosion != null);
|
||||
|
||||
yield return new WaitForSeconds(explosion.main.duration);
|
||||
|
||||
Assert.IsTrue(explosion == null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _05_ExplosionParticlesActivateChildParticlesAndSubEmmitersSuccessfully()
|
||||
{
|
||||
ClearScene();
|
||||
ParticleSystem explosion = Object.Instantiate(spaceshipDebrisPrefab.GetComponent<DebrisController>().explosionParticles, Vector3.zero, Quaternion.identity).GetComponent<ParticleSystem>();
|
||||
Assert.IsTrue(explosion != null);
|
||||
Assert.IsTrue(explosion.transform.GetChild(0).GetComponent<ParticleSystem>() != null);
|
||||
Assert.IsTrue(explosion.transform.GetChild(1).GetComponent<ParticleSystem>() != null);
|
||||
Assert.IsTrue(explosion.transform.GetChild(2).GetComponent<ParticleSystem>() != null);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(explosion.particleCount == 50); // Main explosion PS burst emits 50 particles on the first frame
|
||||
Assert.IsTrue(explosion.transform.GetChild(0).GetComponent<ParticleSystem>().particleCount == 1); // Glow emits 1 particle on the first frame
|
||||
Assert.IsTrue(explosion.transform.GetChild(1).GetComponent<ParticleSystem>().particleCount == 2); // Shockwave emits 2 particles on the first frame
|
||||
Assert.IsTrue(explosion.subEmitters.GetSubEmitterSystem(0) != null); // Subemitter exists, indexOutOfRange if subemitter cannot be found
|
||||
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
|
||||
Assert.IsTrue(explosion.subEmitters.GetSubEmitterSystem(0).particleCount > 0); // Subemitter emits particles over time
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c134ae620ad267341a2ee7b06ea72051
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,259 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class GameManagerTests {
|
||||
|
||||
GameObject gameManagerPrefab;
|
||||
GameObject asteroidPrefab;
|
||||
GameObject cameraPrefab;
|
||||
string asteroidsScenePath;
|
||||
LoadSceneParameters loadSceneParameters;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
loadSceneParameters = new LoadSceneParameters(LoadSceneMode.Single, LocalPhysicsMode.None);
|
||||
|
||||
Object asteroidsScene = ((GameObject)Resources.Load("TestsReferences")).GetComponent<TestsReferences>().asteroidsScene;
|
||||
asteroidsScenePath = AssetDatabase.GetAssetPath(asteroidsScene);
|
||||
|
||||
gameManagerPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().gameManagerPrefab;
|
||||
asteroidPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().asteroidPrefab;
|
||||
cameraPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().cameraPrefab;
|
||||
}
|
||||
|
||||
void ClearScene()
|
||||
{
|
||||
Transform[] objects = Object.FindObjectsOfType<Transform>();
|
||||
foreach (Transform obj in objects)
|
||||
{
|
||||
if (obj != null)
|
||||
Object.DestroyImmediate(obj.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _01_GameManagerPrefabExists()
|
||||
{
|
||||
Assert.NotNull(gameManagerPrefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _02_GameManagerPrefabHasRequiredComponentScript()
|
||||
{
|
||||
Assert.IsNotNull(gameManagerPrefab.GetComponent<GameManager>());
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _03_GameManagerExistsInScene()
|
||||
{
|
||||
EditorSceneManager.LoadSceneInPlayMode(asteroidsScenePath, loadSceneParameters);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.NotNull(Object.FindObjectOfType<GameManager>());
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _04_GameManagerCanSpawnSpaceshipOnLoad()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(gameManagerPrefab).GetComponent<GameManager>();
|
||||
GameManager.InitializeTestingEnvironment(true, false, false, false, false);
|
||||
|
||||
yield return null;
|
||||
|
||||
SpaceshipController spaceship = Object.FindObjectOfType<SpaceshipController>();
|
||||
Assert.IsTrue(spaceship != null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _05_GameManagerRespawnsSpaceshipAfterItHasBeenDestroyed()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(gameManagerPrefab).GetComponent<GameManager>();
|
||||
GameManager.InitializeTestingEnvironment(true, false, false, false, false);
|
||||
|
||||
yield return null;
|
||||
|
||||
GameObject asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
SpaceshipController spaceship = Object.FindObjectOfType<SpaceshipController>();
|
||||
spaceship.transform.position = Vector2.right * 10;
|
||||
asteroid.transform.position = spaceship.transform.position;
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
|
||||
Assert.IsTrue(spaceship == null);
|
||||
|
||||
yield return new WaitForSeconds(GameManager.SPACESHIP_RESPAWN_DELAY);
|
||||
|
||||
spaceship = Object.FindObjectOfType<SpaceshipController>();
|
||||
Assert.IsTrue(spaceship != null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _06_GameManagerDoesNotRespawnShipAfterThreeDeaths()
|
||||
{
|
||||
ClearScene();
|
||||
GameManager gameManager = Object.Instantiate(gameManagerPrefab).GetComponent<GameManager>();
|
||||
GameManager.InitializeTestingEnvironment(true, false, false, false, false);
|
||||
|
||||
Object.DestroyImmediate(Object.FindObjectOfType<SpaceshipController>());
|
||||
gameManager.deaths = 2;
|
||||
gameManager.RespawnShip(0.0f);
|
||||
|
||||
yield return new WaitForSeconds(GameManager.SPACESHIP_RESPAWN_DELAY);
|
||||
|
||||
SpaceshipController spaceship = Object.FindObjectOfType<SpaceshipController>();
|
||||
Assert.IsTrue(spaceship != null);
|
||||
Object.DestroyImmediate(spaceship);
|
||||
gameManager.RespawnShip(0.0f);
|
||||
|
||||
yield return new WaitForSeconds(GameManager.SPACESHIP_RESPAWN_DELAY);
|
||||
|
||||
spaceship = Object.FindObjectOfType<SpaceshipController>();
|
||||
Assert.IsTrue(spaceship == null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _07_GameManagerSpawnsAsteroids()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(gameManagerPrefab);
|
||||
GameManager.InitializeTestingEnvironment(false, true, false, true, false);
|
||||
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
Assert.IsTrue(asteroids.Length > 0);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _08_GameManagerSpawnsAsteroidsOverTime()
|
||||
{
|
||||
ClearScene();
|
||||
GameManager gameManager = Object.Instantiate(gameManagerPrefab).GetComponent<GameManager>();
|
||||
GameManager.InitializeTestingEnvironment(false, true, false, true, false);
|
||||
|
||||
yield return new WaitForSeconds(gameManager.asteroidSpawnDelay + 0.5f);
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
Assert.IsTrue(asteroids.Length > 1);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _09_GameManagerOnlySpawnsAsteroidsOffscreen()
|
||||
{
|
||||
ClearScene();
|
||||
GameManager gameManager = Object.Instantiate(gameManagerPrefab).GetComponent<GameManager>();
|
||||
GameManager.InitializeTestingEnvironment(false, false, false, false, false);
|
||||
|
||||
Object.Instantiate(cameraPrefab);
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
gameManager.SpawnAsteroids();
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
|
||||
foreach (AsteroidController roid in asteroids)
|
||||
{
|
||||
Vector2 positionOnCamera = Camera.main.WorldToViewportPoint(roid.transform.position);
|
||||
|
||||
Assert.IsTrue(((positionOnCamera.x >= -0.1f && positionOnCamera.x <= 1.1f) && (positionOnCamera.y <= -0.05f || positionOnCamera.y >= 1.05f)) ||
|
||||
((positionOnCamera.x <= -0.05f || positionOnCamera.x >= 1.05f) && (positionOnCamera.y >= -0.1f && positionOnCamera.y <= 1.1f)));
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _10_GameManagerSpawnsRandomSizeAsteroids()
|
||||
{
|
||||
ClearScene();
|
||||
GameManager gameManager = Object.Instantiate(gameManagerPrefab).GetComponent<GameManager>();
|
||||
GameManager.InitializeTestingEnvironment(false, false, false, false, false);
|
||||
|
||||
bool small = false;
|
||||
bool medium = false;
|
||||
bool big = false;
|
||||
|
||||
for (int i = 0; i < 100; i++)
|
||||
gameManager.SpawnAsteroids();
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
foreach (AsteroidController roid in asteroids)
|
||||
{
|
||||
if (roid.GetSplitCount() == 2)
|
||||
small = true;
|
||||
else if (roid.GetSplitCount() == 1)
|
||||
medium = true;
|
||||
else if (roid.GetSplitCount() == 0)
|
||||
big = true;
|
||||
if (small && medium && big)
|
||||
break;
|
||||
}
|
||||
|
||||
Assert.IsTrue(small && medium && big);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _11_GameManagerScoreIsIncreasedAfterAsteroidsAreDestroyed()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(gameManagerPrefab);
|
||||
GameManager.InitializeTestingEnvironment(false, false, false, false, false);
|
||||
|
||||
yield return null;
|
||||
|
||||
AsteroidController asteroid = Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity).GetComponent<AsteroidController>();
|
||||
int score = GameManager.score;
|
||||
asteroid.Split();
|
||||
|
||||
Assert.IsTrue(score != GameManager.score);
|
||||
Assert.IsTrue(GameManager.score == 1000);
|
||||
|
||||
yield return null;
|
||||
|
||||
score = GameManager.score;
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
|
||||
foreach(AsteroidController ast in asteroids)
|
||||
ast.Split();
|
||||
|
||||
Assert.IsTrue(score != GameManager.score);
|
||||
Assert.IsTrue(GameManager.score == 2000);
|
||||
|
||||
yield return null;
|
||||
|
||||
score = GameManager.score;
|
||||
asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
|
||||
foreach (AsteroidController ast in asteroids)
|
||||
ast.Split();
|
||||
|
||||
Assert.IsTrue(score != GameManager.score);
|
||||
Assert.IsTrue(GameManager.score == 3000);
|
||||
}
|
||||
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _12_ReachingCertainScoreChangesSpaceshipWeapons()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(gameManagerPrefab);
|
||||
GameManager.InitializeTestingEnvironment(true, false, false, false, false);
|
||||
|
||||
yield return null;
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
GameManager.AddToScore(0);
|
||||
|
||||
SpaceshipController spaceship = Object.FindObjectOfType<SpaceshipController>();
|
||||
Assert.IsTrue(spaceship != null);
|
||||
// Weapon changes to laser upon reaching 8000 points
|
||||
Assert.IsTrue(spaceship.currentWeapon == SpaceshipController.Weapon.Laser);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d4264f527d5b24e81811c2bfca2f7a68
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,302 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
using System.Collections;
|
||||
|
||||
public class SpaceshipTests {
|
||||
|
||||
GameObject spaceshipPrefab;
|
||||
GameObject asteroidPrefab;
|
||||
GameObject cameraPrefab;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
GameManager.InitializeTestingEnvironment(false, false, true, false, false);
|
||||
|
||||
spaceshipPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().spaceshipPrefab;
|
||||
asteroidPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().asteroidPrefab;
|
||||
cameraPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().cameraPrefab;
|
||||
}
|
||||
|
||||
void ClearScene()
|
||||
{
|
||||
Transform[] objects = Object.FindObjectsOfType<Transform>();
|
||||
foreach (Transform obj in objects)
|
||||
{
|
||||
if (obj != null)
|
||||
Object.DestroyImmediate(obj.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _01_SpaceshipPrefabExists() {
|
||||
Assert.NotNull(spaceshipPrefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _02_SpaceshipPrefabCanBeInstantiated()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject spaceship = (GameObject)Object.Instantiate(spaceshipPrefab);
|
||||
spaceship.name = "Spaceship";
|
||||
Assert.NotNull(GameObject.Find("Spaceship"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _03_SpaceshipPrefabHasRequiredComponentTransform()
|
||||
{
|
||||
Assert.IsNotNull(spaceshipPrefab.GetComponent<Transform>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _04_SpaceshipPrefabHasRequiredComponentCollider()
|
||||
{
|
||||
Assert.IsNotNull(spaceshipPrefab.GetComponent<PolygonCollider2D>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _05_SpaceshipPrefabHasRequiredComponentControllerScript()
|
||||
{
|
||||
Assert.IsNotNull(spaceshipPrefab.GetComponent<SpaceshipController>());
|
||||
// Checking if script component has required references
|
||||
Assert.IsNotNull(spaceshipPrefab.GetComponent<SpaceshipController>().spaceshipDebris);
|
||||
Assert.IsNotNull(spaceshipPrefab.GetComponent<SpaceshipController>().weaponList);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _06_SpaceshipPrefabHasRequiredVisual()
|
||||
{
|
||||
Transform visualChild = spaceshipPrefab.transform.GetChild(0);
|
||||
Assert.IsTrue(visualChild.name == "Visual");
|
||||
Assert.IsNotNull(visualChild);
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshRenderer>());
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshRenderer>().sharedMaterials[0]);
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshRenderer>().sharedMaterials[1]);
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshFilter>());
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshFilter>().sharedMesh);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _07_SpaceshipPrefabHasRequiredComponentRigidbody()
|
||||
{
|
||||
Assert.IsNotNull(spaceshipPrefab.GetComponent<Rigidbody2D>());
|
||||
Assert.IsTrue(spaceshipPrefab.GetComponent<Rigidbody2D>().isKinematic);
|
||||
Assert.IsTrue(spaceshipPrefab.GetComponent<Rigidbody2D>().collisionDetectionMode == CollisionDetectionMode2D.Continuous);
|
||||
Assert.IsTrue(spaceshipPrefab.GetComponent<Rigidbody2D>().interpolation == RigidbodyInterpolation2D.Interpolate);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _08_SpaceshipIsDestroyedOnCollisionWithAsteroid()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForFixedUpdate();
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship == null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _09_SpaceshipTriggersAsteroidSplit()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForFixedUpdate();
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
Assert.IsTrue(asteroids.Length > 1);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _10_SpaceshipCanMove()
|
||||
{
|
||||
ClearScene();
|
||||
SpaceshipController spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity).GetComponent<SpaceshipController>();
|
||||
spaceship.direction = Vector2.up;
|
||||
spaceship.Move();
|
||||
Assert.IsTrue(spaceship.transform.position != Vector3.zero);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _11_SpaceshipRotationCanBeChanged()
|
||||
{
|
||||
ClearScene();
|
||||
SpaceshipController spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity).GetComponent<SpaceshipController>();
|
||||
spaceship.transform.eulerAngles = new Vector3(0.0f, 0.0f, 180.0f);
|
||||
|
||||
float startingRotation = spaceship.transform.eulerAngles.z;
|
||||
spaceship.Turn(1.0f); // Turn right
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship.transform.eulerAngles.z < startingRotation);
|
||||
|
||||
startingRotation = spaceship.transform.eulerAngles.z;
|
||||
spaceship.Turn(-1.0f); // Turn left
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship.transform.eulerAngles.z > startingRotation);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _12_SpaceshipMovesAccordingToItsDirectionVector()
|
||||
{
|
||||
ClearScene();
|
||||
SpaceshipController spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.Euler(0.0f, 0.0f, 0.0f)).GetComponent<SpaceshipController>();
|
||||
spaceship.Thrust(1.0f);
|
||||
spaceship.Move();
|
||||
Assert.IsTrue(spaceship.transform.position.y >= 0.0f && spaceship.transform.position.x == 0.0f);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _13_SpaceshipIsWarpedToTheOtherSideOfTheScreenAfterMovingOffscreen()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(cameraPrefab);
|
||||
SpaceshipController spaceship = Object.Instantiate(spaceshipPrefab, Vector2.right * 100.0f, Quaternion.identity).GetComponent<SpaceshipController>();
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship.transform.position.x < 0.0f);
|
||||
spaceship.transform.position = Vector2.left * 100.0f;
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship.transform.position.x > 0.0f);
|
||||
spaceship.transform.position = Vector2.up * 100.0f;
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship.transform.position.y < 0.0f);
|
||||
spaceship.transform.position = Vector2.down * 100.0f;
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship.transform.position.y > 0.0f);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _14_SpaceshipCanFireProjectiles()
|
||||
{
|
||||
ClearScene();
|
||||
SpaceshipController spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.Euler(0.0f, 0.0f, 0.0f)).GetComponent<SpaceshipController>();
|
||||
spaceship.Shoot();
|
||||
ProjectileController projectile = Object.FindObjectOfType<ProjectileController>();
|
||||
Assert.IsTrue(projectile != null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _15_SpaceshipSpawnsDebrisWhenDestroyed()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForFixedUpdate();
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship == null);
|
||||
DebrisController[] objects = Object.FindObjectsOfType<DebrisController>();
|
||||
Assert.IsTrue(objects.Length > 0);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _16_SpaceshipEngineEmitsParticles()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity);
|
||||
Assert.IsTrue(spaceship.transform.GetChild(0).GetChild(0) != null);
|
||||
Assert.IsTrue(spaceship.transform.GetChild(0).GetChild(0).GetComponent<EngineTrail>() != null);
|
||||
ParticleSystem ps = spaceship.transform.GetChild(0).GetChild(0).GetComponent<ParticleSystem>();
|
||||
Assert.IsTrue(ps != null);
|
||||
Assert.IsTrue(ps.particleCount == 0);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(ps.particleCount > 0);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _17_SpaceshipEngineParticlesAreClearedAfterWarp()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(cameraPrefab);
|
||||
|
||||
GameObject spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity);
|
||||
ParticleSystem ps = spaceship.transform.GetChild(0).GetChild(0).GetComponent<ParticleSystem>();
|
||||
|
||||
yield return null; // Wait for particles to spawn
|
||||
|
||||
spaceship.transform.position = Vector2.left * 100.0f;
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(ps.particleCount == 0);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _18_SpaceshipDoesntMoveDuringPause()
|
||||
{
|
||||
ClearScene();
|
||||
SpaceshipController spaceship = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity).GetComponent<SpaceshipController>();
|
||||
spaceship.direction = Vector2.up;
|
||||
Vector3 startPosition = spaceship.transform.position;
|
||||
|
||||
GameManager.IsPaused = true;
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(spaceship.transform.position == startPosition);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _19_SpaceshipPrefabHasRequiredComponentAnimator()
|
||||
{
|
||||
Assert.IsNotNull(spaceshipPrefab.transform.GetChild(0).GetComponent<Animator>());
|
||||
Assert.IsNotNull(spaceshipPrefab.transform.GetChild(0).GetComponent<Animator>().runtimeAnimatorController != null);
|
||||
Assert.IsTrue(spaceshipPrefab.transform.GetChild(0).GetComponent<Animator>().runtimeAnimatorController.name == "ShipAnimator");
|
||||
Assert.IsTrue(spaceshipPrefab.transform.GetChild(0).GetComponent<Animator>().cullingMode == AnimatorCullingMode.AlwaysAnimate);
|
||||
Assert.IsTrue(spaceshipPrefab.transform.GetChild(0).GetComponent<Animator>().updateMode == AnimatorUpdateMode.Normal);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _20_SpaceshipAnimatorPlaysSpawnAnimationOnSpawn()
|
||||
{
|
||||
ClearScene();
|
||||
Animator animator = Object.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity).transform.GetChild(0).GetComponent<Animator>();
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsNotNull(animator);
|
||||
Assert.IsTrue(animator.GetCurrentAnimatorStateInfo(0).IsName("SpaceshipSpawn"));
|
||||
|
||||
while (animator.GetCurrentAnimatorStateInfo(0).normalizedTime <= 1.0f)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
|
||||
Assert.IsTrue(animator.transform.localScale == Vector3.one);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _21_SpaceshipWeaponListContainsData()
|
||||
{
|
||||
WeaponList weaponList = spaceshipPrefab.GetComponent<SpaceshipController>().weaponList;
|
||||
Assert.IsNotNull(weaponList);
|
||||
Assert.IsTrue(weaponList.weapons.Count == 2);
|
||||
|
||||
foreach(WeaponList.Weapon weapon in weaponList.weapons)
|
||||
{
|
||||
Assert.IsTrue(weapon.weaponName.Length != 0);
|
||||
Assert.IsNotNull(weapon.weaponPrefab);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8c44e1f2b99a94dd4ad55e123afc4544
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,29 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class TestsReferences : MonoBehaviour
|
||||
{
|
||||
#region SCENES
|
||||
public Object asteroidsScene;
|
||||
#endregion
|
||||
|
||||
#region CORE
|
||||
public GameObject spaceshipPrefab;
|
||||
public GameObject cameraPrefab;
|
||||
public GameObject asteroidPrefab;
|
||||
public GameObject gameManagerPrefab;
|
||||
#endregion
|
||||
|
||||
#region WEAPONS
|
||||
public GameObject projectilePrefab;
|
||||
public GameObject laserPrefab;
|
||||
#endregion
|
||||
|
||||
#region UI
|
||||
public GameObject inGameMenuPrefab;
|
||||
#endregion
|
||||
|
||||
#region FX
|
||||
public GameObject spaceshipDebrisPrefab;
|
||||
public GameObject explosionPrefab;
|
||||
#endregion
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 442ac454dde377b499a5106b58789677
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,219 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
using System.Collections;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
|
||||
public class UserInterfaceTests
|
||||
{
|
||||
GameObject gameManagerPrefab;
|
||||
GameObject inGameMenuPrefab;
|
||||
string asteroidsScenePath;
|
||||
LoadSceneParameters loadSceneParameters;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
GameManager.InitializeTestingEnvironment(true, false, false, false, false);
|
||||
|
||||
loadSceneParameters = new LoadSceneParameters(LoadSceneMode.Single, LocalPhysicsMode.None);
|
||||
|
||||
Object asteroidsScene = ((GameObject)Resources.Load("TestsReferences")).GetComponent<TestsReferences>().asteroidsScene;
|
||||
asteroidsScenePath = AssetDatabase.GetAssetPath(asteroidsScene);
|
||||
|
||||
gameManagerPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().gameManagerPrefab;
|
||||
inGameMenuPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().inGameMenuPrefab;
|
||||
}
|
||||
|
||||
void ClearScene()
|
||||
{
|
||||
Transform[] objects = Object.FindObjectsOfType<RectTransform>();
|
||||
foreach (Transform obj in objects)
|
||||
{
|
||||
if (obj != null)
|
||||
Object.DestroyImmediate(obj.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _01_InGameMenuExistsInScene()
|
||||
{
|
||||
EditorSceneManager.LoadSceneInPlayMode(asteroidsScenePath, loadSceneParameters);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.NotNull(Object.FindObjectOfType<InGameMenuController>());
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _02_InGameMenuHasCorrectUIElements()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject inGameMenu = Object.Instantiate(inGameMenuPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.NotNull(inGameMenu);
|
||||
Canvas canvas = inGameMenu.GetComponent<Canvas>();
|
||||
Assert.NotNull(canvas);
|
||||
Assert.NotNull(canvas.GetComponent<InGameMenuController>());
|
||||
|
||||
Assert.NotNull(canvas.transform.GetChild(0));
|
||||
Assert.IsFalse(canvas.transform.GetChild(0).gameObject.activeInHierarchy);
|
||||
Assert.NotNull(canvas.transform.GetChild(1));
|
||||
Assert.IsTrue(canvas.transform.GetChild(1).gameObject.activeInHierarchy);
|
||||
Assert.NotNull(canvas.transform.GetChild(2));
|
||||
Assert.IsTrue(canvas.transform.GetChild(2).gameObject.activeInHierarchy);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _03_InGameMenuContainsButtons()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject inGameMenu = Object.Instantiate(inGameMenuPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return null;
|
||||
|
||||
Transform container = inGameMenu.transform.GetChild(0);
|
||||
Assert.NotNull(container.GetComponent<VerticalLayoutGroup>());
|
||||
|
||||
// InGameMenu has the game title
|
||||
Assert.NotNull(container.GetChild(1).GetComponent<Image>());
|
||||
Assert.IsTrue(container.GetChild(1).GetComponent<Image>().sprite != null);
|
||||
|
||||
// Pause menu has a resume button
|
||||
Assert.NotNull(container.GetChild(1).GetComponent<Button>());
|
||||
Assert.IsTrue(container.GetChild(1).name == "ResumeButton");
|
||||
Assert.IsTrue(container.GetChild(1).GetComponent<Button>().onClick.GetPersistentMethodName(0) == "ChangeMenuState");
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _04_PauseMenuCanBeEnabledAndDisabled()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject inGameMenu = Object.Instantiate(inGameMenuPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return null;
|
||||
|
||||
InGameMenuController menuController = inGameMenu.GetComponent<InGameMenuController>();
|
||||
Assert.IsTrue(menuController.transform.GetChild(0).name == "PauseMenu");
|
||||
|
||||
menuController.ChangeMenuState(true);
|
||||
Assert.IsTrue(menuController.transform.GetChild(0).gameObject.activeInHierarchy);
|
||||
Assert.IsTrue(menuController.transform.GetChild(1).gameObject.activeInHierarchy);
|
||||
menuController.ChangeMenuState(false);
|
||||
Assert.IsFalse(menuController.transform.GetChild(0).gameObject.activeInHierarchy);
|
||||
Assert.IsTrue(menuController.transform.GetChild(1).gameObject.activeInHierarchy);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _05_PauseMenuChangesGameManagerGameState()
|
||||
{
|
||||
EditorSceneManager.LoadSceneInPlayMode(asteroidsScenePath, loadSceneParameters);
|
||||
|
||||
yield return null;
|
||||
|
||||
InGameMenuController menuController = GameObject.Find("InGameMenu").GetComponent<InGameMenuController>();
|
||||
menuController.ChangeMenuState(true);
|
||||
Assert.IsTrue(GameManager.IsPaused);
|
||||
Assert.IsTrue(Time.timeScale == 0.0f);
|
||||
menuController.ChangeMenuState(false);
|
||||
Assert.IsFalse(GameManager.IsPaused);
|
||||
Assert.IsTrue(Time.timeScale == 1.0f);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _06_InGameScoreCounterChangesWhenScoreChanges()
|
||||
{
|
||||
EditorSceneManager.LoadSceneInPlayMode(asteroidsScenePath, loadSceneParameters);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.NotNull(GameObject.Find("InGameMenu"));
|
||||
Canvas canvas = GameObject.Find("InGameMenu").GetComponent<Canvas>();
|
||||
|
||||
Assert.NotNull(canvas.transform.GetChild(1));
|
||||
Text[] numbers = canvas.transform.GetChild(1).GetComponentsInChildren<Text>();
|
||||
Assert.IsTrue(numbers.Length == 7);
|
||||
GameManager.AddToScore(0);
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
|
||||
Assert.IsTrue(numbers[0].text == "0" && numbers[1].text == "0" && numbers[2].text == "0" && numbers[3].text == "1" && numbers[4].text == "0" && numbers[5].text == "0" && numbers[6].text == "0");
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _07_InGameMenuLivesControllerPlaysAnimationsWhenLifeCountIsChanged()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject inGameMenu = Object.Instantiate(inGameMenuPrefab, Vector3.zero, Quaternion.identity);
|
||||
Transform livesTransform = inGameMenu.transform.GetChild(2);
|
||||
Animator[] lives = livesTransform.GetComponentsInChildren<Animator>();
|
||||
Assert.IsTrue(lives.Length == 3);
|
||||
|
||||
yield return null;
|
||||
|
||||
livesTransform.GetComponent<LifeCounter>().SetLives(2);
|
||||
|
||||
yield return null;
|
||||
|
||||
int i;
|
||||
|
||||
// Going from 3 to 2 lives, therefore 1 "remove" animation should play
|
||||
for (i = 0; i < lives.Length; i++)
|
||||
{
|
||||
if (i >= 2)
|
||||
{
|
||||
Assert.IsTrue(lives[i].enabled == true);
|
||||
Assert.IsTrue(lives[i].GetCurrentAnimatorStateInfo(0).IsName("RemoveLife"));
|
||||
}
|
||||
else
|
||||
{
|
||||
Assert.IsTrue(lives[i].enabled == false);
|
||||
}
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
|
||||
for (i = 0; i < lives.Length; i++)
|
||||
Assert.IsTrue(lives[i].enabled == false);
|
||||
|
||||
livesTransform.GetComponent<LifeCounter>().SetLives(0);
|
||||
|
||||
yield return null;
|
||||
|
||||
// Going from 2 to 0 lives, therefore 2 "remove" animations should play
|
||||
for (i = 0; i < lives.Length; i++)
|
||||
{
|
||||
if (i < 2)
|
||||
{
|
||||
Assert.IsTrue(lives[i].enabled == true);
|
||||
Assert.IsTrue(lives[i].GetCurrentAnimatorStateInfo(0).IsName("RemoveLife"));
|
||||
}
|
||||
else
|
||||
{
|
||||
Assert.IsTrue(lives[i].enabled == false);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
|
||||
for (i = 0; i < lives.Length; i++)
|
||||
Assert.IsTrue(lives[i].enabled == false);
|
||||
|
||||
livesTransform.GetComponent<LifeCounter>().SetLives(3);
|
||||
|
||||
yield return null;
|
||||
|
||||
// Going from 0 to 3 lives, therefore 3 "recover" animations should play
|
||||
for (i = 0; i < lives.Length; i++)
|
||||
{
|
||||
Assert.IsTrue(lives[i].enabled == true);
|
||||
Assert.IsTrue(lives[i].GetCurrentAnimatorStateInfo(0).IsName("RecoverLife"));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 02f764eff5fa8bd4b802f392c705b9a9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,238 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
|
||||
public class WeaponTests
|
||||
{
|
||||
GameObject projectilePrefab;
|
||||
GameObject laserPrefab;
|
||||
GameObject asteroidPrefab;
|
||||
GameObject spaceshipPrefab;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
GameManager.InitializeTestingEnvironment(false, false, false, false, false);
|
||||
|
||||
spaceshipPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().spaceshipPrefab;
|
||||
asteroidPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().asteroidPrefab;
|
||||
projectilePrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().projectilePrefab;
|
||||
laserPrefab = ((GameObject)Resources.Load("TestsReferences", typeof(GameObject))).GetComponent<TestsReferences>().laserPrefab;
|
||||
}
|
||||
|
||||
void ClearScene()
|
||||
{
|
||||
Transform[] objects = Object.FindObjectsOfType<Transform>();
|
||||
foreach (Transform obj in objects)
|
||||
{
|
||||
if(obj != null)
|
||||
Object.DestroyImmediate(obj.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
// Uncomment the code from line 35 up to line 237, run the tests again and compare the code coverage results
|
||||
|
||||
[Test]
|
||||
public void _01_ProjectilePrefabExists()
|
||||
{
|
||||
Assert.NotNull(projectilePrefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _02_ProjectilePrefabCanBeInstantiated()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject projectile = (GameObject)Object.Instantiate(projectilePrefab);
|
||||
projectile.name = "Projectile";
|
||||
Assert.NotNull(GameObject.Find("Projectile"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _03_ProjectilePrefabHasRequiredComponentTransform()
|
||||
{
|
||||
Assert.IsNotNull(projectilePrefab.GetComponent<Transform>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _04_ProjectilePrefabHasRequiredComponentCollider()
|
||||
{
|
||||
Assert.IsNotNull(projectilePrefab.GetComponent<BoxCollider2D>());
|
||||
Assert.IsTrue(projectilePrefab.GetComponent<BoxCollider2D>().size == new Vector2(0.2f, 0.2f));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _05_ProjectilePrefabHasRequiredComponentControllerScript()
|
||||
{
|
||||
Assert.IsNotNull(projectilePrefab.GetComponent<ProjectileController>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _06_ProjectilePrefabHasRequiredVisual()
|
||||
{
|
||||
Transform visualChild = projectilePrefab.transform.GetChild(0);
|
||||
Assert.IsTrue(visualChild.name == "Visual");
|
||||
Assert.IsNotNull(visualChild);
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshRenderer>());
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshRenderer>().sharedMaterials[0]);
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshFilter>());
|
||||
Assert.IsNotNull(visualChild.GetComponent<MeshFilter>().sharedMesh);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _07_ProjectileCanMove()
|
||||
{
|
||||
ClearScene();
|
||||
ProjectileController projectile = Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity).GetComponent<ProjectileController>();
|
||||
projectile.Move();
|
||||
Assert.IsTrue(projectile.transform.position != Vector3.zero);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _08_ProjectileDirectionCanBeChanged()
|
||||
{
|
||||
ClearScene();
|
||||
ProjectileController projectile = Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity).GetComponent<ProjectileController>();
|
||||
projectile.SetDirection(Vector2.up);
|
||||
Assert.IsTrue(projectile.GetDirection() == Vector2.up);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _09_ProjectileMovesAccordingToItsDirectionVector()
|
||||
{
|
||||
ClearScene();
|
||||
ProjectileController projectile = Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity).GetComponent<ProjectileController>();
|
||||
projectile.SetDirection(Vector2.up);
|
||||
Assert.IsTrue(projectile.GetDirection() == Vector2.up);
|
||||
|
||||
float t = 0.5f;
|
||||
while (t > 0.0f)
|
||||
{
|
||||
t -= Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
Assert.IsTrue(projectile.transform.position.x == 0.0f && projectile.transform.position.y > 0.0f); //check if projectile moves according to given trajectory along the Y axis
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _10_ProjectileRotatesAccordingToItsDirectionVector()
|
||||
{
|
||||
ClearScene();
|
||||
ProjectileController projectile = Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity).GetComponent<ProjectileController>();
|
||||
projectile.SetDirection(new Vector2(0.714f, -0.156f).normalized);
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue((Vector2)projectile.transform.up == projectile.GetDirection());
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _11_ProjectileIsDestroyedWhenOffsceen()
|
||||
{
|
||||
ClearScene();
|
||||
ProjectileController projectile = Object.Instantiate(projectilePrefab, Vector3.right * 100, Quaternion.identity).GetComponent<ProjectileController>();
|
||||
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(projectile == null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void _12_ProjectilePrefabHasRequiredComponentRigidbody()
|
||||
{
|
||||
Assert.IsNotNull(projectilePrefab.GetComponent<Rigidbody2D>());
|
||||
Assert.IsTrue(projectilePrefab.GetComponent<Rigidbody2D>().isKinematic);
|
||||
Assert.IsTrue(projectilePrefab.GetComponent<Rigidbody2D>().collisionDetectionMode == CollisionDetectionMode2D.Continuous);
|
||||
Assert.IsTrue(projectilePrefab.GetComponent<Rigidbody2D>().interpolation == RigidbodyInterpolation2D.Interpolate);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _13_ProjectileIsDestroyedOnCollisionWithAsteroid()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject projectile = Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForFixedUpdate();
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(projectile == null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _14_ProjectileIgnoresCollisionWithSpaceship()
|
||||
{
|
||||
ClearScene();
|
||||
GameObject projectile = Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(spaceshipPrefab, Vector2.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForFixedUpdate();
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(projectile != null);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _15_ProjectileTriggersAsteroidSplit()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForFixedUpdate();
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
Assert.IsTrue(asteroids.Length > 1);
|
||||
}
|
||||
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _16_ProjectilesCannotSplitTheSameAsteroidTwice()
|
||||
{
|
||||
ClearScene();
|
||||
Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity);
|
||||
Object.Instantiate(asteroidPrefab, Vector3.zero, Quaternion.identity);
|
||||
|
||||
yield return new WaitForFixedUpdate();
|
||||
yield return null;
|
||||
|
||||
AsteroidController[] asteroids = Object.FindObjectsOfType<AsteroidController>();
|
||||
Assert.IsTrue(asteroids.Length == 2);
|
||||
}
|
||||
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _17_ProjectilesDontMoveDuringPause()
|
||||
{
|
||||
ClearScene();
|
||||
ProjectileController projectile = Object.Instantiate(projectilePrefab, Vector3.zero, Quaternion.identity).GetComponent<ProjectileController>();
|
||||
projectile.SetDirection(Vector2.up);
|
||||
Vector3 startPosition = projectile.transform.position;
|
||||
GameManager.IsPaused = true;
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
yield return null;
|
||||
|
||||
Assert.IsTrue(projectile.transform.position == startPosition);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator _18_LaserFiresSuccessfully()
|
||||
{
|
||||
// ClearScene();
|
||||
// SpaceshipController spaceship = Object.Instantiate(spaceshipPrefab).GetComponent<SpaceshipController>();
|
||||
// spaceship.currentWeapon = SpaceshipController.Weapon.Laser;
|
||||
// spaceship.Shoot();
|
||||
|
||||
yield return null;
|
||||
|
||||
// LaserController laser = Object.FindObjectOfType<LaserController>();
|
||||
// Assert.NotNull(laser);
|
||||
}
|
||||
*/
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a84ac4720880c4da591130ed39f030d9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a1a6b6c94d59db447a960ba5bf424836
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d02460aeb39cbf84fa7439622b08880e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 57070143857963247969fd09c8df22c8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,72 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ShipAnimator
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters: []
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 1107993230705172246}
|
||||
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 &1102516670341156370
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SpaceshipSpawn
|
||||
m_Speed: 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_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: d5fd4266a1fc3134293e378a72315d2a, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1107 &1107993230705172246
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Base Layer
|
||||
m_ChildStates:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102516670341156370}
|
||||
m_Position: {x: 312, 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: 50, y: 120, z: 0}
|
||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 1102516670341156370}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ea96ee9d8861b6c4a8a3516adad4fc71
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 9100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,313 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!74 &7400000
|
||||
AnimationClip:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ShipSpawn
|
||||
serializedVersion: 6
|
||||
m_Legacy: 0
|
||||
m_Compressed: 0
|
||||
m_UseHighQualityCurve: 1
|
||||
m_RotationCurves: []
|
||||
m_CompressedRotationCurves: []
|
||||
m_EulerCurves: []
|
||||
m_PositionCurves: []
|
||||
m_ScaleCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: 0, y: 0, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.13333334
|
||||
value: {x: 1.5, y: 1.5, z: 1.5}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.28333333
|
||||
value: {x: 0.9, y: 0.9, z: 0.9}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.38333333
|
||||
value: {x: 1, y: 1, z: 1}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: {x: 0.9, y: 0.9, z: 0.9}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.45
|
||||
value: {x: 1, y: 1, z: 1}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
path:
|
||||
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: 3
|
||||
script: {fileID: 0}
|
||||
typeID: 4
|
||||
customType: 0
|
||||
isPPtrCurve: 0
|
||||
pptrCurveMapping: []
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
m_AdditiveReferencePoseTime: 0
|
||||
m_StartTime: 0
|
||||
m_StopTime: 0.45
|
||||
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: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.13333334
|
||||
value: 1.5
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.28333333
|
||||
value: 0.9
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.38333333
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: 0.9
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.45
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalScale.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.13333334
|
||||
value: 1.5
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.28333333
|
||||
value: 0.9
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.38333333
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: 0.9
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.45
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalScale.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.13333334
|
||||
value: 1.5
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.28333333
|
||||
value: 0.9
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.38333333
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: 0.9
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.45
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalScale.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
m_EulerEditorCurves: []
|
||||
m_HasGenericRootTransform: 0
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d5fd4266a1fc3134293e378a72315d2a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9b728266df0af1b4fa7bf513542ff751
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2300047617e8444448c6cb242f8c2bf8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -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: LifeUI
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters:
|
||||
- m_Name: Recover
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
- m_Name: Remove
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 1107727774132612696}
|
||||
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!114 &114920089147166270
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f7d5bbcfccd21a24a95cf046c5166dc3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &114980154885568056
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f7d5bbcfccd21a24a95cf046c5166dc3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1101 &1101270998068686586
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Remove
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102653121394499118}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101387968803871028
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Recover
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102491497117534312}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101624081044789072
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102224253054077610}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 1
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &1101678955445188244
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102224253054077610}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 1
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &1102224253054077610
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: BlankState
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101270998068686586}
|
||||
- {fileID: 1101387968803871028}
|
||||
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_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 0}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &1102491497117534312
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: RecoverLife
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101678955445188244}
|
||||
m_StateMachineBehaviours:
|
||||
- {fileID: 114980154885568056}
|
||||
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_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 49f2ca81c5c51304f86dcb6cb54cb18f, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &1102653121394499118
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: RemoveLife
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101624081044789072}
|
||||
m_StateMachineBehaviours:
|
||||
- {fileID: 114920089147166270}
|
||||
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_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: d3499261017bbd4478153f45a9696ecf, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1107 &1107618804857518794
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: New Layer
|
||||
m_ChildStates: []
|
||||
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: 0}
|
||||
--- !u!1107 &1107727774132612696
|
||||
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: 1102653121394499118}
|
||||
m_Position: {x: 408, y: 12, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102491497117534312}
|
||||
m_Position: {x: 408, y: 132, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102224253054077610}
|
||||
m_Position: {x: 204, y: 72, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||
m_EntryPosition: {x: 36, y: 72, z: 0}
|
||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 1102224253054077610}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue