Added Turret targeting
This commit is contained in:
parent
f89ab59fdf
commit
47fdfdbc66
|
@ -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}
|
||||||
|
|
|
@ -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);
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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: []
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue