Explorar el Código

Gun and Targets

Finishing gun shooting
Target spawning and moving, not finished yet
Adam hace 2 semanas
padre
commit
118c4d30df

+ 155 - 0
Assets/Gun/Gun.prefab

@@ -0,0 +1,155 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &381975624112251879
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7685487379554287545}
+  m_Layer: 0
+  m_Name: Muzzle
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7685487379554287545
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 381975624112251879}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0.67, z: 4.9}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 781477290595850036}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &960080401861013727
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    serializedVersion: 3
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalScale.x
+      value: 0.02
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalScale.y
+      value: 0.02
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalScale.z
+      value: 0.02
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_ConstrainProportionsScale
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 919132149155446097, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_Name
+      value: Gun
+      objectReference: {fileID: 0}
+    - target: {fileID: 8164078558771037576, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects:
+    - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      insertIndex: -1
+      addedObject: {fileID: 7685487379554287545}
+    m_AddedComponents:
+    - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+      insertIndex: -1
+      addedObject: {fileID: 4000717163821211417}
+  m_SourcePrefab: {fileID: 100100000, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+--- !u!1 &113590374612618638 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+  m_PrefabInstance: {fileID: 960080401861013727}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &4000717163821211417
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 113590374612618638}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0f1ae8d4454f8184992be44fa9054bde, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: Assembly-CSharp::GunController
+  muzzle: {fileID: 7685487379554287545}
+  Trigger:
+    m_UseReference: 1
+    m_Action:
+      m_Name: Trigger
+      m_Type: 0
+      m_ExpectedControlType: 
+      m_Id: 3c3bafe1-fff7-49a1-8532-4b8674b8452a
+      m_Processors: 
+      m_Interactions: 
+      m_SingletonActionBindings: []
+      m_Flags: 0
+    m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+  shotsPerSecond: 1
+  projectileSpeed: 1
+  projectileLifeTime: 1
+  projectileObject: {fileID: 2592692674484913652, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+--- !u!4 &781477290595850036 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+  m_PrefabInstance: {fileID: 960080401861013727}
+  m_PrefabAsset: {fileID: 0}

+ 7 - 0
Assets/Gun/Gun.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1997582c7a359b94b807e2dc1c7c8b38
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
Assets/Gun/Projectile.prefab

@@ -12,6 +12,7 @@ GameObject:
   - component: {fileID: 5117913526446835661}
   - component: {fileID: 2936595572149547332}
   - component: {fileID: 4818344990488837380}
+  - component: {fileID: 8443425761990774390}
   m_Layer: 0
   m_Name: Projectile
   m_TagString: Untagged
@@ -112,3 +113,17 @@ SphereCollider:
   serializedVersion: 3
   m_Radius: 0.5
   m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &8443425761990774390
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2592692674484913652}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 2b3b3a0f4a94a67429add78bc15e0fff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: Assembly-CSharp::Projectile
+  Direction: {x: 0, y: 0, z: 0}
+  speed: 0

+ 114 - 169
Assets/Scenes/MainVR.unity

@@ -564,7 +564,7 @@ MonoBehaviour:
       m_Interactions: 
       m_SingletonActionBindings: []
       m_Flags: 0
-    m_Reference: {fileID: -2024308242397127297, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+    m_Reference: {fileID: 8248158260566104461, guid: c348712bda248c246b8c49b3db54643f, type: 3}
   m_TrackingStateInput:
     m_UseReference: 1
     m_Action:
@@ -657,37 +657,6 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 8270855663187062767, guid: 1392f805216c47742996d4742c80721c, type: 3}
   m_PrefabInstance: {fileID: 396287397}
   m_PrefabAsset: {fileID: 0}
---- !u!1 &645638753
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 645638754}
-  m_Layer: 0
-  m_Name: Muzzle
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &645638754
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 645638753}
-  serializedVersion: 2
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0.67, z: 4.9}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_ConstrainProportionsScale: 0
-  m_Children: []
-  m_Father: {fileID: 1099725542}
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &874120007
 GameObject:
   m_ObjectHideFlags: 0
@@ -794,130 +763,18 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 874120007}
   serializedVersion: 2
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalRotation: {x: -0, y: 0.714915, z: -0, w: 0.6992115}
   m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_LocalScale: {x: 10.38, y: 1, z: 10.38}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1001 &1099725541
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    serializedVersion: 3
-    m_TransformParent: {fileID: 2022221320}
-    m_Modifications:
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalScale.x
-      value: 0.02
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalScale.y
-      value: 0.02
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalScale.z
-      value: 0.02
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_ConstrainProportionsScale
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 919132149155446097, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      propertyPath: m_Name
-      value: Gun
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-    m_RemovedGameObjects: []
-    m_AddedGameObjects:
-    - targetCorrespondingSourceObject: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      insertIndex: -1
-      addedObject: {fileID: 645638754}
-    m_AddedComponents:
-    - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-      insertIndex: -1
-      addedObject: {fileID: 1099725544}
-  m_SourcePrefab: {fileID: 100100000, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
+  m_LocalEulerAnglesHint: {x: 0, y: 91.272, z: 0}
 --- !u!4 &1099725542 stripped
 Transform:
-  m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-  m_PrefabInstance: {fileID: 1099725541}
-  m_PrefabAsset: {fileID: 0}
---- !u!1 &1099725543 stripped
-GameObject:
-  m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 003fc4a89bee5f748b93b26cfc4aa03a, type: 3}
-  m_PrefabInstance: {fileID: 1099725541}
+  m_CorrespondingSourceObject: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
+  m_PrefabInstance: {fileID: 8663291037314356682}
   m_PrefabAsset: {fileID: 0}
---- !u!114 &1099725544
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1099725543}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 0f1ae8d4454f8184992be44fa9054bde, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: Assembly-CSharp::GunController
-  muzzle: {fileID: 645638754}
-  Trigger:
-    m_UseReference: 1
-    m_Action:
-      m_Name: Trigger
-      m_Type: 0
-      m_ExpectedControlType: 
-      m_Id: 3c3bafe1-fff7-49a1-8532-4b8674b8452a
-      m_Processors: 
-      m_Interactions: 
-      m_SingletonActionBindings: []
-      m_Flags: 0
-    m_Reference: {fileID: 3279264004350380116, guid: c348712bda248c246b8c49b3db54643f, type: 3}
-  shotsPerSecond: 1
-  projectileSpeed: 1
-  projectileObject: {fileID: 0}
 --- !u!1 &1118485128
 GameObject:
   m_ObjectHideFlags: 0
@@ -979,6 +836,37 @@ MonoBehaviour:
   m_EditorClassIdentifier: Unity.XR.Interaction.Toolkit::UnityEngine.XR.Interaction.Toolkit.Inputs.InputActionManager
   m_ActionAssets:
   - {fileID: -944628639613478452, guid: c348712bda248c246b8c49b3db54643f, type: 3}
+--- !u!1 &1125629031
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1125629032}
+  m_Layer: 0
+  m_Name: _Dynamic
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1125629032
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1125629031}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1157830284
 GameObject:
   m_ObjectHideFlags: 0
@@ -1013,6 +901,62 @@ Transform:
   - {fileID: 2022221320}
   m_Father: {fileID: 1482937245}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1444606142
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1444606144}
+  - component: {fileID: 1444606143}
+  m_Layer: 0
+  m_Name: GameManager
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1444606143
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1444606142}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7fd25ce311745d040bc68b6c631ea51d, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: Assembly-CSharp::GameManager
+  player: {fileID: 1482937242}
+  targetPrefab: {fileID: 8033358072928631412, guid: 240714738b094bf479357a6b3e328129, type: 3}
+  gameDuration: 30
+  numberOfTargets: 1
+  targetSpawnDelay: 1
+  targetMoveSpeed: 1
+  targetWaitTime: 1
+  targetSpawnMinDistance: 1
+  targetSpawnMaxDistance: 1
+  targetSpawnAngle: 90
+  targetMovePointMinDistance: 1
+  targetMovePointMaxDistance: 1
+--- !u!4 &1444606144
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1444606142}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1482937242
 GameObject:
   m_ObjectHideFlags: 0
@@ -1070,7 +1014,7 @@ Transform:
   m_GameObject: {fileID: 1482937242}
   serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: -0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -1179,55 +1123,55 @@ MonoBehaviour:
     m_Interactions: 
     m_SingletonActionBindings: []
     m_Flags: 0
---- !u!1001 &3176453405955597242
+--- !u!1001 &8663291037314356682
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
     serializedVersion: 3
-    m_TransformParent: {fileID: 0}
+    m_TransformParent: {fileID: 2022221320}
     m_Modifications:
-    - target: {fileID: 2592692674484913652, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 113590374612618638, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_Name
-      value: Projectile
+      value: Gun
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalPosition.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalPosition.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalPosition.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalRotation.w
       value: 1
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalRotation.x
-      value: 0
+      value: -0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalRotation.y
-      value: 0
+      value: -0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalRotation.z
-      value: 0
+      value: -0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalEulerAnglesHint.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3946056441793895932, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+    - target: {fileID: 781477290595850036, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
@@ -1235,13 +1179,14 @@ PrefabInstance:
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
     m_AddedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 8007d987507d27e439c280639fbf2d0f, type: 3}
+  m_SourcePrefab: {fileID: 100100000, guid: 1997582c7a359b94b807e2dc1c7c8b38, type: 3}
 --- !u!1660057539 &9223372036854775807
 SceneRoots:
   m_ObjectHideFlags: 0
   m_Roots:
+  - {fileID: 1125629032}
+  - {fileID: 1444606144}
   - {fileID: 2407224}
   - {fileID: 874120011}
   - {fileID: 1118485130}
   - {fileID: 1482937245}
-  - {fileID: 3176453405955597242}

+ 128 - 0
Assets/Scripts/GameManager.cs

@@ -0,0 +1,128 @@
+using System;
+using System.Collections;
+using UnityEngine;
+using Random = UnityEngine.Random;
+
+enum GameState
+{
+  START_MENU,
+  GAME_RUNNING,
+  GAME_FINISHED,
+}
+
+public class GameManager : MonoBehaviour
+{
+
+  public GameObject player;
+  public GameObject targetPrefab;
+
+  private GameState gameState;
+
+  // Game
+  public float gameDuration = 30.0f;
+  private float gameTimeRemaining = 0;
+
+  public int numberOfTargets = 3;
+  public float targetSpawnDelay = 1.0f;
+  public float targetMoveSpeed = 1.0f;
+  public float targetWaitTime = 1.0f;
+
+  public float targetSpawnMinDistance = 1.0f;
+  public float targetSpawnMaxDistance = 1.0f;
+  public float targetSpawnAngle = 90;
+
+  public float targetMovePointMinDistance = 1.0f;
+  public float targetMovePointMaxDistance = 1.0f;
+
+
+  // Start is called once before the first execution of Update after the MonoBehaviour is created
+  void Start()
+  {
+    StartCoroutine(SpawnTargetDelay(targetSpawnDelay));
+  }
+
+  // Update is called once per frame
+  void Update()
+  {
+    switch (gameState) {
+      case GameState.START_MENU:
+
+        break;
+      case GameState.GAME_RUNNING:
+        gameTimeRemaining -= Time.deltaTime;
+
+        if (gameTimeRemaining <= 0)
+        {
+          EndGame();
+        }
+
+
+        break;
+      case GameState.GAME_FINISHED:
+
+        break;
+      default:
+        break;
+    }
+  }
+
+  private void StartGame()
+  {
+    gameState = GameState.GAME_RUNNING;
+    gameTimeRemaining = gameDuration;
+
+    for (int i = 0; i < numberOfTargets; i++)
+    {
+      SpawnTarget();
+    }
+  }
+
+
+  private void EndGame()
+  {
+    gameState = GameState.GAME_FINISHED;
+  }
+
+  private IEnumerator SpawnTargetDelay(float delay)
+  {
+    yield return new WaitForSeconds(delay);
+
+    SpawnTarget();
+
+  }
+
+  private void SpawnTarget()
+  {
+    //Determine target spawn position
+    float spawnAngle = Random.Range(-targetSpawnAngle/2,targetSpawnAngle/2);
+    float spawnDistance = Random.Range(targetSpawnMinDistance, targetSpawnMaxDistance);
+
+    spawnAngle = spawnAngle * Mathf.Deg2Rad;
+
+
+    Vector3 spawnPosition = new Vector3(
+      player.transform.position.x + Mathf.Sin(spawnAngle) * spawnDistance,
+      player.transform.position.y,
+      player.transform.position.z + Mathf.Cos(spawnAngle) * spawnDistance
+    );
+
+    //Determine target target position
+    float targetMovePointDistance = Random.Range(targetMovePointMinDistance, targetMovePointMaxDistance);
+    float targetMovePointAngleX = Random.Range(0, 360) * Mathf.Deg2Rad; //affects y and z position
+    float targetMovePointAngleY = Random.Range(0, 360) * Mathf.Deg2Rad; //affects x and z position
+    float targetMovePointAngleZ = Random.Range(0, 360) * Mathf.Deg2Rad; //affects x and y position
+
+    Vector3 targetMovePosition = new Vector3(
+      spawnPosition.x,
+      spawnPosition.y + Mathf.Sin(targetMovePointAngleX),
+      spawnPosition.z
+      );
+
+
+
+    GameObject spawnedTarget = Instantiate(targetPrefab);
+    spawnedTarget.transform.position = spawnPosition;
+
+    Debug.Log("Spawn Target, distance: " + (player.transform.position - spawnedTarget.transform.position).magnitude);
+  }
+}

+ 2 - 0
Assets/Scripts/GameManager.cs.meta

@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 7fd25ce311745d040bc68b6c631ea51d

+ 25 - 4
Assets/Scripts/GunController.cs

@@ -6,34 +6,55 @@ public class GunController : MonoBehaviour
   [SerializeField]
   private Transform muzzle;
   [SerializeField]
-  private InputActionProperty Trigger;
+  private InputActionProperty trigger;
 
   public float shotsPerSecond = 1.0f;
   public float projectileSpeed = 1.0f;
+  public float projectileLifeTime = 1.0f;
 
   public GameObject projectileObject;
 
+  private float lastShotTimestamp;
+
+  private float lastTriggerPress;
+
 
 
 
   // Start is called once before the first execution of Update after the MonoBehaviour is created
   void Start()
   {
-
+    lastShotTimestamp = -1 * (1 / shotsPerSecond);
   }
 
   // Update is called once per frame
   void Update()
   {
-    if (Trigger.action.IsPressed())
+
+
+
+    if (trigger.action.WasPressedThisFrame() && Time.time - lastShotTimestamp >= 1/shotsPerSecond)
     {
       GameObject spawnedObject = Instantiate(projectileObject);
       Projectile projectileScript = spawnedObject.GetComponent<Projectile>();
 
+      GameObject dynamicContainer = GameObject.Find("_Dynamic");
+      if (dynamicContainer != null)
+      {
+        spawnedObject.transform.parent = dynamicContainer.transform;
+      }
+
+      spawnedObject.transform.position = muzzle.position;
+      spawnedObject.transform.rotation = transform.rotation;
+
       if (projectileScript != null) {
-        projectileScript.Direction = Vector3.up;
+        projectileScript.maxLifeTime = projectileLifeTime;
+        projectileScript.speed = projectileSpeed;
       }
 
+
+      lastShotTimestamp = Time.time;
+
       Debug.Log("Shoot");
     }
   }

+ 12 - 3
Assets/Scripts/Projectile.cs

@@ -3,8 +3,9 @@ using UnityEngine;
 public class Projectile : MonoBehaviour
 {
 
-  public Vector3 Direction;
-  public float speed;
+  public float speed = 1.0f;
+  public float maxLifeTime = 100f;
+  private float currentLifeTime = 0f;
 
 
 
@@ -17,6 +18,14 @@ public class Projectile : MonoBehaviour
   // Update is called once per frame
   void Update()
   {
-    transform.position = transform.position + (Direction.normalized * Time.deltaTime * speed);
+    Vector3 direction = transform.forward;
+    transform.position = transform.position + (direction.normalized * Time.deltaTime * speed);
+    currentLifeTime += Time.deltaTime;
+
+    if (currentLifeTime >= maxLifeTime)
+    {
+      Destroy(gameObject);
+    }
+
   }
 }

+ 88 - 0
Assets/Scripts/Target.cs

@@ -0,0 +1,88 @@
+using UnityEngine;
+
+public class Target : MonoBehaviour
+{
+
+  public Vector3 startPosition;
+  public Vector3 targetPosition;
+
+  public float moveSpeed = 1.0f;
+  public float waitTime = 1.0f;
+  private float currentWaitTime = 0f;
+  private bool waiting = false;
+
+
+
+
+  // Start is called once before the first execution of Update after the MonoBehaviour is created
+  void Start()
+  {
+    currentWaitTime = 0;
+    startPosition = transform.position;
+  }
+
+  // Update is called once per frame
+  void Update()
+  {
+    if (waiting)
+    {
+      Waiting();
+    } else
+    {
+      Moving();
+
+      CheckTargetReached();
+
+    }
+  }
+
+  public void SetValue(float moveSpeed, float waitTime, Vector3 targetPosition) {
+    this.moveSpeed = moveSpeed;
+    this.waitTime = waitTime;
+    this.targetPosition = targetPosition;
+  }
+
+
+  private void CheckTargetReached()
+  {
+    if (targetPosition == transform.position)
+    {
+      transform.position = targetPosition;
+      targetPosition = startPosition;
+      startPosition = transform.position;
+
+      currentWaitTime = 0;
+      waiting = true;
+
+    }
+  }
+
+  private void Moving()
+  {
+    Vector3 distanceToTarget = targetPosition - transform.position;
+    Vector3 direction = Vector3.Normalize(distanceToTarget);
+
+
+    Vector3 travel = direction * moveSpeed * Time.deltaTime;
+
+    if (travel.magnitude >= distanceToTarget.magnitude)
+    {
+      travel = distanceToTarget;
+    }
+
+
+
+    transform.position = transform.position + travel;
+  }
+
+
+
+  private void Waiting()
+  {
+    currentWaitTime += Time.deltaTime;
+    if (currentWaitTime > waitTime)
+    {
+      waiting = false;
+    }
+  }
+}

+ 2 - 0
Assets/Scripts/Target.cs.meta

@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: a6f1a628b40f7b240bc827efa0a7318d

+ 16 - 0
Assets/Scripts/TargetSpawner.cs

@@ -0,0 +1,16 @@
+using UnityEngine;
+
+public class TargetSpawner : MonoBehaviour
+{
+  // Start is called once before the first execution of Update after the MonoBehaviour is created
+  void Start()
+  {
+
+  }
+
+  // Update is called once per frame
+  void Update()
+  {
+
+  }
+}

+ 2 - 0
Assets/Scripts/TargetSpawner.cs.meta

@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 7c4ecabfb8d7401419f36423feb035a0

+ 8 - 0
Assets/Target.meta

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

+ 131 - 0
Assets/Target/Target.prefab

@@ -0,0 +1,131 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8033358072928631412
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2046515167918766694}
+  - component: {fileID: 5010663000274505580}
+  - component: {fileID: 6139573393230059954}
+  - component: {fileID: 7599328317053840378}
+  - component: {fileID: 1289258569731027217}
+  m_Layer: 0
+  m_Name: Target
+  m_TagString: Target
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &2046515167918766694
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8033358072928631412}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5010663000274505580
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8033358072928631412}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &6139573393230059954
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8033358072928631412}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RayTracingAccelStructBuildFlagsOverride: 0
+  m_RayTracingAccelStructBuildFlags: 1
+  m_SmallMeshCulling: 1
+  m_ForceMeshLod: -1
+  m_MeshLodSelectionBias: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_GlobalIlluminationMeshLod: 0
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_MaskInteraction: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &7599328317053840378
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8033358072928631412}
+  m_Material: {fileID: 0}
+  m_IncludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ExcludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_LayerOverridePriority: 0
+  m_IsTrigger: 0
+  m_ProvidesContacts: 0
+  m_Enabled: 1
+  serializedVersion: 3
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &1289258569731027217
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8033358072928631412}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a6f1a628b40f7b240bc827efa0a7318d, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: Assembly-CSharp::Target
+  startPosition: {x: 0, y: 0, z: 0}
+  targetPosition: {x: 0, y: 0, z: 0}
+  moveSpeed: 2
+  waitTime: 2

+ 7 - 0
Assets/Target/Target.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 240714738b094bf479357a6b3e328129
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 26
ProjectSettings/TagManager.asset

@@ -2,8 +2,9 @@
 %TAG !u! tag:unity3d.com,2011:
 --- !u!78 &1
 TagManager:
-  serializedVersion: 2
-  tags: []
+  serializedVersion: 3
+  tags:
+  - Target
   layers:
   - Default
   - TransparentFX
@@ -50,27 +51,3 @@ TagManager:
   - Light Layer 5
   - Light Layer 6
   - Light Layer 7
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  - 
-  -