AJout detection de l'ennemi le plus proche, correction bug collision, correction bug monstres attaque de loin

This commit is contained in:
Baptiste 2023-07-23 15:45:58 -04:00
parent e44264d66f
commit b3bb49d9e1
10 changed files with 59 additions and 24 deletions

View File

@ -62,7 +62,7 @@ BoxCollider2D:
m_Enabled: 1 m_Enabled: 1
m_Density: 1 m_Density: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_IsTrigger: 0 m_IsTrigger: 1
m_UsedByEffector: 0 m_UsedByEffector: 0
m_UsedByComposite: 0 m_UsedByComposite: 0
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}

View File

@ -106,7 +106,7 @@ BoxCollider2D:
m_Enabled: 1 m_Enabled: 1
m_Density: 1 m_Density: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_IsTrigger: 0 m_IsTrigger: 1
m_UsedByEffector: 0 m_UsedByEffector: 0
m_UsedByComposite: 0 m_UsedByComposite: 0
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
@ -576,6 +576,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_entity: {fileID: 313037212318601125} _entity: {fileID: 313037212318601125}
_projectile: {fileID: 0}
--- !u!1 &1776168629768863343 --- !u!1 &1776168629768863343
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -495,7 +495,7 @@ BoxCollider2D:
m_Enabled: 1 m_Enabled: 1
m_Density: 1 m_Density: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_IsTrigger: 0 m_IsTrigger: 1
m_UsedByEffector: 0 m_UsedByEffector: 0
m_UsedByComposite: 0 m_UsedByComposite: 0
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}

View File

@ -67,7 +67,7 @@ BoxCollider2D:
m_Enabled: 1 m_Enabled: 1
m_Density: 1 m_Density: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_IsTrigger: 0 m_IsTrigger: 1
m_UsedByEffector: 0 m_UsedByEffector: 0
m_UsedByComposite: 0 m_UsedByComposite: 0
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}

View File

@ -107,7 +107,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 01782bd631a6e1446956ed140a24c530, type: 3} m_Script: {fileID: 11500000, guid: 01782bd631a6e1446956ed140a24c530, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_detectionLinked: {fileID: 3172728477976940186} _detectionLinked: {fileID: 4130391605812397686}
_angle: 10 _angle: 10
_speed: 2 _speed: 2
--- !u!1 &6962989256011107503 --- !u!1 &6962989256011107503
@ -204,7 +204,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 6802302589573039538} - component: {fileID: 6802302589573039538}
- component: {fileID: 7006189111012443782} - component: {fileID: 7006189111012443782}
- component: {fileID: 3172728477976940186} - component: {fileID: 4130391605812397686}
m_Layer: 0 m_Layer: 0
m_Name: detection m_Name: detection
m_TagString: Untagged m_TagString: Untagged
@ -253,7 +253,7 @@ BoxCollider2D:
serializedVersion: 2 serializedVersion: 2
m_Size: {x: 0.2, y: 0.1} m_Size: {x: 0.2, y: 0.1}
m_EdgeRadius: 0 m_EdgeRadius: 0
--- !u!114 &3172728477976940186 --- !u!114 &4130391605812397686
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}

View File

@ -511,7 +511,7 @@ BoxCollider2D:
m_Enabled: 1 m_Enabled: 1
m_Density: 1 m_Density: 1
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_IsTrigger: 0 m_IsTrigger: 1
m_UsedByEffector: 0 m_UsedByEffector: 0
m_UsedByComposite: 0 m_UsedByComposite: 0
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
@ -748,6 +748,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_entity: {fileID: 8585520847943034727} _entity: {fileID: 8585520847943034727}
_projectile: {fileID: 0}
--- !u!1 &6962989255885988245 --- !u!1 &6962989255885988245
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -8,6 +8,7 @@ public class AnimationEntity : MonoBehaviour
private Animator _animatorEntity; private Animator _animatorEntity;
private bool _doSomething = false; private bool _doSomething = false;
private bool _isDead = false; private bool _isDead = false;
private bool _isWalking = false;
void Start() void Start()
{ {
@ -21,6 +22,7 @@ public class AnimationEntity : MonoBehaviour
{ {
PlayIdleAnim(); PlayIdleAnim();
_doSomething = false; _doSomething = false;
_isWalking = false;
} }
} }
@ -35,6 +37,7 @@ public class AnimationEntity : MonoBehaviour
{ {
if(!_isDead) { if(!_isDead) {
_animatorEntity.Play("walk", 0, 0f); _animatorEntity.Play("walk", 0, 0f);
_isWalking = true;
} }
} }
@ -53,4 +56,11 @@ public class AnimationEntity : MonoBehaviour
_isDead = true; _isDead = true;
} }
//SETTER GETTER
public bool IsWalking
{
get { return _isWalking; }
set { _isWalking = value; }
}
} }

View File

@ -18,6 +18,7 @@ public class Detection : MonoBehaviour
//If it's a projectile damage > 0 //If it's a projectile damage > 0
private int _projectileDamage = 0; private int _projectileDamage = 0;
private float _distanceMin = 100f;
void OnTriggerEnter2D(Collider2D other) void OnTriggerEnter2D(Collider2D other)
{ {
@ -29,9 +30,10 @@ public class Detection : MonoBehaviour
//Kill if no hp //Kill if no hp
if(other.gameObject.GetComponent<Entity>().Hp <= 0) { if(other.gameObject.GetComponent<Entity>().Hp <= 0) {
other.gameObject.GetComponent<Entity>().Death(); other.gameObject.GetComponent<Entity>().Death();
_entityLinked = null;
} }
_entityLinked = null;
} }
} }
@ -39,21 +41,32 @@ public class Detection : MonoBehaviour
void OnTriggerStay2D(Collider2D other) void OnTriggerStay2D(Collider2D other)
{ {
if(_entityLinked != null) { if(_entityLinked != null && _projectileDamage == 0) {
if(_entityLinked.Enemy == null) {
//Detect the enemy and inform the Ally //Detect the enemy and inform the Ally
if (other.gameObject.tag == "Opponent" && _entityLinked is Ally) { if (other.gameObject.tag == "Opponent" && _entityLinked.gameObject.tag == "Ally") {
if(other.gameObject.transform.position.x <= _distanceMin) {
_distanceMin = other.gameObject.transform.position.x;
_entityLinked.IsEnemyDetected = true; _entityLinked.IsEnemyDetected = true;
_entityLinked.Enemy = other.gameObject.GetComponent<Entity>(); _entityLinked.Enemy = other.gameObject.GetComponent<Entity>();
} }
}
//Detect the enemy and inform the Opponent //Detect the enemy and inform the Opponent
if (other.gameObject.tag == "Ally" && _entityLinked is Opponent) { if (other.gameObject.tag == "Ally" && _entityLinked.gameObject.tag == "Opponent" ) {
if(other.gameObject.transform.position.x <= _distanceMin) {
_distanceMin = other.gameObject.transform.position.x;
_entityLinked.IsEnemyDetected = true; _entityLinked.IsEnemyDetected = true;
_entityLinked.Enemy = other.gameObject.GetComponent<Entity>(); _entityLinked.Enemy = other.gameObject.GetComponent<Entity>();
} }
} }
if(_entityLinked.Enemy == null && _distanceMin != 100f) {
_distanceMin = 100f;
} }
}
} }

View File

@ -81,6 +81,12 @@ public class Entity : LevelObject
} }
} }
public void move() {
if(!_animation.IsWalking) {
_animation.PlayWalkAnim();
}
}
//GETTERS AND SETTERS //GETTERS AND SETTERS
public int Hp public int Hp

View File

@ -18,15 +18,19 @@ public class Opponent : Entity
void Update() void Update()
{ {
if(IsEnemyDetected) {
AttackEnemy();
}else {
_movementVector.x = -Time.deltaTime * Speed; _movementVector.x = -Time.deltaTime * Speed;
transform.position += (Vector3)_movementVector; transform.position += (Vector3)_movementVector;
if(IsEnemyDetected) { move();
AttackEnemy();
} }
} }
void AttackEnemy() void AttackEnemy()