解决在commit 03267d2
中添加goto模式的facing reward未对play mode适配的问题。
This commit is contained in:
parent
9087a8c552
commit
779897c874
@ -1 +1 @@
|
|||||||
{"count":1,"self":14.61136,"total":14.758261,"children":{"InitializeActuators":{"count":2,"self":0.0009999,"total":0.0009999,"children":null},"InitializeSensors":{"count":2,"self":0.00099969999999999985,"total":0.00099969999999999985,"children":null},"AgentSendState":{"count":484,"self":0.0034990999999999998,"total":0.0180021,"children":{"CollectObservations":{"count":484,"self":0.0119995,"total":0.0119995,"children":null},"WriteActionMask":{"count":484,"self":0,"total":0,"children":null},"RequestDecision":{"count":484,"self":0.0025035,"total":0.0025035,"children":null}}},"DecideAction":{"count":484,"self":0.0029993,"total":0.0029993,"children":null},"AgentAct":{"count":484,"self":0.1239006,"total":0.1239006,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1698085512","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-3RTM9hQ6yJRZGQKZx8Slg -hubSessionId a9694f1b-42f4-414c-9f3a-decdfec467f4 -accessToken 0RXRt4Gr5-wz9bb63SDgNZNzv9nApR3GYqka0HInnGM00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Play","end_time_seconds":"1698085527"}}
|
{"count":1,"self":8.5270087999999991,"total":8.5798268,"children":{"InitializeActuators":{"count":2,"self":0.0009999,"total":0.0009999,"children":null},"InitializeSensors":{"count":2,"self":0.0015000999999999999,"total":0.0015000999999999999,"children":null},"AgentSendState":{"count":183,"self":0.0020001,"total":0.0074968,"children":{"CollectObservations":{"count":183,"self":0.0034971,"total":0.0034971,"children":null},"WriteActionMask":{"count":183,"self":0.001,"total":0.001,"children":null},"RequestDecision":{"count":183,"self":0.0009996,"total":0.0009996,"children":null}}},"DecideAction":{"count":183,"self":0.0030022,"total":0.0030022,"children":null},"AgentAct":{"count":183,"self":0.0393183,"total":0.0393183,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1698173938","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-3RTM9hQ6yJRZGQKZx8Slg -hubSessionId a9694f1b-42f4-414c-9f3a-decdfec467f4 -accessToken ILZ68Yi-AKrQdQecLlrJbt9jO5T6wytkNtTUsAQRokI00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Play","end_time_seconds":"1698173947"}}
|
@ -1 +1 @@
|
|||||||
{"count":1,"self":14.1656544,"total":14.3145136,"children":{"InitializeActuators":{"count":2,"self":0.0015011999999999998,"total":0.0015011999999999998,"children":null},"InitializeSensors":{"count":2,"self":0.0009999,"total":0.0009999,"children":null},"AgentSendState":{"count":454,"self":0.003999,"total":0.027000399999999997,"children":{"CollectObservations":{"count":454,"self":0.0205008,"total":0.0205008,"children":null},"WriteActionMask":{"count":454,"self":0,"total":0,"children":null},"RequestDecision":{"count":454,"self":0.0025006,"total":0.0025006,"children":null}}},"DecideAction":{"count":454,"self":0.0068705,"total":0.0068705,"children":null},"AgentAct":{"count":454,"self":0.11198749999999999,"total":0.11198749999999999,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1698085370","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-3RTM9hQ6yJRZGQKZx8Slg -hubSessionId a9694f1b-42f4-414c-9f3a-decdfec467f4 -accessToken 0RXRt4Gr5-wz9bb63SDgNZNzv9nApR3GYqka0HInnGM00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1698085385"}}
|
{"count":1,"self":9.229641599999999,"total":9.3225,"children":{"InitializeActuators":{"count":2,"self":0.0020006,"total":0.0020006,"children":null},"InitializeSensors":{"count":2,"self":0.0015000999999999999,"total":0.0015000999999999999,"children":null},"AgentSendState":{"count":181,"self":0.0019981,"total":0.0168523,"children":{"CollectObservations":{"count":181,"self":0.011856199999999999,"total":0.011856199999999999,"children":null},"WriteActionMask":{"count":181,"self":0.0004999,"total":0.0004999,"children":null},"RequestDecision":{"count":181,"self":0.0024981,"total":0.0024981,"children":null}}},"DecideAction":{"count":181,"self":0.0040031,"total":0.0040031,"children":null},"AgentAct":{"count":181,"self":0.0680028,"total":0.0680028,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1698171221","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-3RTM9hQ6yJRZGQKZx8Slg -hubSessionId a9694f1b-42f4-414c-9f3a-decdfec467f4 -accessToken ILZ68Yi-AKrQdQecLlrJbt9jO5T6wytkNtTUsAQRokI00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1698171230"}}
|
@ -53,8 +53,8 @@ private void Start()
|
|||||||
/// <param name="shootState">State of the shooting action.</param>
|
/// <param name="shootState">State of the shooting action.</param>
|
||||||
/// <returns>Returns the calculated total reward value.</returns>
|
/// <returns>Returns the calculated total reward value.</returns>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// This method calculates the total reward based on the provided parameters,
|
/// This method calculates the total reward based on the provided parameters,
|
||||||
/// taking into account rewards for enemy kills, shooting actions, facing reward,
|
/// taking into account rewards for enemy kills, shooting actions, facing reward,
|
||||||
/// and penalties such as spin and movement.
|
/// and penalties such as spin and movement.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public float RewardCalculate(float sceneReward, float mouseX, float movement, int shootState)
|
public float RewardCalculate(float sceneReward, float mouseX, float movement, int shootState)
|
||||||
@ -108,7 +108,7 @@ public float RewardCalculate(float sceneReward, float mouseX, float movement, in
|
|||||||
/// <param name="shootState">State value of the shooting action.</param>
|
/// <param name="shootState">State value of the shooting action.</param>
|
||||||
/// <returns>Returns the reward value associated with shooting.</returns>
|
/// <returns>Returns the reward value associated with shooting.</returns>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// This method calculates the reward value based on the shooting state and other related conditions,
|
/// This method calculates the reward value based on the shooting state and other related conditions,
|
||||||
/// such as whether the enemy was hit, whether the shot was towards the target area, and whether the gun was ready to shoot.
|
/// such as whether the enemy was hit, whether the shot was towards the target area, and whether the gun was ready to shoot.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
private float Ballistic(int shootState)
|
private float Ballistic(int shootState)
|
||||||
@ -132,7 +132,7 @@ private float Ballistic(int shootState)
|
|||||||
return HitEnemyReward(gotHitObj.transform.position);
|
return HitEnemyReward(gotHitObj.transform.position);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (targetCon.targetTypeInt == (int)Targets.Attack)
|
if (targetCon.targetType == Targets.Attack)
|
||||||
{
|
{
|
||||||
// while if attack mode
|
// while if attack mode
|
||||||
float targetDis = Vector3.Distance(sceneBlockCon.nowBlock.transform.position, transform.position);
|
float targetDis = Vector3.Distance(sceneBlockCon.nowBlock.transform.position, transform.position);
|
||||||
@ -175,16 +175,133 @@ private float Ballistic(int shootState)
|
|||||||
/// </remarks>
|
/// </remarks>
|
||||||
private float FacingReward()
|
private float FacingReward()
|
||||||
{
|
{
|
||||||
float nowReward = 0;
|
|
||||||
bool isFacingtoEnemy = false;
|
|
||||||
float enemyFacingDistance = 0f;
|
|
||||||
|
|
||||||
Vector3 screenCenter = new Vector3(fpsCam.pixelWidth / 2, fpsCam.pixelHeight / 2, 0);
|
Vector3 screenCenter = new Vector3(fpsCam.pixelWidth / 2, fpsCam.pixelHeight / 2, 0);
|
||||||
Vector3 screenLeft = new Vector3(0, fpsCam.pixelHeight / 2, 0);
|
Vector3 screenLeft = new Vector3(0, fpsCam.pixelHeight / 2, 0);
|
||||||
|
|
||||||
Ray centerRay = fpsCam.ScreenPointToRay(screenCenter);
|
Ray centerRay = fpsCam.ScreenPointToRay(screenCenter);
|
||||||
Ray leftRay = fpsCam.ScreenPointToRay(screenLeft);
|
Ray leftRay = fpsCam.ScreenPointToRay(screenLeft);
|
||||||
|
|
||||||
|
switch (targetCon.targetType)
|
||||||
|
{
|
||||||
|
case Targets.Free:
|
||||||
|
return FacingRewardFree(centerRay);
|
||||||
|
|
||||||
|
case Targets.Attack:
|
||||||
|
return FacingRewardAttack(centerRay, leftRay);
|
||||||
|
|
||||||
|
case Targets.Go:
|
||||||
|
return FacingRewardGo(centerRay, leftRay);
|
||||||
|
|
||||||
|
case Targets.Stay:
|
||||||
|
// stay mode has no facing reward
|
||||||
|
return 0f;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Debug.LogError("Wrong target type");
|
||||||
|
return 0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private float FacingRewardFree(Ray centerRay)
|
||||||
|
{
|
||||||
|
float nowReward = 0;
|
||||||
|
float enemyFacingDistance = 0f;
|
||||||
|
bool isFacingtoEnemy = false;
|
||||||
|
RaycastHit hit;
|
||||||
|
if (Physics.Raycast(centerRay, out hit, 100))
|
||||||
|
{
|
||||||
|
// facing to an enemy
|
||||||
|
if (hit.collider.tag != agentCon.myTag && hit.collider.tag != "Wall")
|
||||||
|
{
|
||||||
|
nowReward = commonParamCon.facingReward;
|
||||||
|
isFacingtoEnemy = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (raySensors.inViewEnemies.Count > 0 && !isFacingtoEnemy)
|
||||||
|
{
|
||||||
|
// have enemy in view
|
||||||
|
List<float> projectionDis = new List<float>();
|
||||||
|
foreach (GameObject theEnemy in raySensors.inViewEnemies)
|
||||||
|
{
|
||||||
|
// for each enemy in view
|
||||||
|
Vector3 projection = Vector3.Project(theEnemy.transform.position - transform.position, (centerRay.direction * 10));
|
||||||
|
Vector3 verticalToRay = transform.position + projection - theEnemy.transform.position;
|
||||||
|
projectionDis.Add(verticalToRay.magnitude);
|
||||||
|
// Debug.Log("enemy!" + verticalToRay.magnitude);
|
||||||
|
// Debug.DrawRay(transform.position, (centerRay.direction * 100), Color.cyan);
|
||||||
|
// Debug.DrawRay(transform.position, theEnemy.transform.position - transform.position, Color.yellow);
|
||||||
|
// Debug.DrawRay(transform.position, projection, Color.blue);
|
||||||
|
// Debug.DrawRay(theEnemy.transform.position, verticalToRay, Color.magenta);
|
||||||
|
}
|
||||||
|
enemyFacingDistance = projectionDis.Min();
|
||||||
|
if (enemyFacingDistance <= lastEnemyFacingDistance)
|
||||||
|
{
|
||||||
|
// closing to enemy
|
||||||
|
nowReward = 1 / MathF.Sqrt(commonParamCon.facingInviewEnemyDisCOEF * enemyFacingDistance + 0.00001f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nowReward = 0;
|
||||||
|
}
|
||||||
|
// enemy in view Reward
|
||||||
|
lastEnemyFacingDistance = enemyFacingDistance;
|
||||||
|
if (nowReward >= commonParamCon.facingReward) nowReward = commonParamCon.facingReward; // limit
|
||||||
|
if (nowReward <= -commonParamCon.facingReward) nowReward = -commonParamCon.facingReward; // limit
|
||||||
|
// Debug.Log("ninimum = " + nowReward);
|
||||||
|
}
|
||||||
|
return nowReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
private float FacingRewardGo(Ray centerRay, Ray leftRay)
|
||||||
|
{
|
||||||
|
float nowReward = 0;
|
||||||
|
float camCenterToFireBase;
|
||||||
|
float camCenterToViewEdge;
|
||||||
|
(camCenterToFireBase, camCenterToViewEdge, _) = CameraCenterToFireBaseAndViewEdge(centerRay, leftRay);
|
||||||
|
|
||||||
|
// goto mode
|
||||||
|
if (camCenterToFireBase <= camCenterToViewEdge)
|
||||||
|
{
|
||||||
|
// fireArea is in view
|
||||||
|
nowReward = commonParamCon.facingReward;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nowReward = 0;
|
||||||
|
}
|
||||||
|
return nowReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
private float FacingRewardAttack(Ray centerRay, Ray leftRay)
|
||||||
|
{
|
||||||
|
float nowReward = 0;
|
||||||
|
float camCenterToFireBase;
|
||||||
|
float targetDis;
|
||||||
|
(camCenterToFireBase, _, targetDis) = CameraCenterToFireBaseAndViewEdge(centerRay, leftRay);
|
||||||
|
// attack mode
|
||||||
|
if (targetDis <= raySensors.viewDistance)
|
||||||
|
{
|
||||||
|
// Debug.DrawRay(new Vector3(0,0,0), viewPoint, Color.red);
|
||||||
|
// while center of screen between target's distance is lower than firebasesAreaDiameter
|
||||||
|
// while facing to target
|
||||||
|
if (camCenterToFireBase <= sceneBlockCon.nowBlock.firebasesAreaDiameter / 2)
|
||||||
|
{
|
||||||
|
// Debug.DrawRay(centerRay.origin, viewPoint-centerRay.origin, Color.blue);
|
||||||
|
nowReward = commonParamCon.facingReward;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// while not facing to target
|
||||||
|
nowReward = (lastTargetFacingDistance - camCenterToFireBase) * commonParamCon.facingTargetReward;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// update lastTargetFacingDistance
|
||||||
|
lastTargetFacingDistance = camCenterToFireBase;
|
||||||
|
return nowReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
private (float, float, float) CameraCenterToFireBaseAndViewEdge(Ray centerRay, Ray leftRay)
|
||||||
|
{
|
||||||
// target fireBaseArea Position, turen y to camera's y
|
// target fireBaseArea Position, turen y to camera's y
|
||||||
Vector3 fireBaseArea = sceneBlockCon.nowBlock.fireBasesAreaObj.transform.position;
|
Vector3 fireBaseArea = sceneBlockCon.nowBlock.fireBasesAreaObj.transform.position;
|
||||||
fireBaseArea.y = fpsCam.transform.position.y;
|
fireBaseArea.y = fpsCam.transform.position.y;
|
||||||
@ -204,100 +321,12 @@ private float FacingReward()
|
|||||||
|
|
||||||
// center of screen to target's distance
|
// center of screen to target's distance
|
||||||
// Debug.DrawLine(pointInCenterRay, fireBaseArea,Color.green);
|
// Debug.DrawLine(pointInCenterRay, fireBaseArea,Color.green);
|
||||||
float camCenterToTarget = Vector3.Distance(pointInCenterRay, fireBaseArea);
|
float camCenterToFireBase = Vector3.Distance(pointInCenterRay, fireBaseArea);
|
||||||
|
|
||||||
// left of screen to target's distance
|
// left of screen to target's distance
|
||||||
// Debug.DrawLine(pointInLeftRay, pointInCenterRay, Color.yellow);
|
// Debug.DrawLine(pointInLeftRay, pointInCenterRay, Color.yellow);
|
||||||
float camCenterToViewEdge = Vector3.Distance(pointInLeftRay, pointInCenterRay);
|
float camCenterToViewEdge = Vector3.Distance(pointInLeftRay, pointInCenterRay);
|
||||||
|
return (camCenterToFireBase, camCenterToViewEdge, targetDis);
|
||||||
switch (targetCon.targetTypeInt)
|
|
||||||
{
|
|
||||||
case (int)Targets.Free:
|
|
||||||
//free mode
|
|
||||||
RaycastHit hit;
|
|
||||||
if (Physics.Raycast(centerRay, out hit, 100))
|
|
||||||
{
|
|
||||||
// facing to an enemy
|
|
||||||
if (hit.collider.tag != agentCon.myTag && hit.collider.tag != "Wall")
|
|
||||||
{
|
|
||||||
nowReward = commonParamCon.facingReward;
|
|
||||||
isFacingtoEnemy = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (raySensors.inViewEnemies.Count > 0 && !isFacingtoEnemy)
|
|
||||||
{
|
|
||||||
// have enemy in view
|
|
||||||
List<float> projectionDis = new List<float>();
|
|
||||||
foreach (GameObject theEnemy in raySensors.inViewEnemies)
|
|
||||||
{
|
|
||||||
// for each enemy in view
|
|
||||||
Vector3 projection = Vector3.Project(theEnemy.transform.position - transform.position, (centerRay.direction * 10));
|
|
||||||
Vector3 verticalToRay = transform.position + projection - theEnemy.transform.position;
|
|
||||||
projectionDis.Add(verticalToRay.magnitude);
|
|
||||||
// Debug.Log("enemy!" + verticalToRay.magnitude);
|
|
||||||
// Debug.DrawRay(transform.position, (centerRay.direction * 100), Color.cyan);
|
|
||||||
// Debug.DrawRay(transform.position, theEnemy.transform.position - transform.position, Color.yellow);
|
|
||||||
// Debug.DrawRay(transform.position, projection, Color.blue);
|
|
||||||
// Debug.DrawRay(theEnemy.transform.position, verticalToRay, Color.magenta);
|
|
||||||
}
|
|
||||||
enemyFacingDistance = projectionDis.Min();
|
|
||||||
if (enemyFacingDistance <= lastEnemyFacingDistance)
|
|
||||||
{
|
|
||||||
// closing to enemy
|
|
||||||
nowReward = 1 / MathF.Sqrt(commonParamCon.facingInviewEnemyDisCOEF * enemyFacingDistance + 0.00001f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nowReward = 0;
|
|
||||||
}
|
|
||||||
// enemy in view Reward
|
|
||||||
lastEnemyFacingDistance = enemyFacingDistance;
|
|
||||||
if (nowReward >= commonParamCon.facingReward) nowReward = commonParamCon.facingReward; // limit
|
|
||||||
if (nowReward <= -commonParamCon.facingReward) nowReward = -commonParamCon.facingReward; // limit
|
|
||||||
// Debug.Log("ninimum = " + nowReward);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case (int)Targets.Attack:
|
|
||||||
// attack mode
|
|
||||||
if (targetDis <= raySensors.viewDistance)
|
|
||||||
{
|
|
||||||
// Debug.DrawRay(new Vector3(0,0,0), viewPoint, Color.red);
|
|
||||||
// while center of screen between target's distance is lower than firebasesAreaDiameter
|
|
||||||
// while facing to target
|
|
||||||
if (camCenterToTarget <= sceneBlockCon.nowBlock.firebasesAreaDiameter / 2)
|
|
||||||
{
|
|
||||||
// Debug.DrawRay(centerRay.origin, viewPoint-centerRay.origin, Color.blue);
|
|
||||||
nowReward = commonParamCon.facingReward;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// while not facing to target
|
|
||||||
nowReward = (lastTargetFacingDistance - camCenterToTarget) * commonParamCon.facingTargetReward;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// update lastTargetFacingDistance
|
|
||||||
lastTargetFacingDistance = camCenterToTarget;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case (int)Targets.Go:
|
|
||||||
// goto mode
|
|
||||||
if (camCenterToTarget <= camCenterToViewEdge)
|
|
||||||
{
|
|
||||||
// fireArea is in view
|
|
||||||
nowReward = commonParamCon.facingReward;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nowReward = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
Debug.LogError("Wrong target type");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return nowReward;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -310,24 +339,24 @@ private float FacingReward()
|
|||||||
int endTypeInt = 0;
|
int endTypeInt = 0;
|
||||||
float nowReward = 0;
|
float nowReward = 0;
|
||||||
float endReward = 0;
|
float endReward = 0;
|
||||||
switch (targetCon.targetTypeInt)
|
switch (targetCon.targetType)
|
||||||
{
|
{
|
||||||
case (int)Targets.Go:
|
case Targets.Go:
|
||||||
// goto
|
// goto
|
||||||
(endTypeInt, nowReward, endReward) = CheckOverAndRewardsGo();
|
(endTypeInt, nowReward, endReward) = CheckOverAndRewardsGo();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)Targets.Attack:
|
case Targets.Attack:
|
||||||
// attack
|
// attack
|
||||||
(endTypeInt, nowReward, endReward) = CheckOverAndRewardsAttack();
|
(endTypeInt, nowReward, endReward) = CheckOverAndRewardsAttack();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)Targets.Defence:
|
case Targets.Defence:
|
||||||
//defence
|
//defence
|
||||||
(endTypeInt, nowReward, endReward) = CheckOverAndRewardsDefence();
|
(endTypeInt, nowReward, endReward) = CheckOverAndRewardsDefence();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)Targets.Stay:
|
case Targets.Stay:
|
||||||
// Stay
|
// Stay
|
||||||
// endless
|
// endless
|
||||||
nowReward = 0;
|
nowReward = 0;
|
||||||
@ -522,7 +551,7 @@ private float GetDistanceReward(float nowDistance, int inarea)
|
|||||||
public float KillReward(Vector3 enemyPosition)
|
public float KillReward(Vector3 enemyPosition)
|
||||||
{
|
{
|
||||||
float nowKillReward = 0f;
|
float nowKillReward = 0f;
|
||||||
if (targetCon.targetTypeInt == (int)Targets.Attack)
|
if (targetCon.targetType == Targets.Attack)
|
||||||
{
|
{
|
||||||
// attack mode
|
// attack mode
|
||||||
(_, int isInArea) = sceneBlockCon.nowBlock.GetDistInArea(enemyPosition);
|
(_, int isInArea) = sceneBlockCon.nowBlock.GetDistInArea(enemyPosition);
|
||||||
@ -536,7 +565,7 @@ public float KillReward(Vector3 enemyPosition)
|
|||||||
nowKillReward = commonParamCon.killNonTargetReward;
|
nowKillReward = commonParamCon.killNonTargetReward;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (targetCon.targetTypeInt == (int)Targets.Free)
|
else if (targetCon.targetType == Targets.Free)
|
||||||
{
|
{
|
||||||
// free mode hit
|
// free mode hit
|
||||||
nowKillReward = paramCon.killTargetEnemyReward;
|
nowKillReward = paramCon.killTargetEnemyReward;
|
||||||
@ -557,7 +586,7 @@ public float KillReward(Vector3 enemyPosition)
|
|||||||
public float HitEnemyReward(Vector3 enemyPosition)
|
public float HitEnemyReward(Vector3 enemyPosition)
|
||||||
{
|
{
|
||||||
float nowHitReward = 0f;
|
float nowHitReward = 0f;
|
||||||
if (targetCon.targetTypeInt == (int)Targets.Attack)
|
if (targetCon.targetType == Targets.Attack)
|
||||||
{
|
{
|
||||||
// attack mode
|
// attack mode
|
||||||
(_, int isInArea) = sceneBlockCon.nowBlock.GetDistInArea(enemyPosition);
|
(_, int isInArea) = sceneBlockCon.nowBlock.GetDistInArea(enemyPosition);
|
||||||
@ -572,7 +601,7 @@ public float HitEnemyReward(Vector3 enemyPosition)
|
|||||||
nowHitReward = commonParamCon.hitNonTargetReward;
|
nowHitReward = commonParamCon.hitNonTargetReward;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (targetCon.targetTypeInt == (int)Targets.Free)
|
else if (targetCon.targetType == Targets.Free)
|
||||||
{
|
{
|
||||||
// free mode hit
|
// free mode hit
|
||||||
nowHitReward = paramCon.hitTargetReward;
|
nowHitReward = paramCon.hitTargetReward;
|
||||||
|
@ -3302,7 +3302,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 0.000030517578, y: -246.20215}
|
m_AnchoredPosition: {x: 0.000030517578, y: -246.20192}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0, y: 0}
|
m_Pivot: {x: 0, y: 0}
|
||||||
--- !u!114 &324069808
|
--- !u!114 &324069808
|
||||||
@ -7165,7 +7165,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
agentCam: {fileID: 1633276149}
|
agentCam: {fileID: 1633276149}
|
||||||
TPSCam: {fileID: 1586670226}
|
TPSCam: {fileID: 1586670226}
|
||||||
lineMeterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 3}
|
lineMeterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
rayInfoPrefab: {fileID: 2963094767576631243, guid: e13f99706bb4ffe459a06857048ece22, type: 3}
|
rayInfoPrefab: {fileID: 2963094767576631243, guid: e13f99706bb4ffe459a06857048ece22, type: 3}
|
||||||
agentCanvas: {fileID: 1054491405}
|
agentCanvas: {fileID: 1054491405}
|
||||||
viewDistance: 100
|
viewDistance: 100
|
||||||
@ -12793,7 +12793,7 @@ MonoBehaviour:
|
|||||||
m_HandleRect: {fileID: 538300382}
|
m_HandleRect: {fileID: 538300382}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
m_Size: 0.9999897
|
m_Size: 0.9998836
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
@ -19532,7 +19532,7 @@ MonoBehaviour:
|
|||||||
m_GameObject: {fileID: 1866094461}
|
m_GameObject: {fileID: 1866094461}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: ea781484763623c438c1806e3a965667, type: 3}
|
m_Script: {fileID: 11500000, guid: 9585e6d628809d14ba93cb74005c3514, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
--- !u!4 &1866094463
|
--- !u!4 &1866094463
|
||||||
@ -20068,7 +20068,7 @@ MonoBehaviour:
|
|||||||
enemyContainerObj: {fileID: 891195334}
|
enemyContainerObj: {fileID: 891195334}
|
||||||
sceneBlockContainerObj: {fileID: 1811162388}
|
sceneBlockContainerObj: {fileID: 1811162388}
|
||||||
targetControllerObj: {fileID: 1692325237}
|
targetControllerObj: {fileID: 1692325237}
|
||||||
parameterContainerObj: {fileID: 707336050}
|
commonParameterContainerObj: {fileID: 220347584}
|
||||||
HUDObj: {fileID: 2082200184}
|
HUDObj: {fileID: 2082200184}
|
||||||
mouseMode: 0
|
mouseMode: 0
|
||||||
blockLevel: 0
|
blockLevel: 0
|
||||||
|
@ -55,7 +55,7 @@ private void Start()
|
|||||||
envUIController = environmentUIObj.GetComponent<EnvironmentUIControl>();
|
envUIController = environmentUIObj.GetComponent<EnvironmentUIControl>();
|
||||||
hudController = hudObj.GetComponent<HUDController>();
|
hudController = hudObj.GetComponent<HUDController>();
|
||||||
targetUIController = hudObj.GetComponent<TargetUIController>();
|
targetUIController = hudObj.GetComponent<TargetUIController>();
|
||||||
messageBoxController = worldUIControllerObj.GetComponent<MessageBoxController>();
|
messageBoxController = hudObj.GetComponent<MessageBoxController>();
|
||||||
sideChannelController = sideChannelObj.GetComponent<AimBotSideChannelController>();
|
sideChannelController = sideChannelObj.GetComponent<AimBotSideChannelController>();
|
||||||
rewardFunction = gameObject.GetComponent<RewardFunction>();
|
rewardFunction = gameObject.GetComponent<RewardFunction>();
|
||||||
worldUICon = worldUIControllerObj.GetComponent<WorldUIController>();
|
worldUICon = worldUIControllerObj.GetComponent<WorldUIController>();
|
||||||
@ -163,13 +163,13 @@ public override void OnActionReceived(ActionBuffers actionBuffers)
|
|||||||
{
|
{
|
||||||
envUIController.RemoveChart();
|
envUIController.RemoveChart();
|
||||||
}
|
}
|
||||||
worldUICon.UpdateChart(targetController.targetTypeInt, endTypeInt);
|
worldUICon.UpdateChart(targetController.targetType, endTypeInt);
|
||||||
//Debug.Log("reward = " + nowReward);
|
//Debug.Log("reward = " + nowReward);
|
||||||
if (endTypeInt != (int)TargetController.EndType.Running)
|
if (endTypeInt != (int)TargetController.EndType.Running)
|
||||||
{
|
{
|
||||||
// Win or lose Finished
|
// Win or lose Finished
|
||||||
Debug.Log("Finish reward = " + nowReward);
|
Debug.Log("Finish reward = " + nowReward);
|
||||||
string targetString = Enum.GetName(typeof(Targets), targetController.targetTypeInt);
|
string targetString = Enum.GetName(typeof(Targets), targetController.targetType);
|
||||||
switch (endTypeInt)
|
switch (endTypeInt)
|
||||||
{
|
{
|
||||||
case (int)TargetController.EndType.Win:
|
case (int)TargetController.EndType.Win:
|
||||||
|
@ -93,7 +93,7 @@ private void Start()
|
|||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
// get target distance and in area
|
// get target distance and in area
|
||||||
if (targetCon.targetTypeInt is (int)Targets.Go or (int)Targets.Attack)
|
if (targetCon.targetType is Targets.Go or Targets.Attack)
|
||||||
{
|
{
|
||||||
(agentDistance, agentInArea) = blockCont.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
(agentDistance, agentInArea) = blockCont.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||||
// attack goto or defence target
|
// attack goto or defence target
|
||||||
|
@ -36,7 +36,7 @@ public class TargetController : MonoBehaviour
|
|||||||
[SerializeField, Range(0f, 1f)] public float gotoProb = 0.2f;
|
[SerializeField, Range(0f, 1f)] public float gotoProb = 0.2f;
|
||||||
[SerializeField, Range(0f, 1f)] public float defenceProb = 0.2f;
|
[SerializeField, Range(0f, 1f)] public float defenceProb = 0.2f;
|
||||||
|
|
||||||
[System.NonSerialized] public int targetTypeInt;
|
[System.NonSerialized] public Targets targetType;
|
||||||
[System.NonSerialized] public int gotoLevelNum;
|
[System.NonSerialized] public int gotoLevelNum;
|
||||||
[System.NonSerialized] public int attackLevelNum;
|
[System.NonSerialized] public int attackLevelNum;
|
||||||
public float[] targetState = new float[6];
|
public float[] targetState = new float[6];
|
||||||
@ -150,7 +150,7 @@ public void RollNewScene()
|
|||||||
{
|
{
|
||||||
// goto target spawn
|
// goto target spawn
|
||||||
Debug.Log("GOTO THIS TARGET!");
|
Debug.Log("GOTO THIS TARGET!");
|
||||||
targetTypeInt = (int)Targets.Go;
|
targetType = Targets.Go;
|
||||||
RandomSpawnSceneBlock(Targets.Go);
|
RandomSpawnSceneBlock(Targets.Go);
|
||||||
// set startDistance
|
// set startDistance
|
||||||
firstRewardFlag = true;
|
firstRewardFlag = true;
|
||||||
@ -159,7 +159,7 @@ public void RollNewScene()
|
|||||||
{
|
{
|
||||||
// attack target spawn
|
// attack target spawn
|
||||||
Debug.Log("ATTACK Mode Start");
|
Debug.Log("ATTACK Mode Start");
|
||||||
targetTypeInt = (int)Targets.Attack;
|
targetType = Targets.Attack;
|
||||||
RandomSpawnSceneBlock(Targets.Attack);
|
RandomSpawnSceneBlock(Targets.Attack);
|
||||||
// set startDistance
|
// set startDistance
|
||||||
firstRewardFlag = true;
|
firstRewardFlag = true;
|
||||||
@ -169,7 +169,7 @@ public void RollNewScene()
|
|||||||
{
|
{
|
||||||
// defence target spawn
|
// defence target spawn
|
||||||
Debug.Log("DEFENCE Mode Start");
|
Debug.Log("DEFENCE Mode Start");
|
||||||
targetTypeInt = (int)Targets.Defence;
|
targetType = Targets.Defence;
|
||||||
RandomSpawnSceneBlock(Targets.Defence);
|
RandomSpawnSceneBlock(Targets.Defence);
|
||||||
// set startDistance
|
// set startDistance
|
||||||
firstRewardFlag = true;
|
firstRewardFlag = true;
|
||||||
@ -177,14 +177,14 @@ public void RollNewScene()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log("Free Mode Start");
|
Debug.Log("Free Mode Start");
|
||||||
targetTypeInt = (int)Targets.Free;
|
targetType = Targets.Free;
|
||||||
enemyCon.DestroyAllEnemys();
|
enemyCon.DestroyAllEnemys();
|
||||||
enemyCon.RandomInitEnemys(hudCon.enemyNum);
|
enemyCon.RandomInitEnemys(hudCon.enemyNum);
|
||||||
MoveAgentToSpwanArea();
|
MoveAgentToSpwanArea();
|
||||||
sceneBlockCon.DestroyBlock();
|
sceneBlockCon.DestroyBlock();
|
||||||
}
|
}
|
||||||
UpdateTargetStates();
|
UpdateTargetStates();
|
||||||
envUICon.UpdateTargetType(targetTypeInt);
|
envUICon.UpdateTargetType(targetType);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Agent Move Method
|
#region Agent Move Method
|
||||||
@ -282,9 +282,9 @@ private void RandomSpawnSceneBlock(Targets targetType)
|
|||||||
/// </remarks>
|
/// </remarks>
|
||||||
public void PlayInitialize()
|
public void PlayInitialize()
|
||||||
{
|
{
|
||||||
targetTypeInt = (int)Targets.Stay;
|
targetType = Targets.Stay;
|
||||||
UpdateTargetStates();
|
UpdateTargetStates();
|
||||||
envUICon.UpdateTargetType(targetTypeInt);
|
envUICon.UpdateTargetType(targetType);
|
||||||
MoveAgentToSpwanArea();
|
MoveAgentToSpwanArea();
|
||||||
enemyCon.DestroyAllEnemys();
|
enemyCon.DestroyAllEnemys();
|
||||||
sceneBlockCon.DestroyBlock();
|
sceneBlockCon.DestroyBlock();
|
||||||
@ -293,33 +293,33 @@ public void PlayInitialize()
|
|||||||
// change to attack mode
|
// change to attack mode
|
||||||
public void AttackModeChange(Vector3 targetPosition)
|
public void AttackModeChange(Vector3 targetPosition)
|
||||||
{
|
{
|
||||||
targetTypeInt = (int)Targets.Attack;
|
targetType = Targets.Attack;
|
||||||
UpdateTargetStates(targetPosition);
|
UpdateTargetStates(targetPosition);
|
||||||
envUICon.UpdateTargetType(targetTypeInt);
|
envUICon.UpdateTargetType(targetType);
|
||||||
}
|
}
|
||||||
|
|
||||||
// change to free mode
|
// change to free mode
|
||||||
public void FreeModeChange()
|
public void FreeModeChange()
|
||||||
{
|
{
|
||||||
targetTypeInt = (int)Targets.Free;
|
targetType = (int)Targets.Free;
|
||||||
UpdateTargetStates();
|
UpdateTargetStates();
|
||||||
envUICon.UpdateTargetType(targetTypeInt);
|
envUICon.UpdateTargetType(targetType);
|
||||||
}
|
}
|
||||||
|
|
||||||
// change to goto mode
|
// change to goto mode
|
||||||
public void GotoModeChange(Vector3 targetPosition)
|
public void GotoModeChange(Vector3 targetPosition)
|
||||||
{
|
{
|
||||||
targetTypeInt = (int)Targets.Go;
|
targetType = Targets.Go;
|
||||||
UpdateTargetStates(targetPosition);
|
UpdateTargetStates(targetPosition);
|
||||||
envUICon.UpdateTargetType(targetTypeInt);
|
envUICon.UpdateTargetType(targetType);
|
||||||
}
|
}
|
||||||
|
|
||||||
// change to stay mode
|
// change to stay mode
|
||||||
public void StayModeChange()
|
public void StayModeChange()
|
||||||
{
|
{
|
||||||
targetTypeInt = (int)Targets.Stay;
|
targetType = Targets.Stay;
|
||||||
UpdateTargetStates();
|
UpdateTargetStates();
|
||||||
envUICon.UpdateTargetType(targetTypeInt);
|
envUICon.UpdateTargetType(targetType);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Play Mode Method
|
#endregion Play Mode Method
|
||||||
@ -332,12 +332,12 @@ public void StayModeChange()
|
|||||||
private void UpdateTargetStates(Vector3? targetPosition = null)
|
private void UpdateTargetStates(Vector3? targetPosition = null)
|
||||||
{
|
{
|
||||||
// targettype, x,y,z, firebasesAreaDiameter
|
// targettype, x,y,z, firebasesAreaDiameter
|
||||||
targetState[0] = targetTypeInt;
|
targetState[0] = (int)targetType;
|
||||||
if (targetPosition != null)
|
if (targetPosition != null)
|
||||||
{
|
{
|
||||||
this.targetPosition = (Vector3)targetPosition;
|
this.targetPosition = (Vector3)targetPosition;
|
||||||
}
|
}
|
||||||
if (targetTypeInt == (int)Targets.Free || targetTypeInt == (int)Targets.Stay)
|
if (targetType == (int)Targets.Free || targetType == Targets.Stay)
|
||||||
{
|
{
|
||||||
for (int i = 1; i < targetState.Length; i++)
|
for (int i = 1; i < targetState.Length; i++)
|
||||||
// set target position state to 0
|
// set target position state to 0
|
||||||
@ -360,7 +360,7 @@ private void UpdateTargetStates(Vector3? targetPosition = null)
|
|||||||
/// <returns>The in-area state.</returns>
|
/// <returns>The in-area state.</returns>
|
||||||
public int GetInAreaState()
|
public int GetInAreaState()
|
||||||
{
|
{
|
||||||
if (targetTypeInt == (int)Targets.Go)
|
if (targetType == Targets.Go)
|
||||||
{
|
{
|
||||||
return inArea;
|
return inArea;
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ public class MouseInMap : MonoBehaviour
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject targetControllerObj;
|
private GameObject targetControllerObj;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject parameterContainerObj;
|
private GameObject commonParameterContainerObj;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject HUDObj;
|
private GameObject HUDObj;
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ public enum MouseMode
|
|||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
commonParamCon = parameterContainerObj.GetComponent<CommonParameterContainer>();
|
commonParamCon = commonParameterContainerObj.GetComponent<CommonParameterContainer>();
|
||||||
groundMask = LayerMask.GetMask("Ground");
|
groundMask = LayerMask.GetMask("Ground");
|
||||||
targetCon = targetControllerObj.GetComponent<TargetController>();
|
targetCon = targetControllerObj.GetComponent<TargetController>();
|
||||||
mousePreviewCon = mousePreviewObj.GetComponent<MousePreview>();
|
mousePreviewCon = mousePreviewObj.GetComponent<MousePreview>();
|
||||||
|
@ -131,31 +131,31 @@ public void UpdateTargetGauge(float firebasesBelong, float belongMaxPoint)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// update targetType text
|
// update targetType text
|
||||||
public void UpdateTargetType(int targetInt)
|
public void UpdateTargetType(Targets targetInt)
|
||||||
{
|
{
|
||||||
switch (targetInt)
|
switch (targetInt)
|
||||||
{
|
{
|
||||||
case (int)Targets.Go:
|
case Targets.Go:
|
||||||
targetTypeText.text = "GOTO";
|
targetTypeText.text = "GOTO";
|
||||||
targetTypeText.color = Color.blue;
|
targetTypeText.color = Color.blue;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)Targets.Attack:
|
case Targets.Attack:
|
||||||
targetTypeText.text = "Attack!";
|
targetTypeText.text = "Attack!";
|
||||||
targetTypeText.color = Color.red;
|
targetTypeText.color = Color.red;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)Targets.Defence:
|
case Targets.Defence:
|
||||||
targetTypeText.text = "Defence";
|
targetTypeText.text = "Defence";
|
||||||
targetTypeText.color = Color.green;
|
targetTypeText.color = Color.green;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)Targets.Free:
|
case Targets.Free:
|
||||||
targetTypeText.text = "Free";
|
targetTypeText.text = "Free";
|
||||||
targetTypeText.color = Color.yellow;
|
targetTypeText.color = Color.yellow;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)Targets.Stay:
|
case Targets.Stay:
|
||||||
targetTypeText.text = "Stay";
|
targetTypeText.text = "Stay";
|
||||||
targetTypeText.color = Color.white;
|
targetTypeText.color = Color.white;
|
||||||
break;
|
break;
|
||||||
@ -169,7 +169,7 @@ public void UpdateTargetType(int targetInt)
|
|||||||
|
|
||||||
// update state text
|
// update state text
|
||||||
// public TextMeshProUGUI stateText;
|
// public TextMeshProUGUI stateText;
|
||||||
// targetState[0] = targetTypeInt;
|
// targetState[0] = targetType;
|
||||||
// targetState[1] = targetEndPosition.x / raySensors.viewDistance; // normalization
|
// targetState[1] = targetEndPosition.x / raySensors.viewDistance; // normalization
|
||||||
// targetState[2] = targetEndPosition.y / raySensors.viewDistance;
|
// targetState[2] = targetEndPosition.y / raySensors.viewDistance;
|
||||||
// targetState[3] = targetEndPosition.z / raySensors.viewDistance;
|
// targetState[3] = targetEndPosition.z / raySensors.viewDistance;
|
||||||
|
@ -26,32 +26,33 @@ private void Start()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateChart(int targetType, int endType)
|
public void UpdateChart(Targets targetType, int endType)
|
||||||
{
|
{
|
||||||
float winRatio = 0f;
|
float winRatio = 0f;
|
||||||
|
int targetTypeInt = (int)targetType;
|
||||||
switch (endType)
|
switch (endType)
|
||||||
{
|
{
|
||||||
case (int)TargetController.EndType.Win:
|
case (int)TargetController.EndType.Win:
|
||||||
//Win
|
//Win
|
||||||
totalGames[targetType] += 1;
|
totalGames[targetTypeInt] += 1;
|
||||||
winGames[targetType] += 1;
|
winGames[targetTypeInt] += 1;
|
||||||
winRatio = (float)winGames[targetType] / totalGames[targetType];
|
winRatio = (float)winGames[targetTypeInt] / totalGames[targetTypeInt];
|
||||||
winChart.AddData(targetType, winRatio);
|
winChart.AddData(targetTypeInt, winRatio);
|
||||||
if (totalGames[targetType] > maxXAxis)
|
if (totalGames[targetTypeInt] > maxXAxis)
|
||||||
{
|
{
|
||||||
maxXAxis = totalGames[targetType];
|
maxXAxis = totalGames[targetTypeInt];
|
||||||
winChart.AddXAxisData(Convert.ToString(maxXAxis));
|
winChart.AddXAxisData(Convert.ToString(maxXAxis));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (int)TargetController.EndType.Lose:
|
case (int)TargetController.EndType.Lose:
|
||||||
//lose
|
//lose
|
||||||
totalGames[targetType] += 1;
|
totalGames[targetTypeInt] += 1;
|
||||||
winRatio = (float)winGames[targetType] / totalGames[targetType];
|
winRatio = (float)winGames[targetTypeInt] / totalGames[targetTypeInt];
|
||||||
winChart.AddData(targetType, winRatio);
|
winChart.AddData(targetTypeInt, winRatio);
|
||||||
if (totalGames[targetType] > maxXAxis)
|
if (totalGames[targetTypeInt] > maxXAxis)
|
||||||
{
|
{
|
||||||
maxXAxis = totalGames[targetType];
|
maxXAxis = totalGames[targetTypeInt];
|
||||||
winChart.AddXAxisData(Convert.ToString(maxXAxis));
|
winChart.AddXAxisData(Convert.ToString(maxXAxis));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -12,10 +12,10 @@ EditorUserSettings:
|
|||||||
value: 5703025650035e5d090f087148715d4443161e2c7e2c20357b281b31b0e43060
|
value: 5703025650035e5d090f087148715d4443161e2c7e2c20357b281b31b0e43060
|
||||||
flags: 0
|
flags: 0
|
||||||
RecentlyUsedSceneGuid-2:
|
RecentlyUsedSceneGuid-2:
|
||||||
value: 5453565f53020f085f5d0e72157a0844454f4c2b757d7265757a4f64b7b4313c
|
value: 06570c0704040b0e5a575520137b5e44154f192e292d22367c2c4866b7b3376f
|
||||||
flags: 0
|
flags: 0
|
||||||
RecentlyUsedSceneGuid-3:
|
RecentlyUsedSceneGuid-3:
|
||||||
value: 06570c0704040b0e5a575520137b5e44154f192e292d22367c2c4866b7b3376f
|
value: 5453565f53020f085f5d0e72157a0844454f4c2b757d7265757a4f64b7b4313c
|
||||||
flags: 0
|
flags: 0
|
||||||
RecentlyUsedScenePath-0:
|
RecentlyUsedScenePath-0:
|
||||||
value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d
|
value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d
|
||||||
|
@ -14,12 +14,12 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_PixelRect:
|
m_PixelRect:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: -141
|
x: 39
|
||||||
y: 132
|
y: 281
|
||||||
width: 1792
|
width: 1792
|
||||||
height: 1021
|
height: 1021
|
||||||
m_ShowMode: 4
|
m_ShowMode: 4
|
||||||
m_Title: Inspector
|
m_Title: Game
|
||||||
m_RootView: {fileID: 2}
|
m_RootView: {fileID: 2}
|
||||||
m_MinSize: {x: 875, y: 300}
|
m_MinSize: {x: 875, y: 300}
|
||||||
m_MaxSize: {x: 10000, y: 10000}
|
m_MaxSize: {x: 10000, y: 10000}
|
||||||
@ -120,7 +120,7 @@ MonoBehaviour:
|
|||||||
m_MinSize: {x: 300, y: 200}
|
m_MinSize: {x: 300, y: 200}
|
||||||
m_MaxSize: {x: 24288, y: 16192}
|
m_MaxSize: {x: 24288, y: 16192}
|
||||||
vertical: 0
|
vertical: 0
|
||||||
controlID: 52
|
controlID: 49
|
||||||
--- !u!114 &6
|
--- !u!114 &6
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -140,12 +140,12 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 957
|
width: 956
|
||||||
height: 971
|
height: 971
|
||||||
m_MinSize: {x: 100, y: 200}
|
m_MinSize: {x: 100, y: 200}
|
||||||
m_MaxSize: {x: 8096, y: 16192}
|
m_MaxSize: {x: 8096, y: 16192}
|
||||||
vertical: 1
|
vertical: 1
|
||||||
controlID: 128
|
controlID: 50
|
||||||
--- !u!114 &7
|
--- !u!114 &7
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -163,7 +163,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 957
|
width: 956
|
||||||
height: 696
|
height: 696
|
||||||
m_MinSize: {x: 201, y: 221}
|
m_MinSize: {x: 201, y: 221}
|
||||||
m_MaxSize: {x: 4001, y: 4021}
|
m_MaxSize: {x: 4001, y: 4021}
|
||||||
@ -190,7 +190,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 696
|
y: 696
|
||||||
width: 957
|
width: 956
|
||||||
height: 275
|
height: 275
|
||||||
m_MinSize: {x: 231, y: 271}
|
m_MinSize: {x: 231, y: 271}
|
||||||
m_MaxSize: {x: 10001, y: 10021}
|
m_MaxSize: {x: 10001, y: 10021}
|
||||||
@ -217,14 +217,14 @@ MonoBehaviour:
|
|||||||
- {fileID: 11}
|
- {fileID: 11}
|
||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 957
|
x: 956
|
||||||
y: 0
|
y: 0
|
||||||
width: 496
|
width: 496
|
||||||
height: 971
|
height: 971
|
||||||
m_MinSize: {x: 100, y: 200}
|
m_MinSize: {x: 100, y: 200}
|
||||||
m_MaxSize: {x: 8096, y: 16192}
|
m_MaxSize: {x: 8096, y: 16192}
|
||||||
vertical: 1
|
vertical: 1
|
||||||
controlID: 103
|
controlID: 17
|
||||||
--- !u!114 &10
|
--- !u!114 &10
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -293,9 +293,9 @@ MonoBehaviour:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1453
|
x: 1452
|
||||||
y: 0
|
y: 0
|
||||||
width: 339
|
width: 340
|
||||||
height: 971
|
height: 971
|
||||||
m_MinSize: {x: 276, y: 71}
|
m_MinSize: {x: 276, y: 71}
|
||||||
m_MaxSize: {x: 4001, y: 4021}
|
m_MaxSize: {x: 4001, y: 4021}
|
||||||
@ -324,9 +324,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: -141
|
x: 39
|
||||||
y: 162
|
y: 311
|
||||||
width: 956
|
width: 955
|
||||||
height: 675
|
height: 675
|
||||||
m_ViewDataDictionary: {fileID: 0}
|
m_ViewDataDictionary: {fileID: 0}
|
||||||
m_OverlayCanvas:
|
m_OverlayCanvas:
|
||||||
@ -662,9 +662,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 65
|
x: 1920
|
||||||
y: 73
|
y: 73
|
||||||
width: 990
|
width: 1024
|
||||||
height: 686
|
height: 686
|
||||||
m_ViewDataDictionary: {fileID: 0}
|
m_ViewDataDictionary: {fileID: 0}
|
||||||
m_OverlayCanvas:
|
m_OverlayCanvas:
|
||||||
@ -676,7 +676,7 @@ MonoBehaviour:
|
|||||||
m_ShowGizmos: 0
|
m_ShowGizmos: 0
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
|
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
m_TargetSize: {x: 990, y: 665}
|
m_TargetSize: {x: 1024, y: 665}
|
||||||
m_TextureFilterMode: 0
|
m_TextureFilterMode: 0
|
||||||
m_TextureHideFlags: 61
|
m_TextureHideFlags: 61
|
||||||
m_RenderIMGUI: 1
|
m_RenderIMGUI: 1
|
||||||
@ -691,8 +691,8 @@ MonoBehaviour:
|
|||||||
m_VRangeLocked: 0
|
m_VRangeLocked: 0
|
||||||
hZoomLockedByDefault: 0
|
hZoomLockedByDefault: 0
|
||||||
vZoomLockedByDefault: 0
|
vZoomLockedByDefault: 0
|
||||||
m_HBaseRangeMin: -495
|
m_HBaseRangeMin: -512
|
||||||
m_HBaseRangeMax: 495
|
m_HBaseRangeMax: 512
|
||||||
m_VBaseRangeMin: -332.5
|
m_VBaseRangeMin: -332.5
|
||||||
m_VBaseRangeMax: 332.5
|
m_VBaseRangeMax: 332.5
|
||||||
m_HAllowExceedBaseRangeMin: 1
|
m_HAllowExceedBaseRangeMin: 1
|
||||||
@ -712,23 +712,23 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 21
|
y: 21
|
||||||
width: 990
|
width: 1024
|
||||||
height: 665
|
height: 665
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Translation: {x: 495, y: 332.5}
|
m_Translation: {x: 512, y: 332.5}
|
||||||
m_MarginLeft: 0
|
m_MarginLeft: 0
|
||||||
m_MarginRight: 0
|
m_MarginRight: 0
|
||||||
m_MarginTop: 0
|
m_MarginTop: 0
|
||||||
m_MarginBottom: 0
|
m_MarginBottom: 0
|
||||||
m_LastShownAreaInsideMargins:
|
m_LastShownAreaInsideMargins:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: -495
|
x: -512
|
||||||
y: -332.5
|
y: -332.5
|
||||||
width: 990
|
width: 1024
|
||||||
height: 665
|
height: 665
|
||||||
m_MinimalGUI: 1
|
m_MinimalGUI: 1
|
||||||
m_defaultScale: 1
|
m_defaultScale: 1
|
||||||
m_LastWindowPixelSize: {x: 990, y: 686}
|
m_LastWindowPixelSize: {x: 1024, y: 686}
|
||||||
m_ClearInEditMode: 1
|
m_ClearInEditMode: 1
|
||||||
m_NoCameraWarning: 1
|
m_NoCameraWarning: 1
|
||||||
m_LowResolutionForAspectRatios: 01000000000000000000
|
m_LowResolutionForAspectRatios: 01000000000000000000
|
||||||
@ -754,9 +754,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: -141
|
x: 39
|
||||||
y: 858
|
y: 1007
|
||||||
width: 956
|
width: 955
|
||||||
height: 254
|
height: 254
|
||||||
m_ViewDataDictionary: {fileID: 0}
|
m_ViewDataDictionary: {fileID: 0}
|
||||||
m_OverlayCanvas:
|
m_OverlayCanvas:
|
||||||
@ -775,36 +775,36 @@ MonoBehaviour:
|
|||||||
m_SkipHidden: 0
|
m_SkipHidden: 0
|
||||||
m_SearchArea: 1
|
m_SearchArea: 1
|
||||||
m_Folders:
|
m_Folders:
|
||||||
- Assets/Script/GameScript
|
- Assets/Shader
|
||||||
m_Globs: []
|
m_Globs: []
|
||||||
m_OriginalText:
|
m_OriginalText:
|
||||||
m_ViewMode: 1
|
m_ViewMode: 1
|
||||||
m_StartGridSize: 16
|
m_StartGridSize: 16
|
||||||
m_LastFolders:
|
m_LastFolders:
|
||||||
- Assets/Script/GameScript
|
- Assets/Shader
|
||||||
m_LastFoldersGridSize: 16
|
m_LastFoldersGridSize: 16
|
||||||
m_LastProjectPath: C:\Users\UCUNI\OneDrive\Unity\ML-Agents\Aimbot-ParallelEnv
|
m_LastProjectPath: C:\Users\UCUNI\OneDrive\Unity\ML-Agents\Aimbot-ParallelEnv
|
||||||
m_LockTracker:
|
m_LockTracker:
|
||||||
m_IsLocked: 0
|
m_IsLocked: 0
|
||||||
m_FolderTreeState:
|
m_FolderTreeState:
|
||||||
scrollPos: {x: 0, y: 502}
|
scrollPos: {x: 0, y: 337}
|
||||||
m_SelectedIDs: ce880000
|
m_SelectedIDs: 08890000
|
||||||
m_LastClickedID: 35022
|
m_LastClickedID: 35080
|
||||||
m_ExpandedIDs: 00000000b0880000b2880000b4880000b6880000b8880000ba880000bc880000be880000c0880000c2880000c4880000c6880000c8880000ca880000cc880000ce880000d0880000d2880000d4880000f888000000ca9a3bffffff7f
|
m_ExpandedIDs: 000000001488000016880000188800001a8800001c8800001e88000020880000228800002488000026880000288800002a8800002c880000328800003488000036880000388800008c88000000ca9a3bffffff7f
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name: Prefeb
|
m_Name:
|
||||||
m_OriginalName: Prefeb
|
m_OriginalName:
|
||||||
m_EditFieldRect:
|
m_EditFieldRect:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 0
|
width: 0
|
||||||
height: 0
|
height: 0
|
||||||
m_UserData: 1000000003
|
m_UserData: 0
|
||||||
m_IsWaitingForDelay: 0
|
m_IsWaitingForDelay: 0
|
||||||
m_IsRenaming: 0
|
m_IsRenaming: 0
|
||||||
m_OriginalEventType: 0
|
m_OriginalEventType: 11
|
||||||
m_IsRenamingFilename: 1
|
m_IsRenamingFilename: 1
|
||||||
m_ClientGUIView: {fileID: 8}
|
m_ClientGUIView: {fileID: 8}
|
||||||
m_SearchString:
|
m_SearchString:
|
||||||
@ -818,7 +818,7 @@ MonoBehaviour:
|
|||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs:
|
m_SelectedIDs:
|
||||||
m_LastClickedID: 0
|
m_LastClickedID: 0
|
||||||
m_ExpandedIDs: 00000000b0880000b2880000b4880000b6880000b8880000ba880000bc880000be880000c0880000c2880000c4880000c6880000c8880000ca880000cc880000ce880000d0880000d2880000d4880000
|
m_ExpandedIDs: 000000001488000016880000188800001a8800001c8800001e88000020880000228800002488000026880000288800002a8800002c8800002e8800003088000032880000348800003688000038880000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name:
|
||||||
@ -922,8 +922,8 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 816
|
x: 995
|
||||||
y: 162
|
y: 311
|
||||||
width: 494
|
width: 494
|
||||||
height: 526
|
height: 526
|
||||||
m_ViewDataDictionary: {fileID: 0}
|
m_ViewDataDictionary: {fileID: 0}
|
||||||
@ -933,9 +933,9 @@ MonoBehaviour:
|
|||||||
m_SceneHierarchy:
|
m_SceneHierarchy:
|
||||||
m_TreeViewState:
|
m_TreeViewState:
|
||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs: dc920000
|
m_SelectedIDs: 2ec40000
|
||||||
m_LastClickedID: 37596
|
m_LastClickedID: 50222
|
||||||
m_ExpandedIDs: 82f7ffff88f8ffff30fbffff38930000
|
m_ExpandedIDs: 68d6ffff52d7fffff6dbffff36e5ffff40e6ffff48e7ffff52e8ffff6ae9ffff32fbffffb8b3000064c00000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name:
|
||||||
@ -979,8 +979,8 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 816
|
x: 995
|
||||||
y: 709
|
y: 858
|
||||||
width: 494
|
width: 494
|
||||||
height: 403
|
height: 403
|
||||||
m_ViewDataDictionary: {fileID: 0}
|
m_ViewDataDictionary: {fileID: 0}
|
||||||
@ -1035,9 +1035,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1312
|
x: 1491
|
||||||
y: 162
|
y: 311
|
||||||
width: 338
|
width: 339
|
||||||
height: 950
|
height: 950
|
||||||
m_ViewDataDictionary: {fileID: 0}
|
m_ViewDataDictionary: {fileID: 0}
|
||||||
m_OverlayCanvas:
|
m_OverlayCanvas:
|
||||||
@ -1050,7 +1050,7 @@ MonoBehaviour:
|
|||||||
m_ControlHash: -371814159
|
m_ControlHash: -371814159
|
||||||
m_PrefName: Preview_InspectorPreview
|
m_PrefName: Preview_InspectorPreview
|
||||||
m_LastInspectedObjectInstanceID: -1
|
m_LastInspectedObjectInstanceID: -1
|
||||||
m_LastVerticalScrollValue: 918
|
m_LastVerticalScrollValue: 0
|
||||||
m_GlobalObjectId:
|
m_GlobalObjectId:
|
||||||
m_InspectorMode: 0
|
m_InspectorMode: 0
|
||||||
m_LockTracker:
|
m_LockTracker:
|
||||||
|
Loading…
Reference in New Issue
Block a user