Added Turret targeting

This commit is contained in:
Stedd 2022-10-01 18:17:16 +02:00
parent f89ab59fdf
commit 47fdfdbc66
4 changed files with 192 additions and 63 deletions

View File

@ -406,7 +406,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8e2a3a5a069cea4cbe59c093201d8dc, type: 3} m_Script: {fileID: 11500000, guid: a8e2a3a5a069cea4cbe59c093201d8dc, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_health: 0 _health: 10
_maxHealth: 0 _maxHealth: 0
_isInvulnerable: 0 _isInvulnerable: 0
_centerPosition: {fileID: 3291032053430181389} _centerPosition: {fileID: 3291032053430181389}

View File

@ -1,3 +1,4 @@
using System;
using AsteroidGame.Entities.Enemies.Scripts; using AsteroidGame.Entities.Enemies.Scripts;
using UnityEngine; using UnityEngine;
@ -14,14 +15,13 @@ namespace AsteroidGame.Entities
[SerializeField] private TargetStrategy _targetStrategy = TargetStrategy.LowestHealth; [SerializeField] private TargetStrategy _targetStrategy = TargetStrategy.LowestHealth;
[Header("Stats")] [Header("Stats")]
[SerializeField] [SerializeField] private float _kills = 0f;
private float _score = 0f; [SerializeField] private float _damageDealt = 0f;
[Header("RigConnections")] [Header("RigConnections")]
[SerializeField] private Transform _turretHead; [SerializeField] private Transform _turretHead;
[SerializeField] private Transform _barrel; [SerializeField] private Transform _barrel;
#region Privates
[Header("Target")] [Header("Target")]
[SerializeField] private SEnemyBaseRuntimeSet _activeEnemies; [SerializeField] private SEnemyBaseRuntimeSet _activeEnemies;
[SerializeField] private EnemyBase _targetEnemy; [SerializeField] private EnemyBase _targetEnemy;
@ -32,10 +32,6 @@ namespace AsteroidGame.Entities
LowestHealth LowestHealth
}; };
[SerializeField] private Transform[] _buildingParts;
#endregion
#region Publics #region Publics
public float MaxDistance { get; set; } public float MaxDistance { get; set; }
@ -50,11 +46,6 @@ namespace AsteroidGame.Entities
#endregion #endregion
private void Awake()
{
_targetEnemy = FindObjectOfType<EnemyBase>();
}
private void Start() private void Start()
{ {
// enemyHandler = FindObjectOfType<EnemyHandler>(); // enemyHandler = FindObjectOfType<EnemyHandler>();
@ -64,7 +55,7 @@ namespace AsteroidGame.Entities
private void Update() private void Update()
{ {
_turretHead.transform.LookAt(_targetEnemy.GetCenterPosition()); FindEnemyTarget();
} }
private void UpdateWeaponParameters(float fireRate, float projectileSpeed) private void UpdateWeaponParameters(float fireRate, float projectileSpeed)
@ -78,49 +69,57 @@ namespace AsteroidGame.Entities
// Update is called once per frame // Update is called once per frame
// private void FindAndShootEnemy() private void FindEnemyTarget()
// { {
// float bestValue = Mathf.Infinity; float currentBestValue = Mathf.Infinity;
// bool targetFound = false; var targetFound = false;
// List<GameObject> enemies = enemyHandler.ReturnAllEnemies();
// foreach (EnemyBase enemy in _activeEnemies._list)
// foreach (GameObject enemy in enemies) {
// { float distanceToTarget = Vector3.Magnitude(enemy.GetCenterPosition() - GetCenterPosition());
// float distanceToTarget = Vector3.Magnitude(enemy.transform.position - transform.position);
// bool withinRange = distanceToTarget < _weaponRange;
// bool withinRange = distanceToTarget < weaponRange; if (withinRange)
// if (withinRange) {
// { switch (_targetStrategy)
// if (targetStrategy == TargetStrategy.ClosestEnemy) {
// { case TargetStrategy.ClosestEnemy:
// bool isClosest = distanceToTarget < bestValue; {
// if (isClosest) bool isClosest = distanceToTarget < currentBestValue;
// { if (isClosest)
// targetFound = true; {
// bestValue = distanceToTarget; targetFound = true;
// targetEnemy = enemy; currentBestValue = distanceToTarget;
// } _targetEnemy = enemy;
// } }
// if (targetStrategy == TargetStrategy.LowestHealth)
// { break;
// float enemyHealth = enemy.GetComponent<EnemyHealth>().Health; }
// case TargetStrategy.LowestHealth:
// bool isLowestHealth = enemyHealth < bestValue; {
// if (isLowestHealth) float enemyHealth = enemy.GetHealth();
// {
// targetFound = true; bool isLowestHealth = enemyHealth < currentBestValue;
// bestValue = enemyHealth; if (isLowestHealth)
// targetEnemy = enemy; {
// } targetFound = true;
// } currentBestValue = enemyHealth;
// } _targetEnemy = enemy;
// } }
//
// if (targetFound) break;
// { }
// weapon.transform.LookAt(targetEnemy.transform.position); default:
throw new ArgumentOutOfRangeException();
}
}
}
if (targetFound)
{
_turretHead.transform.LookAt(_targetEnemy.GetCenterPosition());
// ShootProjectile(true); // ShootProjectile(true);
// } }
// } }
} }
} }

View File

@ -757,14 +757,14 @@ MonoBehaviour:
_maxPower: 10 _maxPower: 10
_currentPower: 0 _currentPower: 0
_structureBaseSet: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2} _structureBaseSet: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
_weaponRange: 40 _weaponRange: 10
_damage: 1 _damage: 1
_fireRate: 1 _fireRate: 1
_projectileSpeed: 5 _projectileSpeed: 5
_targetStrategy: 1 _targetStrategy: 1
_score: 0 _kills: 0
_damageDealt: 0
_turretHead: {fileID: 5103935544653627402} _turretHead: {fileID: 5103935544653627402}
_barrel: {fileID: 5103935545559248087} _barrel: {fileID: 5103935545559248087}
_activeEnemies: {fileID: 11400000, guid: 5f6dc84d75dbd9a459e519de42279066, type: 2} _activeEnemies: {fileID: 11400000, guid: 5f6dc84d75dbd9a459e519de42279066, type: 2}
_targetEnemy: {fileID: 0} _targetEnemy: {fileID: 0}
_buildingParts: []

View File

@ -266,6 +266,8 @@ Transform:
- {fileID: 2079460687} - {fileID: 2079460687}
- {fileID: 1715656626} - {fileID: 1715656626}
- {fileID: 991542217} - {fileID: 991542217}
- {fileID: 1421503444}
- {fileID: 1494435109}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 5 m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -391,6 +393,134 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c2b4fe01faa847f4b976b5539477e1ec, type: 3} m_SourcePrefab: {fileID: 100100000, guid: c2b4fe01faa847f4b976b5539477e1ec, type: 3}
--- !u!1001 &1421503443
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 157782261}
m_Modifications:
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.x
value: 5.96
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.y
value: -0.98203504
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.z
value: -1.35
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5599539567497807159, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_Name
value: Enemy (1)
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
--- !u!4 &1421503444 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
m_PrefabInstance: {fileID: 1421503443}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1494435108
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 157782261}
m_Modifications:
- target: {fileID: 1411216412654489461, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: _health
value: 2
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.x
value: 4.51
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.y
value: -0.98203504
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.z
value: 1.03
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5599539567497807159, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_Name
value: Enemy (2)
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
--- !u!4 &1494435109 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
m_PrefabInstance: {fileID: 1494435108}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1715656625 --- !u!1001 &1715656625
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -404,7 +534,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -0.3173442 value: -6.3
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
@ -412,7 +542,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 0.039061546 value: 11.95
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w