Fixed nan exception
This commit is contained in:
@ -44,14 +44,18 @@ public class MovementController : MonoBehaviour
|
||||
|
||||
private void Update()
|
||||
{
|
||||
var thisPoint = _idNavPointDict[PointStartID];
|
||||
if (ReachedDestination())
|
||||
{
|
||||
_myNpc.ChangePointState(_idNavPointDict[PointStartID].navType == NavPointType.Cover
|
||||
_myNpc.ChangePointState(thisPoint.navType == NavPointType.Cover
|
||||
? NpcEnumState.InCover
|
||||
: NpcEnumState.InDirectPoint);
|
||||
thisPoint.isOcuppied = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
thisPoint.isOcuppied = false;
|
||||
_idNavPointDict[PointEndID].isOcuppied = false;
|
||||
_myNpc.ChangeBodyState(NpcBodyState.Standing);
|
||||
_myNpc.ChangePointState(NpcEnumState.InRunning);
|
||||
}
|
||||
@ -78,7 +82,7 @@ public class MovementController : MonoBehaviour
|
||||
{
|
||||
return MapManager.Instance.NavPoints
|
||||
.Where(point =>
|
||||
(transform.position - point.Position).magnitude < _settings.MovementDistance)
|
||||
(transform.position - point.Position).magnitude < _settings.MovementDistance && point.isOcuppied == false)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
|
@ -132,9 +132,7 @@ public class NPC : Agent, ICharacter
|
||||
//state sensors
|
||||
sensor.AddObservation((int)NpcState.State);
|
||||
sensor.AddObservation((int)NpcBodyState.State);
|
||||
sensor.AddObservation(GameManager.IsEnemyNearby(gameObject.transform.position, GetCharacter.Team));
|
||||
//sensor.AddObservation(_navPointIdDict[_moveController.PointStartID].DeathAttr);
|
||||
//sensor.AddObservation(_navPointIdDict[_moveController.PointEndID].DeathAttr);
|
||||
sensor.AddObservation(GameManager.IsEnemyNearby(gameObject.transform.position, GetCharacter.Team));
|
||||
sensor.AddObservation(_moveController.FlagDistance);
|
||||
|
||||
//point sensors
|
||||
@ -142,13 +140,9 @@ public class NPC : Agent, ICharacter
|
||||
{
|
||||
var position = transform.position;
|
||||
_bufferSensor.AppendObservation(new float[] {
|
||||
point.DeathAttr,
|
||||
(int)point.navType,
|
||||
//4 flagEnemyDistance
|
||||
GameManager.IsCloserToFlagFromNextNavPoint(point, position).ToInt(),
|
||||
//5 EnemyVsNavPointDistance
|
||||
GameManager.IsCloserToEnemyThanToNextNavPoint(point, position, GetCharacter.Team.GetOppositeTeam()).ToInt(),
|
||||
//6 Have been seen by enemy in this point
|
||||
GameManager.IsHaveSeenByEnemy(GetCharacter.Team.GetOppositeTeam(),
|
||||
point.Position).ToInt()
|
||||
});
|
||||
|
Reference in New Issue
Block a user