V2.5 Change reward function

Add chart Toggle to turn on reward chart real time in game.
Add enemy num changer, now can change enemy num in game.
Change facing to enemy reward function, while facing center line far from enemy will not get reward any more.
This commit is contained in:
Koha9 2022-12-09 18:53:53 +09:00
parent f9b806de02
commit 9b2ba7fb46
10 changed files with 1821 additions and 218 deletions

View File

@ -144,8 +144,15 @@ private void CalculateCurrentIncrease(bool moving)
private void Update()
{
if (Input.GetKey(KeyCode.M))
_active = !_active;
if (!_active)
{
Cursor.lockState = _wantedMode = CursorLockMode.None;
Cursor.visible = (CursorLockMode.Locked != _wantedMode);
return;
}
SetCursorState();

60
Assets/HUDController.cs Normal file
View File

@ -0,0 +1,60 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class HUDController : MonoBehaviour
{
public bool chartOn = false;
public Toggle chartOnToggleObj;
public TMP_InputField chartOnTimeOutInputObj;
public TMP_InputField enemyNumInputObj;
public float chartOnTimeOut = 1;
public int enemyNum= 3;
public float chartOnTimeOutDefault = 120f;
private float chatOntimeStart = 0;
private void Update()
{
if (chartOn)
{
if (Time.time - chatOntimeStart >= chartOnTimeOut )
{
chartOn = false;
chartOnToggleObj.isOn = false;
}
}
}
public void onChartOnToggleChange()
{
chatOntimeStart = Time.time;
chartOn = chartOnToggleObj.isOn;
}
public void onEnemyNumTextChange()
{
try
{
enemyNum = Math.Abs(int.Parse(enemyNumInputObj.GetComponent<TMP_InputField>().text));
}
catch (NullReferenceException)
{
enemyNum = 3;
}
}
public void onChartTimeOutTextChange()
{
try
{
chartOnTimeOut = Math.Abs(int.Parse(chartOnTimeOutInputObj.GetComponent<TMP_InputField>().text));
}
catch (NullReferenceException)
{
chartOnTimeOut = chartOnTimeOutDefault;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 10f34b6fb217eff4e9be2bfe7044f132
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1 +1 @@
{"count":1,"self":68.6533376,"total":73.8963627,"children":{"InitializeActuators":{"count":16,"self":0.0020016,"total":0.0020016,"children":null},"InitializeSensors":{"count":16,"self":0.0015004999999999999,"total":0.0015004999999999999,"children":null},"AgentSendState":{"count":3437,"self":0.0406625,"total":0.1679606,"children":{"CollectObservations":{"count":27496,"self":0.0937596,"total":0.0937596,"children":null},"WriteActionMask":{"count":27496,"self":0.0085214,"total":0.0085214,"children":null},"RequestDecision":{"count":27496,"self":0.0250171,"total":0.0250171,"children":null}}},"DecideAction":{"count":3437,"self":0.051228499999999996,"total":0.051228499999999996,"children":null},"AgentAct":{"count":3437,"self":5.0198247999999994,"total":5.0198249,"children":null}},"gauges":{"AKMAgent.CumulativeReward":{"count":18,"max":2136.51074,"min":-6861.4585,"runningAverage":-3835.49414,"value":2136.51074,"weightedAverage":-1836.73022}},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1670446861","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-UCUNI -hubSessionId 65c82a90-7486-11ed-899f-f7f93bed2228 -accessToken K6WsTHUI33yXzJI3wDtPXzHPZq5eLKSYBLKbLhzh7nc00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"InGame","end_time_seconds":"1670446934"}}
{"count":1,"self":7.6010208,"total":7.7934259,"children":{"InitializeActuators":{"count":16,"self":0.001499,"total":0.001499,"children":null},"InitializeSensors":{"count":16,"self":0.001,"total":0.001,"children":null},"AgentSendState":{"count":138,"self":0.002006,"total":0.0155275,"children":{"CollectObservations":{"count":1104,"self":0.010023899999999999,"total":0.010023899999999999,"children":null},"WriteActionMask":{"count":1104,"self":0.0015048,"total":0.0015048,"children":null},"RequestDecision":{"count":1104,"self":0.0019928,"total":0.0019928,"children":null}}},"DecideAction":{"count":138,"self":0.0055068,"total":0.0055068,"children":null},"AgentAct":{"count":138,"self":0.1678665,"total":0.1678665,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1670578612","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-_qjpya-1B8A6Gvs6pbjAv -hubSessionId 13566e90-76f5-11ed-81d5-5bc0486f82d5 -accessToken qw1R29ZQd77wYz840DIgO8Mcql8NgyzciHRCP0pk3Ls00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"InGame","end_time_seconds":"1670578620"}}

File diff suppressed because it is too large Load Diff

View File

@ -29,6 +29,7 @@ public class AgentWithGun : Agent
public GameObject SceneBlockContainerObj;
public GameObject EnvironmentUIControlObj;
public GameObject TargetControllerObj;
public GameObject HUDObj;
public Camera thisCam;
[Header("GetAxis() Simulate")]
@ -52,7 +53,6 @@ public class AgentWithGun : Agent
// environment
private int shoot = 0;
private float lastShootTime = 0.0f;
private int nowEnemyNum = 0;
private int enemyKillCount = 0;
private Vector3 killEnemyPosition;
private int step = 0;
@ -60,6 +60,7 @@ public class AgentWithGun : Agent
public bool defaultTPCamera = true;
private bool gunReadyToggle = true;
private string myTag = "";
private float lastEnemyFacingDistance = 0f; // record last enemy facing minimum distance
// scripts
private RaySensors rayScript;
private CharacterController PlayerController;
@ -68,6 +69,7 @@ public class AgentWithGun : Agent
private SceneBlockContainer blockContainer;
private EnemyContainer eneContainer;
private TargetController targetCon;
private HUDController hudController;
[System.NonSerialized] public int finishedState;
@ -78,13 +80,14 @@ private void Start()
blockContainer = SceneBlockContainerObj.GetComponent<SceneBlockContainer>();
EnvUICon = EnvironmentUIControlObj.GetComponent<EnvironmentUIControl>();
targetCon = TargetControllerObj.GetComponent<TargetController>();
hudController = HUDObj.GetComponent<HUDController>();
rayScript = GetComponent<RaySensors>();
PlayerController = this.transform.GetComponent<CharacterController>();
// Environment parameters
lockMouse = paramContainer.lockMouse;
Damage = paramContainer.Damage;
fireRate = paramContainer.fireRate;
enemyNum = paramContainer.enemyNum;
enemyNum = hudController.enemyNum;
lockCameraX = paramContainer.lockCameraX;
lockCameraY = paramContainer.lockCameraY;
//initialize remainTime
@ -291,6 +294,7 @@ float facingReward()
{
float thisReward = 0;
bool isFacingtoEnemy = false;
float enemyFacingDistance = 0f;
Ray ray = thisCam.ScreenPointToRay(new Vector3(thisCam.pixelWidth / 2, thisCam.pixelHeight / 2, 0));
if (targetCon.targetTypeInt == (int)TargetController.Targets.Free)
{
@ -320,10 +324,21 @@ float facingReward()
// Debug.DrawRay(transform.position, projection, Color.blue);
// Debug.DrawRay(thisEnemy.transform.position, verticalToRay, Color.magenta);
}
enemyFacingDistance = projectionDis.Min();
if(enemyFacingDistance <= lastEnemyFacingDistance)
{
// closing to enemy
thisReward = 1 / MathF.Sqrt(paramContainer.facingInviewEnemyDisCOEF * enemyFacingDistance + 0.00001f);
}
else
{
thisReward = 0;
}
// enemy in view Reward
thisReward = 1 / MathF.Sqrt(paramContainer.facingInviewEnemyDisCOEF* projectionDis.Min()+0.00001f);
lastEnemyFacingDistance = enemyFacingDistance;
if (thisReward >= paramContainer.facingReward) thisReward = paramContainer.facingReward; // limit
Debug.Log("ninimum = " + thisReward);
if (thisReward <= -paramContainer.facingReward) thisReward = -paramContainer.facingReward; // limit
// Debug.Log("ninimum = " + thisReward);
}
}
else if(targetCon.targetTypeInt == (int)TargetController.Targets.Attack)
@ -343,41 +358,6 @@ float facingReward()
}
return thisReward;
}
// getEnemyNum 获取现场除了自己以外的敌人数量
int getEnemyNum()
{
int enemyNum = 0;
GameObject[] EnemyGameObjs;
EnemyGameObjs = GameObject.FindGameObjectsWithTag("Enemy");
//遍历所有Enemy
foreach (GameObject EnemyObj in EnemyGameObjs)
{
Vector3 thisEnemyPosition = EnemyObj.transform.localPosition;
Vector3 thisEnemyScale = EnemyObj.transform.localScale;
Vector3 MyselfPosition = transform.localPosition;
//探测到Agent为自己时的处理
if (thisEnemyPosition == MyselfPosition)
{
//Debug.Log("OH It's me");
}
else
{
enemyNum += 1;
}
}
return enemyNum;
}
// enemyNumDiff 获取与上一把相比敌人数量的区别
int enemyNumDiff()
{
int diff = 0;
int nowEnemyNum = getEnemyNum();
diff = enemyNum - nowEnemyNum;
return diff;
}
// ------------Reward--------------
// rewardCalculate 计算本动作的Reward
@ -433,9 +413,8 @@ public override void OnEpisodeBegin()
//thisAgentObj.name = thisAgentObj.GetInstanceID().ToString();
targetCon.rollNewScene();
paramContainer.resetTimeBonusReward();
nowEnemyNum = getEnemyNum(); // Reset Enemy number
// give default Reward to Reward value will be used.
if (paramContainer.chartOn)
if (hudController.chartOn)
{
EnvUICon.initChart();
}
@ -491,10 +470,14 @@ public override void OnActionReceived(ActionBuffers actionBuffers)
float endReward = 0f;
(finishedState, sceneReward, endReward) = targetCon.checkOverAndRewards();
float thisRoundReward = rewardCalculate(sceneReward+ endReward,Mouse_X);
if (paramContainer.chartOn)
if (hudController.chartOn)
{
EnvUICon.updateChart(thisRoundReward);
}
else
{
EnvUICon.removeChart();
}
//Debug.Log("reward = " + thisRoundReward);
if (finishedState != (int)TargetController.EndType.Running)
{

View File

@ -12,6 +12,7 @@ public class EnvironmentUIControl : MonoBehaviour
public GameObject ParameterContainerObj;
public GameObject GroundCanvasObj;
public GameObject chartObj;
public GameObject HUDObj;
public TextMeshProUGUI remainTimeText;
public TextMeshProUGUI targetTypeText;
public TextMeshProUGUI winLoseText;
@ -21,6 +22,7 @@ public class EnvironmentUIControl : MonoBehaviour
private LineChart realTimeRewardChart = null;
private TargetController targetController;
private ParameterContainer paramContainer;
private HUDController hudController;
private Image gaugeImg;
private float overTime = 0f;
private int step = 0;
@ -32,6 +34,7 @@ void Start()
targetController = TargetControllerObj.GetComponent<TargetController>();
paramContainer = ParameterContainerObj.GetComponent<ParameterContainer>();
gaugeImg = gaugeImgObj.GetComponent<Image>();
hudController = HUDObj.GetComponent<HUDController>();
}
// Update is called once per frame
@ -51,6 +54,10 @@ void Update()
}
public void updateChart(float reward)
{
if (hudController.chartOn && realTimeRewardChart == null)
{
initChart();
}
step += 1;
realTimeRewardChart.AddXAxisData(Convert.ToString(step));
realTimeRewardChart.AddData(0, reward);
@ -58,7 +65,7 @@ public void updateChart(float reward)
public void initChart()
{
if (paramContainer.chartOn && realTimeRewardChart == null)
if (hudController.chartOn && realTimeRewardChart == null)
{
Vector3 chartPos = new Vector3(-210f, 90f, 0f) * GroundCanvasObj.transform.localScale.x;
realTimeRewardChart = chartObj.AddComponent<LineChart>();
@ -68,6 +75,13 @@ public void initChart()
realTimeRewardChart.AddSerie<Line>("Rewards");
}
public void removeChart()
{
GameObject.Destroy(realTimeRewardChart);
realTimeRewardChart = null;
}
// show result in UI
public void showResult(int resultState)
{

View File

@ -17,11 +17,9 @@ public class ParameterContainer : MonoBehaviour
public bool lockMouse = false;
public float Damage = 50; // damage to enemy
public float fireRate = 0.5f;
public int enemyNum = 3;
public int timeLimit = 30;
public bool lockCameraX = false;
public bool lockCameraY = true;
public bool chartOn = false;
public bool spawnAgentInAllMap = false;
public int spinRecordMax = 20;
public float spinPenaltyThreshold = 50;

View File

@ -9,6 +9,7 @@ public class TargetController : MonoBehaviour
{
public GameObject EnvironmentObj;
public GameObject AgentObj;
public GameObject HUDObj;
public GameObject SceneBlockContainerObj;
public GameObject EnemyContainerObj;
public GameObject ParameterContainerObj;
@ -61,6 +62,7 @@ public enum EndType { Win, Lose, Running, Num };
private ParameterContainer paramCon;
private CharacterController agentCharaCon;
private WorldUIController worldUICon;
private HUDController hudCon;
// Start is called before the first frame update
void Start()
@ -81,6 +83,7 @@ void Start()
agentCharaCon = AgentObj.GetComponent<CharacterController>();
paramCon = ParameterContainerObj.GetComponent<ParameterContainer>();
worldUICon = WorldUIObj.GetComponent<WorldUIController>();
hudCon = HUDObj.GetComponent<HUDController>();
freeProb = 1 - attackProb - gotoProb - defenceProb;
targetNum = (int)Targets.Num;
if (freeProb < 0)
@ -128,7 +131,7 @@ public void rollNewScene()
blockCont.destroyBlock();
blockCont.createNewBlock(targetTypeInt, randBlockType, targetPosition, group1Tag, group2Tag);
enemyCont.destroyAllEnemys();
enemyCont.randomInitEnemysExcept(paramCon.enemyNum, targetPosition, sceneSize);
enemyCont.randomInitEnemysExcept(hudCon.enemyNum, targetPosition, sceneSize);
blockCont.thisBlock.initBlock(EnvironmentObj);
// set startDistance
firstRewardFlag = true;
@ -150,7 +153,7 @@ public void rollNewScene()
blockCont.destroyBlock();
blockCont.createNewBlock(targetTypeInt, randBlockType, targetPosition, group1Tag, group2Tag);
enemyCont.destroyAllEnemys();
enemyCont.randomInitEnemysExcept(paramCon.enemyNum, targetPosition, sceneSize);
enemyCont.randomInitEnemysExcept(hudCon.enemyNum, targetPosition, sceneSize);
blockCont.thisBlock.initBlock(EnvironmentObj);
// set startDistance
firstRewardFlag = true;
@ -173,7 +176,7 @@ public void rollNewScene()
blockCont.destroyBlock();
blockCont.createNewBlock(targetTypeInt, randBlockType, targetPosition, group1Tag, group2Tag);
enemyCont.destroyAllEnemys();
enemyCont.randomInitEnemysExcept(paramCon.enemyNum, targetPosition, sceneSize);
enemyCont.randomInitEnemysExcept(hudCon.enemyNum, targetPosition, sceneSize);
blockCont.thisBlock.initBlock(EnvironmentObj);
// set startDistance
firstRewardFlag = true;
@ -183,7 +186,7 @@ public void rollNewScene()
Debug.Log("Free");
targetTypeInt = (int)Targets.Free;
enemyCont.destroyAllEnemys();
enemyCont.randomInitEnemys(paramCon.enemyNum);
enemyCont.randomInitEnemys(hudCon.enemyNum);
moveAgentToSpwanArea();
blockCont.destroyBlock();
}

View File

@ -14,10 +14,10 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: -1073
y: -631
x: -1110
y: -232
width: 1080
height: 584
height: 578
m_ShowMode: 0
m_Title: Game
m_RootView: {fileID: 4}
@ -38,16 +38,16 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: 62
y: 43
width: 1858
height: 1037
x: -238
y: 116
width: 1840
height: 1019
m_ShowMode: 4
m_Title: Hierarchy
m_RootView: {fileID: 12}
m_MinSize: {x: 875, y: 542}
m_MaxSize: {x: 10000, y: 10000}
m_Maximized: 1
m_Maximized: 0
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
@ -66,7 +66,7 @@ MonoBehaviour:
x: 0
y: 0
width: 1080
height: 584
height: 578
m_MinSize: {x: 100, y: 121}
m_MaxSize: {x: 4000, y: 4021}
m_ActualView: {fileID: 16}
@ -93,11 +93,11 @@ MonoBehaviour:
x: 0
y: 0
width: 1080
height: 584
height: 578
m_MinSize: {x: 100, y: 121}
m_MaxSize: {x: 4000, y: 4021}
vertical: 0
controlID: 93
controlID: 133
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
@ -114,9 +114,9 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 596
width: 1100
height: 391
y: 586
width: 1091
height: 383
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
m_ActualView: {fileID: 18}
@ -144,12 +144,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1100
height: 987
width: 1091
height: 969
m_MinSize: {x: 100, y: 200}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 23
controlID: 159
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
@ -166,11 +166,11 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 382
width: 271
height: 605
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 4000, y: 4000}
y: 375
width: 276
height: 594
m_MinSize: {x: 102, y: 121}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 22}
m_Panes:
- {fileID: 22}
@ -193,14 +193,14 @@ MonoBehaviour:
- {fileID: 7}
m_Position:
serializedVersion: 2
x: 1100
x: 1091
y: 0
width: 271
height: 987
width: 276
height: 969
m_MinSize: {x: 100, y: 200}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 65
controlID: 105
--- !u!114 &9
MonoBehaviour:
m_ObjectHideFlags: 52
@ -218,8 +218,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 271
height: 382
width: 276
height: 375
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 20}
@ -247,12 +247,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 30
width: 1858
height: 987
width: 1840
height: 969
m_MinSize: {x: 300, y: 200}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 22
controlID: 158
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
@ -268,10 +268,10 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 1371
x: 1367
y: 0
width: 487
height: 987
width: 473
height: 969
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 19}
@ -299,8 +299,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1858
height: 1037
width: 1840
height: 1019
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_UseTopView: 1
@ -324,7 +324,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1858
width: 1840
height: 30
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
@ -345,8 +345,8 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 1017
width: 1858
y: 999
width: 1840
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
@ -367,8 +367,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1100
height: 596
width: 1091
height: 586
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 21}
@ -396,10 +396,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -1073
y: -631
x: -1110
y: -232
width: 1080
height: 563
height: 557
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
@ -410,7 +410,7 @@ MonoBehaviour:
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 1080, y: 542}
m_TargetSize: {x: 1080, y: 536}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
@ -418,7 +418,7 @@ MonoBehaviour:
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_Stats: 1
m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
@ -427,8 +427,8 @@ MonoBehaviour:
vZoomLockedByDefault: 0
m_HBaseRangeMin: -540
m_HBaseRangeMax: 540
m_VBaseRangeMin: -271
m_VBaseRangeMax: 271
m_VBaseRangeMin: -268
m_VBaseRangeMax: 268
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
@ -447,9 +447,9 @@ MonoBehaviour:
x: 0
y: 21
width: 1080
height: 542
height: 536
m_Scale: {x: 1, y: 1}
m_Translation: {x: 540, y: 271}
m_Translation: {x: 540, y: 268}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
@ -457,12 +457,12 @@ MonoBehaviour:
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -540
y: -271
y: -268
width: 1080
height: 542
height: 536
m_MinimalGUI: 1
m_defaultScale: 1
m_LastWindowPixelSize: {x: 1080, y: 563}
m_LastWindowPixelSize: {x: 1080, y: 557}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
@ -516,10 +516,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 62
y: 669
width: 1099
height: 370
x: -238
y: 732
width: 1090
height: 362
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
@ -537,22 +537,22 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Script/InGame
- Assets
m_Globs: []
m_OriginalText:
m_ViewMode: 1
m_StartGridSize: 16
m_LastFolders:
- Assets/Script/InGame
- Assets
m_LastFoldersGridSize: 16
m_LastProjectPath: C:\Users\UCUNI\OneDrive\Unity\ML-Agents\Aimbot-ParallelEnv
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 34}
m_SelectedIDs: 7a780000
m_LastClickedID: 30842
m_ExpandedIDs: 0000000030780000327800003478000036780000387800006e7800007478000000ca9a3b
scrollPos: {x: 0, y: 50}
m_SelectedIDs: b47c0000
m_LastClickedID: 31924
m_ExpandedIDs: 00000000b47c0000b67c0000b87c0000ba7c0000bc7c0000c87c0000d67c000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -580,7 +580,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 000000003078000032780000347800003678000038780000
m_ExpandedIDs: 00000000b47c0000b67c0000b87c0000ba7c0000bc7c0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -611,18 +611,18 @@ MonoBehaviour:
m_ExpandedInstanceIDs: c623000000000000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_Name: EnvArgsChanger
m_OriginalName: EnvArgsChanger
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_UserData: 6552
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_OriginalEventType: 0
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 5}
m_CreateAssetUtility:
@ -656,10 +656,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 1433
y: 73
width: 486
height: 966
x: 1129
y: 146
width: 472
height: 948
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
@ -671,7 +671,7 @@ MonoBehaviour:
m_ControlHash: -371814159
m_PrefName: Preview_InspectorPreview
m_LastInspectedObjectInstanceID: -1
m_LastVerticalScrollValue: 339
m_LastVerticalScrollValue: 0
m_GlobalObjectId:
m_InspectorMode: 0
m_LockTracker:
@ -697,10 +697,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 1162
y: 73
width: 269
height: 361
x: 853
y: 146
width: 274
height: 354
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
@ -708,23 +708,23 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: 28760400087a0400288104000e810400dc7e0400c27f040014810400467d0400
m_LastClickedID: 294214
m_ExpandedIDs: e442f9ff4243f9ff9043f9ffb045f9ff0c46f9ff8e47f9ffaa39fafffaa3faffce30fbff7644fbff8005fcffaa05fcffd405fcffb091fdffda91fdff54bdfdff60bdfdff8abdfdff7207ffffce07ffff5009ffff32fbffffe8690000f46a0000ac5c010006610100966301003865010074690100186c0100246d0100
m_SelectedIDs: 0a960600fc99060032a1060018a10600e69e0600cc9f06001ea10600489d0600
m_LastClickedID: 433480
m_ExpandedIDs: 0206f8ff5a06f8ffb006f8ff1a0af8ff720af8fff40bf8ffd8b1f8ff34b2f8ff8ab2f8ffa0b4f8fff8b4f8ff7ab6f8ffe623f9ff4224f9ff9424f9ffe426f9ff4027f9ffe227f9ffa62cf9fffe2cf9ff7c2ef9ff8ee2fafffe98fbff5a99fbffda9afbff0a95ffff6895ffffea96ffffaef1ffff0cf2ffff8af3ffff58faffff6a4701006a4c010090df03007e210400a076040054370500827a050014810500ec8a0500
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_Name: EnemyNum
m_OriginalName: EnemyNum
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_UserData: -450832
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_OriginalEventType: 0
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 9}
m_SearchString:
@ -754,10 +754,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 62
y: 73
width: 1099
height: 575
x: -238
y: 146
width: 1090
height: 565
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
@ -987,14 +987,14 @@ MonoBehaviour:
m_OverrideSceneCullingMask: 6917529027641081856
m_SceneIsLit: 1
m_SceneLighting: 1
m_2DMode: 0
m_2DMode: 1
m_isRotationLocked: 0
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: -195.93393, y: 33.51526, z: -136.41278}
m_Target: {x: 201, y: 517, z: 0}
speed: 2
m_Value: {x: -195.93393, y: 33.51526, z: -136.41278}
m_Value: {x: 201, y: 517, z: 0}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@ -1023,17 +1023,17 @@ MonoBehaviour:
m_Size: {x: 0, y: 0}
yGrid:
m_Fade:
m_Target: 1
m_Target: 0
speed: 2
m_Value: 1
m_Value: 0
m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
m_Pivot: {x: 0, y: 0, z: 0}
m_Size: {x: 1, y: 1}
zGrid:
m_Fade:
m_Target: 0
m_Target: 1
speed: 2
m_Value: 0
m_Value: 1
m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
m_Pivot: {x: 0, y: 0, z: 0}
m_Size: {x: 1, y: 1}
@ -1041,17 +1041,17 @@ MonoBehaviour:
m_GridAxis: 1
m_gridOpacity: 0.5
m_Rotation:
m_Target: {x: 0.5397075, y: 0.021956332, z: -0.014136463, w: 0.8414428}
m_Target: {x: 0, y: 0, z: 0, w: 1}
speed: 2
m_Value: {x: 0.5397096, y: 0.021956418, z: -0.014136519, w: 0.84144616}
m_Value: {x: 0, y: 0, z: 0, w: 1}
m_Size:
m_Target: 12.821374
m_Target: 48.59578
speed: 2
m_Value: 12.821374
m_Value: 48.59578
m_Ortho:
m_Target: 0
m_Target: 1
speed: 2
m_Value: 0
m_Value: 1
m_CameraSettings:
m_Speed: 1.0005
m_SpeedNormalized: 0.5
@ -1065,7 +1065,7 @@ MonoBehaviour:
m_FarClip: 10000
m_DynamicClip: 1
m_OcclusionCulling: 0
m_LastSceneViewRotation: {x: 0.7098538, y: -0.00044325352, z: 0.00036315605, w: 0.70432067}
m_LastSceneViewRotation: {x: 0.3832387, y: -0.0063747955, z: 0.002596695, w: 0.92361826}
m_LastSceneViewOrtho: 0
m_ReplacementShader: {fileID: 0}
m_ReplacementString:
@ -1092,10 +1092,10 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 1162
y: 455
width: 269
height: 584
x: 853
y: 521
width: 274
height: 573
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default