修改面向方位Observation,删除TargetStates中的归属状态
修改对应上述Readme文件
This commit is contained in:
@@ -37,7 +37,7 @@ public class MLAgentsCustomController : Agent
|
||||
private float[] rayDisResult;
|
||||
private float[] targetStates;
|
||||
private float remainTime;
|
||||
private float inAreaState;
|
||||
private float inFireBaseState;
|
||||
|
||||
private int endTypeInt;
|
||||
|
||||
@@ -92,22 +92,24 @@ public class MLAgentsCustomController : Agent
|
||||
myObserve[1] = transform.localPosition.y / raySensors.viewDistance;
|
||||
myObserve[2] = transform.localPosition.z / raySensors.viewDistance;
|
||||
myObserve[3] = transform.eulerAngles.y / 360f;**/
|
||||
float angleInRadians = transform.eulerAngles.y * Mathf.Deg2Rad;
|
||||
myObserve[0] = transform.localPosition.x;
|
||||
myObserve[1] = transform.localPosition.y;
|
||||
myObserve[2] = transform.localPosition.z;
|
||||
myObserve[3] = transform.eulerAngles.y / 36f;
|
||||
myObserve[3] = MathF.Sin(angleInRadians);
|
||||
myObserve[4] = MathF.Cos(angleInRadians);
|
||||
rayTagResult = raySensors.rayTagResult;// 探测用RayTag类型结果 float[](raySensorNum,1)
|
||||
rayTagResultOnehot = raySensors.rayTagResultOneHot; // 探测用RayTagonehot结果 List<int>[](raySensorNum*Tags,1)
|
||||
rayDisResult = raySensors.rayDisResult; // 探测用RayDis距离结果 float[](raySensorNum,1)
|
||||
targetStates = targetController.targetState; // (6) targettype, target x,y,z, firebasesAreaDiameter
|
||||
remainTime = targetController.leftTime;
|
||||
inAreaState = targetController.GetInAreaState();
|
||||
inFireBaseState = targetController.GetInAreaState();
|
||||
agentController.UpdateGunState();
|
||||
//float[] focusEnemyObserve = RaySensors.focusEnemyInfo;// 最近的Enemy情报 float[](3,1) MinEnemyIndex,x,z
|
||||
|
||||
//sensor.AddObservation(allEnemyNum); // 敌人数量 int
|
||||
sensor.AddObservation(targetStates);// (6) targettype, target x,y,z, firebasesAreaDiameter
|
||||
sensor.AddObservation(inAreaState); // (1)
|
||||
sensor.AddObservation(targetStates);// (5) targettype, target x,y,z, firebasesAreaDiameter
|
||||
sensor.AddObservation(inFireBaseState); // (1)
|
||||
sensor.AddObservation(remainTime); // (1)
|
||||
sensor.AddObservation(agentController.gunReadyToggle); // (1) save gun is ready?
|
||||
sensor.AddObservation(myObserve); // (4)自机位置xyz+朝向 float[](4,1)
|
||||
@@ -120,7 +122,7 @@ public class MLAgentsCustomController : Agent
|
||||
sensor.AddObservation(rayTagResult);
|
||||
}
|
||||
sensor.AddObservation(rayDisResult); // 探测用RayDis距离结果 float[](raySensorNum,1)
|
||||
envUIController.UpdateStateText(targetStates, inAreaState, remainTime, agentController.gunReadyToggle, myObserve, rayTagResultOnehot, rayDisResult);
|
||||
envUIController.UpdateStateText(targetStates, inFireBaseState, remainTime, agentController.gunReadyToggle, myObserve, rayTagResultOnehot, rayDisResult);
|
||||
/*foreach(float aaa in rayDisResult)
|
||||
{
|
||||
Debug.Log(aaa);
|
||||
|
||||
@@ -38,7 +38,7 @@ public class TargetController : MonoBehaviour
|
||||
[System.NonSerialized] public Targets targetType;
|
||||
[System.NonSerialized] public int gotoLevelNum;
|
||||
[System.NonSerialized] public int attackLevelNum;
|
||||
public float[] targetState = new float[6];
|
||||
public float[] targetState = new float[5];
|
||||
|
||||
public enum EndType
|
||||
{ Win, Lose, Running, Num };
|
||||
@@ -348,7 +348,6 @@ public class TargetController : MonoBehaviour
|
||||
targetState[2] = this.targetPosition.y;
|
||||
targetState[3] = this.targetPosition.z;
|
||||
targetState[4] = sceneBlockCon.nowBlock.firebasesAreaDiameter;
|
||||
targetState[5] = sceneBlockCon.nowBlock.belongRatio;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user