V2.7 Normalized state
Normalized distance and rotation state.
This commit is contained in:
@@ -1 +1 @@
|
||||
{"count":1,"self":15.2624832,"total":16.0374865,"children":{"InitializeActuators":{"count":16,"self":0.0020017999999999998,"total":0.0020017999999999998,"children":null},"InitializeSensors":{"count":16,"self":0.0020989999999999997,"total":0.0020989999999999997,"children":null},"AgentSendState":{"count":547,"self":0.0070130999999999995,"total":0.034057899999999995,"children":{"CollectObservations":{"count":4376,"self":0.0200301,"total":0.0200301,"children":null},"WriteActionMask":{"count":4376,"self":0.0015003,"total":0.0015003,"children":null},"RequestDecision":{"count":4376,"self":0.0055144,"total":0.0055144,"children":null}}},"DecideAction":{"count":547,"self":0.0085414999999999987,"total":0.0085414999999999987,"children":null},"AgentAct":{"count":547,"self":0.72779699999999992,"total":0.72779699999999992,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1670633960","unity_version":"2021.3.14f1","command_line_arguments":"C:\\Program Files\\Unity\\Hub\\Editor\\2021.3.14f1\\Editor\\Unity.exe -projectpath C:\\Users\\UCUNI\\OneDrive\\Unity\\ML-Agents\\Aimbot-ParallelEnv -useHub -hubIPC -cloudEnvironment production -licensingIpc LicenseClient-BIduOqLJT8GiF8SNWhGj_ -hubSessionId e2ebfc30-77ac-11ed-bf56-45d250d830d4 -accessToken aCi_2ERt33bo42jVTu8X3P-PvUkABd5hiU-fyHtjEnA00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"InGame","end_time_seconds":"1670633976"}}
|
||||
{"count":1,"self":13.315304,"total":13.988529499999999,"children":{"InitializeActuators":{"count":16,"self":0.0014992,"total":0.0014992,"children":null},"InitializeSensors":{"count":16,"self":0.0010057,"total":0.0010057,"children":null},"AgentSendState":{"count":463,"self":0.0070088,"total":0.025683599999999997,"children":{"CollectObservations":{"count":3704,"self":0.0136738,"total":0.0136738,"children":null},"WriteActionMask":{"count":3704,"self":0.0010000999999999999,"total":0.0010000999999999999,"children":null},"RequestDecision":{"count":3704,"self":0.0040009,"total":0.0040009,"children":null}}},"DecideAction":{"count":463,"self":0.0090286,"total":0.0090286,"children":null},"AgentAct":{"count":463,"self":0.63550869999999993,"total":0.63550869999999993,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1670806723","unity_version":"2021.3.14f1","command_line_arguments":"C:\\Program Files\\Unity\\Hub\\Editor\\2021.3.14f1\\Editor\\Unity.exe -projectpath C:\\Users\\UCUNI\\OneDrive\\Unity\\ML-Agents\\Aimbot-ParallelEnv -useHub -hubIPC -cloudEnvironment production -licensingIpc LicenseClient-YRG3pCS8ZgFNZRYWWEQNT -hubSessionId bd156e60-79a0-11ed-822f-5975ccdc385f -accessToken Oh87gx5N8gBlKDUL5eNZyAhhMBi2H5U90gq84xokOa800ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"InGame","end_time_seconds":"1670806737"}}
|
||||
+30319
-30319
File diff suppressed because it is too large
Load Diff
@@ -63,7 +63,7 @@ public class AgentWithGun : Agent
|
||||
private string myTag = "";
|
||||
private float lastEnemyFacingDistance = 0f; // record last enemy facing minimum distance
|
||||
// scripts
|
||||
private RaySensors rayScript;
|
||||
private RaySensors raySensors;
|
||||
private CharacterController PlayerController;
|
||||
private EnvironmentUIControl EnvUICon;
|
||||
private ParameterContainer paramContainer;
|
||||
@@ -82,7 +82,7 @@ public class AgentWithGun : Agent
|
||||
EnvUICon = EnvironmentUIControlObj.GetComponent<EnvironmentUIControl>();
|
||||
targetCon = TargetControllerObj.GetComponent<TargetController>();
|
||||
hudController = HUDObj.GetComponent<HUDController>();
|
||||
rayScript = GetComponent<RaySensors>();
|
||||
raySensors = GetComponent<RaySensors>();
|
||||
PlayerController = this.transform.GetComponent<CharacterController>();
|
||||
// Environment parameters
|
||||
lockMouse = paramContainer.lockMouse;
|
||||
@@ -263,7 +263,7 @@ public class AgentWithGun : Agent
|
||||
{
|
||||
// while if attack mode
|
||||
float targetDis = Vector3.Distance(blockContainer.thisBlock.transform.position, transform.position);
|
||||
if (targetDis <= rayScript.viewDistance)
|
||||
if (targetDis <= raySensors.viewDistance)
|
||||
{
|
||||
// Debug.DrawRay(new Vector3(0,0,0), viewPoint, Color.red);
|
||||
if (Vector3.Distance(ray.origin + (ray.direction * targetDis), blockContainer.thisBlock.transform.position) <= blockContainer.thisBlock.firebasesAreaDiameter / 2)
|
||||
@@ -310,10 +310,10 @@ public class AgentWithGun : Agent
|
||||
isFacingtoEnemy = true;
|
||||
}
|
||||
}
|
||||
if (rayScript.inViewEnemies.Count > 0 && !isFacingtoEnemy) {
|
||||
if (raySensors.inViewEnemies.Count > 0 && !isFacingtoEnemy) {
|
||||
// have enemy in view
|
||||
List<float> projectionDis = new List<float>();
|
||||
foreach (GameObject thisEnemy in rayScript.inViewEnemies)
|
||||
foreach (GameObject thisEnemy in raySensors.inViewEnemies)
|
||||
{
|
||||
// for each enemy in view
|
||||
Vector3 projection = Vector3.Project(thisEnemy.transform.position - transform.position, (ray.direction * 10));
|
||||
@@ -346,7 +346,7 @@ public class AgentWithGun : Agent
|
||||
{
|
||||
// attack mode
|
||||
float targetDis = Vector3.Distance(blockContainer.thisBlock.transform.position, transform.position);
|
||||
if(targetDis <= rayScript.viewDistance)
|
||||
if(targetDis <= raySensors.viewDistance)
|
||||
{
|
||||
// Debug.DrawRay(new Vector3(0,0,0), viewPoint, Color.red);
|
||||
if (Vector3.Distance(ray.origin + (ray.direction * targetDis), blockContainer.thisBlock.transform.position) <= blockContainer.thisBlock.firebasesAreaDiameter / 2)
|
||||
@@ -419,7 +419,7 @@ public class AgentWithGun : Agent
|
||||
{
|
||||
EnvUICon.initChart();
|
||||
}
|
||||
rayScript.updateRayInfo(); // update raycast
|
||||
raySensors.updateRayInfo(); // update raycast
|
||||
}
|
||||
// ML-AGENTS处理-------------------------------------------------------------------------------------------ML-AGENTS
|
||||
// 观察情报
|
||||
@@ -428,10 +428,10 @@ public class AgentWithGun : Agent
|
||||
//List<float> enemyLDisList = RaySensors.enemyLDisList;// All Enemy Lside Distances
|
||||
//List<float> enemyRDisList = RaySensors.enemyRDisList;// All Enemy Rside Distances
|
||||
|
||||
float[] myObserve = { transform.localPosition.x, transform.localPosition.y, transform.localPosition.z, transform.eulerAngles.y/360f };
|
||||
float[] rayTagResult = rayScript.rayTagResult;// 探测用RayTag结果 float[](raySensorNum,1)
|
||||
float[] rayTagResultOnehot = rayScript.rayTagResultOneHot.ToArray(); // 探测用RayTagonehot结果 List<int>[](raySensorNum*Tags,1)
|
||||
float[] rayDisResult = rayScript.rayDisResult; // 探测用RayDis结果 float[](raySensorNum,1)
|
||||
float[] myObserve = { transform.localPosition.x/raySensors.viewDistance, transform.localPosition.y / raySensors.viewDistance, transform.localPosition.z / raySensors.viewDistance, transform.eulerAngles.y/360f };
|
||||
float[] rayTagResult = raySensors.rayTagResult;// 探测用RayTag结果 float[](raySensorNum,1)
|
||||
float[] rayTagResultOnehot = raySensors.rayTagResultOneHot.ToArray(); // 探测用RayTagonehot结果 List<int>[](raySensorNum*Tags,1)
|
||||
float[] rayDisResult = raySensors.rayDisResult; // 探测用RayDis结果 float[](raySensorNum,1)
|
||||
float[] targetStates = targetCon.targetState; // (6) targettype, target x,y,z, firebasesAreaDiameter
|
||||
float remainTime = targetCon.leftTime;
|
||||
gunReadyToggle = gunReady();
|
||||
@@ -452,6 +452,11 @@ public class AgentWithGun : Agent
|
||||
sensor.AddObservation(rayTagResult);
|
||||
}
|
||||
sensor.AddObservation(rayDisResult); // 探测用RayDis结果 float[](raySensorNum,1)
|
||||
/*foreach(float aaa in rayDisResult)
|
||||
{
|
||||
Debug.Log(aaa);
|
||||
}
|
||||
Debug.LogWarning("------------");*/
|
||||
//sensor.AddObservation(focusEnemyObserve); // 最近的Enemy情报 float[](3,1) MinEnemyIndex,x,z
|
||||
//sensor.AddObservation(raySensorNum); // raySensor数量 int
|
||||
//sensor.AddObservation(remainTime); // RemainTime int
|
||||
@@ -473,7 +478,7 @@ public class AgentWithGun : Agent
|
||||
shoot = mouseShoot;
|
||||
cameraControl(Mouse_X, 0);
|
||||
moveAgent(vertical, horizontal);
|
||||
rayScript.updateRayInfo(); // update raycast
|
||||
raySensors.updateRayInfo(); // update raycast
|
||||
|
||||
//判断结束
|
||||
float sceneReward = 0f;
|
||||
|
||||
@@ -63,6 +63,7 @@ public class TargetController : MonoBehaviour
|
||||
private CharacterController agentCharaCon;
|
||||
private WorldUIController worldUICon;
|
||||
private HUDController hudCon;
|
||||
private RaySensors raySensors;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
@@ -84,6 +85,7 @@ public class TargetController : MonoBehaviour
|
||||
paramCon = ParameterContainerObj.GetComponent<ParameterContainer>();
|
||||
worldUICon = WorldUIObj.GetComponent<WorldUIController>();
|
||||
hudCon = HUDObj.GetComponent<HUDController>();
|
||||
raySensors = AgentObj.GetComponent<RaySensors>();
|
||||
freeProb = 1 - attackProb - gotoProb - defenceProb;
|
||||
targetNum = (int)Targets.Num;
|
||||
if (freeProb < 0)
|
||||
@@ -183,7 +185,7 @@ public class TargetController : MonoBehaviour
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("Free");
|
||||
//Debug.Log("Free");
|
||||
targetTypeInt = (int)Targets.Free;
|
||||
enemyCont.destroyAllEnemys();
|
||||
enemyCont.randomInitEnemys(hudCon.enemyNum);
|
||||
@@ -207,10 +209,10 @@ public class TargetController : MonoBehaviour
|
||||
else
|
||||
{
|
||||
targetState[0] = targetTypeInt;
|
||||
targetState[1] = targetPosition.x;
|
||||
targetState[2] = targetPosition.y;
|
||||
targetState[3] = targetPosition.z;
|
||||
targetState[4] = blockCont.thisBlock.firebasesAreaDiameter;
|
||||
targetState[1] = targetPosition.x / raySensors.viewDistance; // normalization
|
||||
targetState[2] = targetPosition.y / raySensors.viewDistance;
|
||||
targetState[3] = targetPosition.z / raySensors.viewDistance;
|
||||
targetState[4] = blockCont.thisBlock.firebasesAreaDiameter / raySensors.viewDistance;
|
||||
targetState[5] = blockCont.thisBlock.belongRatio;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user