V3.5 修正Level生成概率在Scene之间的传递方法,修正Level probability Panel在Train scene中不能继承StartScene数据问题和不修改LevelProbs的问题。

This commit is contained in:
Koha9 2023-11-17 13:44:07 +09:00
parent c2eaa8cbfc
commit 96f297d114
11 changed files with 141 additions and 111 deletions

View File

@ -1 +1 @@
{"count":1,"self":127.34176,"total":127.45347029999999,"children":{"InitializeActuators":{"count":2,"self":0.0015118999999999998,"total":0.0015118999999999998,"children":null},"InitializeSensors":{"count":2,"self":0.0014979,"total":0.0014979,"children":null},"AgentSendState":{"count":440,"self":0.0025188999999999997,"total":0.0211316,"children":{"CollectObservations":{"count":440,"self":0.0146118,"total":0.0146118,"children":null},"WriteActionMask":{"count":440,"self":0.0019995,"total":0.0019995,"children":null},"RequestDecision":{"count":440,"self":0.0020014,"total":0.0020014,"children":null}}},"DecideAction":{"count":440,"self":0.0020119,"total":0.0020119,"children":null},"AgentAct":{"count":440,"self":0.08556,"total":0.08556,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1700063905","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-FDy4mXKexQ6X1xL3HWyzB -hubSessionId 8d021f9c-c18a-42ae-b0f7-4f4093f87cc2 -accessToken K_UtjVRjVp9Nhbf1MZoN5JxRN3F_Qnk7hi8pO7re9pw00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"StartScene","end_time_seconds":"1700064032"}}
{"count":1,"self":205.4770944,"total":208.10505619999998,"children":{"InitializeActuators":{"count":2,"self":0.00049909999999999993,"total":0.00049909999999999993,"children":null},"InitializeSensors":{"count":2,"self":0.0010067,"total":0.0010067,"children":null},"AgentSendState":{"count":10048,"self":0.0530292,"total":0.4927436,"children":{"CollectObservations":{"count":10048,"self":0.40063,"total":0.40063,"children":null},"WriteActionMask":{"count":10048,"self":0.0085086,"total":0.0085086,"children":null},"RequestDecision":{"count":10048,"self":0.0305758,"total":0.0305758,"children":null}}},"DecideAction":{"count":10048,"self":0.0760386,"total":0.0760386,"children":null},"AgentAct":{"count":10048,"self":2.0576727999999997,"total":2.0576729,"children":null}},"gauges":{"AKMAgent.CumulativeReward":{"count":6,"max":-2525.47656,"min":-4704.462,"runningAverage":-3577.26147,"value":-3631.13135,"weightedAverage":-3725.37671}},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1700194831","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-FDy4mXKexQ6X1xL3HWyzB -hubSessionId 8d021f9c-c18a-42ae-b0f7-4f4093f87cc2 -accessToken K_UtjVRjVp9Nhbf1MZoN5JxRN3F_Qnk7hi8pO7re9pw00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"StartScene","end_time_seconds":"1700195039"}}

View File

@ -1 +1 @@
{"count":1,"self":15.929832,"total":16.087497199999998,"children":{"InitializeActuators":{"count":2,"self":0.0015029,"total":0.0015029,"children":null},"InitializeSensors":{"count":2,"self":0.0004984,"total":0.0004984,"children":null},"AgentSendState":{"count":588,"self":0.0030039,"total":0.0190315,"children":{"CollectObservations":{"count":588,"self":0.0135233,"total":0.0135233,"children":null},"WriteActionMask":{"count":588,"self":0.0005006,"total":0.0005006,"children":null},"RequestDecision":{"count":588,"self":0.0020036999999999998,"total":0.0020036999999999998,"children":null}}},"DecideAction":{"count":588,"self":0.0075122999999999995,"total":0.0075122999999999995,"children":null},"AgentAct":{"count":588,"self":0.1281163,"total":0.1281163,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1700064038","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-FDy4mXKexQ6X1xL3HWyzB -hubSessionId 8d021f9c-c18a-42ae-b0f7-4f4093f87cc2 -accessToken K_UtjVRjVp9Nhbf1MZoN5JxRN3F_Qnk7hi8pO7re9pw00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1700064054"}}
{"count":1,"self":10.5552432,"total":10.6509302,"children":{"InitializeActuators":{"count":2,"self":0.0010058,"total":0.0010058,"children":null},"InitializeSensors":{"count":2,"self":0.0010006,"total":0.0010006,"children":null},"AgentSendState":{"count":298,"self":0.0020150999999999997,"total":0.0205401,"children":{"CollectObservations":{"count":298,"self":0.0165191,"total":0.0165191,"children":null},"WriteActionMask":{"count":298,"self":0,"total":0,"children":null},"RequestDecision":{"count":298,"self":0.0020058999999999997,"total":0.0020058999999999997,"children":null}}},"DecideAction":{"count":298,"self":0.004502,"total":0.004502,"children":null},"AgentAct":{"count":298,"self":0.0676306,"total":0.0676306,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1700195050","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-FDy4mXKexQ6X1xL3HWyzB -hubSessionId 8d021f9c-c18a-42ae-b0f7-4f4093f87cc2 -accessToken K_UtjVRjVp9Nhbf1MZoN5JxRN3F_Qnk7hi8pO7re9pw00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1700195061"}}

View File

@ -488,7 +488,7 @@ MonoBehaviour:
m_GameObject: {fileID: 237721381}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0195eb0e734c7e747bb7f8b669c80fe5, type: 3}
m_Script: {fileID: 11500000, guid: 44d064c42ee56374e94671f4f9f9d650, type: 3}
m_Name:
m_EditorClassIdentifier:
singleTargetLevelProbabilityPanel: {fileID: 5589415219770305710, guid: 324d8e84c24cdd04ba087763705db1d0, type: 3}
@ -1829,9 +1829,6 @@ MonoBehaviour:
spinPenalty: 0.08
mousePenalty: 0.06
scenePrefabSet: {fileID: 11400000, guid: 6ebbd27eb466c4a41bd2584c1b9c2e1f, type: 2}
attackLevelProbs: []
gotoLevelProbs: []
defenceLevelProbs: []
--- !u!4 &968918529
Transform:
m_ObjectHideFlags: 0

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class CommonParameterContainer : Singleton<CommonParameterContainer>
@ -82,17 +83,38 @@ public class CommonParameterContainer : Singleton<CommonParameterContainer>
[NonSerialized] public int gameMode; // 0 = trainning mode, 1 = play mode
[NonSerialized] public float attackProb = 0f;
public List<float> attackLevelProbs = new List<float>();
[NonSerialized] public float gotoProb = 0f;
public List<float> gotoLevelProbs = new List<float>();
[NonSerialized] public float defenceProb = 0f;
public List<float> defenceLevelProbs = new List<float>();
public Dictionary<Targets, List<float>> levelProbs = new Dictionary<Targets, List<float>>();
protected override void Awake()
{
base.Awake();
scenePrefabSet.InitializeSceneBlocksSet();
InitializeLevelProbs();
}
private void Start()
{
Instance.KeepThroughSceneChange();
scenePrefabSet.InitializeSceneBlocksSet();
attackLevelProbs = new List<float>(scenePrefabSet.targetLevels[0].levelSize);
gotoLevelProbs = new List<float>(scenePrefabSet.targetLevels[1].levelSize);
}
// Initialize Common Parameters
private void InitializeLevelProbs()
{
for(int i = 0; i< scenePrefabSet.targetLevels.Length; i++)
{
Targets nowTarget = scenePrefabSet.targets[i];
levelProbs[nowTarget] = new List<float>();
float levelNum = scenePrefabSet.GetLevelNumber(nowTarget);
float averageProbability = 1f / levelNum;
float lastLevelProbability = 1f - averageProbability * (levelNum - 1);
for (int j = 0; j < levelNum-1; j++)
{
levelProbs[nowTarget].Add(averageProbability);
}
levelProbs[nowTarget].Add(lastLevelProbability);
}
}
}

View File

@ -379,25 +379,7 @@ public int RollRandomLevelIndex(Targets target)
{
Debug.Log(target);
List<float> targetProbs;
switch (target)
{
case Targets.Attack:
targetProbs = commonParamCon.attackLevelProbs;
break;
case Targets.Go:
targetProbs = commonParamCon.gotoLevelProbs;
break;
case Targets.Defence:
targetProbs = commonParamCon.defenceLevelProbs;
break;
default:
messageBoxCon.PushMessage(
new List<string> { "[ERROR]TargetController:RollRandomLevelIndex", "target type error" },
new List<string> { "#800000ff" });
Debug.LogWarning("[ERROR]TargetController:RollRandomLevelIndex:target type error");
return -1; // Exit early on default case
}
targetProbs = commonParamCon.levelProbs[target];
// sample random level depends on the target probabilities
float randomNum = UnityEngine.Random.Range(0f, 1f);

View File

@ -12,8 +12,8 @@
[CreateAssetMenu(menuName = "All Scene Prefab Set")]
public class SceneBlocksSet : ScriptableObject
{
public TargetLevelsSet[] targetLevels = new TargetLevelsSet[3];
public Targets[] targets = new Targets[3];
public TargetLevelsSet[] targetLevels = new TargetLevelsSet[2];
public Targets[] targets = new Targets[2];
private GameObject hudObj;
private MessageBoxController messageBoxController;

View File

@ -16,7 +16,7 @@ private void Start()
{
Targets nowTarget = scenePrefabSet.targets[i];
targetLevelProbabilityPanel.Add(Instantiate(singleTargetLevelProbabilityPanel, transform).GetComponent<TargetLevelProbabilityPanel>());
targetLevelProbabilityPanel[i].IntializePanels(scenePrefabSet.GetLevelNumber(nowTarget), nowTarget.ToString());
targetLevelProbabilityPanel[i].IntializePanels(nowTarget, nowTarget.ToString());
}
}
}

View File

@ -16,7 +16,7 @@ private void Start()
{
Targets nowTarget = scenePrefabSet.targets[i];
targetLevelProbabilityPanel.Add(Instantiate(singleTargetLevelProbabilityPanel, transform).GetComponent<TargetLevelProbabilityPanel>());
targetLevelProbabilityPanel[i].IntializePanels(scenePrefabSet.GetLevelNumber(nowTarget), nowTarget.ToString());
targetLevelProbabilityPanel[i].IntializePanels(nowTarget, nowTarget.ToString());
}
}
}

View File

@ -13,7 +13,7 @@ public class StartUIManager : MonoBehaviour
private SceneLoader sceneLoader;
private ButtonActivateColorChanger buttonActivateColorChanger;
private StartMenuProbabilityPanel startMenuProbabilityPanel;
private LevelProbabilityPanel startMenuProbabilityPanel;
private CommonParameterContainer commonParameterContainer;
private float startTime;
private float nowTime;
@ -22,7 +22,7 @@ void Start()
{
sceneLoader = sceneLoaderObj.GetComponent<SceneLoader>();
buttonActivateColorChanger = GetComponent<ButtonActivateColorChanger>();
startMenuProbabilityPanel = targetLevelProbabilityPanelOBJ.GetComponent<StartMenuProbabilityPanel>();
startMenuProbabilityPanel = targetLevelProbabilityPanelOBJ.GetComponent<LevelProbabilityPanel>();
commonParameterContainer = CommonParameterContainer.Instance;
messageTextObj.text = "";
buttonActivateColorChanger.InitializeAllButtonColor();
@ -86,13 +86,13 @@ private void LoadTrainScene()
private void ApplicateProbabilityToData()
{
for (int i = 0; i < commonParameterContainer.scenePrefabSet.targetLevels[0].levelSize; i++)
for(int targetIndex = 0;targetIndex < commonParameterContainer.scenePrefabSet.targetLevels.Length; targetIndex++)
{
commonParameterContainer.gotoLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[0].singleLevelPanels[i].ProbabilityValue);
}
for(int i = 0; i < commonParameterContainer.scenePrefabSet.targetLevels[1].levelSize; i++)
{
commonParameterContainer.attackLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[1].singleLevelPanels[i].ProbabilityValue);
Targets nowTarget = commonParameterContainer.scenePrefabSet.targets[targetIndex];
for(int levelIndex = 0; levelIndex < commonParameterContainer.scenePrefabSet.targetLevels[targetIndex].levelSize; levelIndex++)
{
commonParameterContainer.levelProbs[nowTarget] = startMenuProbabilityPanel.targetLevelProbabilityPanel[targetIndex].GetTargetProb();
}
}
}
}

View File

@ -14,15 +14,25 @@ public class TargetLevelProbabilityPanel : MonoBehaviour
public List<SingleLevelProbabilityPanel> singleLevelPanels = new List<SingleLevelProbabilityPanel>();
private int panelNum = 0;
private Targets thisTarget;
public void IntializePanels(int levelNum, string titleName)
/// <summary>
/// Initializes panels for a specific target, including the title and level probabilities.
/// </summary>
/// <param name="thisTarget">The specified target, used to obtain associated level numbers and probability data.</param>
/// <param name="titleName">The title name for the panel.</param>
/// <remarks>
/// This method first calculates the panel dimensions, then creates and sets the title text. Subsequently, it creates individual probability panels for each level and adds event listeners for sliders and input fields.
/// It relies on the CommonParameterContainer instance to access scene prefab sets and level probabilities.
/// </remarks>
public void IntializePanels(Targets thisTarget, string titleName)
{
this.thisTarget = thisTarget;
int levelNum = CommonParameterContainer.Instance.scenePrefabSet.GetLevelNumber(thisTarget);
// initialize target level probability panel size
float defaultWidth = singleLevelProbabilityPanel.GetComponent<RectTransform>().sizeDelta.x;
float defaultLevelHeight = singleLevelProbabilityPanel.GetComponent<RectTransform>().sizeDelta.y;
float titleHeight = targetTitleText.GetComponent<RectTransform>().sizeDelta.y;
float averageProbability = 1f / levelNum;
float lastLevelProbability = 1f - averageProbability * (levelNum - 1);
// Debug.Log("averageProbability: " + averageProbability);
transform.GetComponent<RectTransform>().sizeDelta = new Vector2(defaultWidth, (defaultLevelHeight * levelNum) + titleHeight);
// create title text
@ -34,7 +44,8 @@ public void IntializePanels(int levelNum, string titleName)
int tempIndex = i;
singleLevelPanelsObjs.Add(Instantiate(singleLevelProbabilityPanel, transform));
singleLevelPanels.Add(singleLevelPanelsObjs[i].GetComponent<SingleLevelProbabilityPanel>());
singleLevelPanels[i].InitializeLevelProbabilityPanel(i, i == levelNum - 1 ? lastLevelProbability : averageProbability);
Debug.Log(CommonParameterContainer.Instance.levelProbs.Count);
singleLevelPanels[i].InitializeLevelProbabilityPanel(i, CommonParameterContainer.Instance.levelProbs[thisTarget][i]);
//add onValueChanged event to slider and input field
singleLevelPanels[i].probabilitySlider.onValueChanged.AddListener((value) => OnProbabilityValueChange(value, tempIndex));
singleLevelPanels[i].inputField.onEndEdit.AddListener((value) => OnProbabilityValueChange(value, tempIndex));
@ -42,6 +53,24 @@ public void IntializePanels(int levelNum, string titleName)
panelNum = levelNum;
}
/// <summary>
/// Retrieves the probability values for all levels of the current target.
/// </summary>
/// <returns>A list of floating-point numbers containing the probability values for each level.</returns>
/// <remarks>
/// This method iterates through the panels of all levels, collecting and returning the probability value for each level.
/// It relies on the singleLevelPanels list, which should have been properly initialized and populated before calling this method.
/// </remarks>
public List<float> GetTargetProb()
{
List<float> targetProb = new List<float>();
for (int i = 0; i < panelNum; i++)
{
targetProb.Add(singleLevelPanels[i].ProbabilityValue);
}
return targetProb;
}
/// <summary>
/// On Probability Slider Value Change.Adjust other sliders' value to make sure the total value is 1.
/// </summary>
@ -243,20 +272,20 @@ private void enableSliderListener()
}
/// <summary>
/// applicate correction value to each panel
/// Applies correction values to adjust the probability values for each level of the current target.
/// </summary>
/// <param name="correctionValues">An array of correction values to be applied to the probability value of each level.</param>
/// <remarks>
/// This method iterates through all the level panels, updating the probability by subtracting the corresponding correction value from the probability value of each level.
/// It also synchronously updates the level probabilities for this target stored in the CommonParameterContainer instance.
/// This method assumes that the length of the correctionValues array matches the number of level panels.
/// </remarks>
private void applyCorrectionValue(float[] correctionValues)
{
for (int i = 0; i < panelNum; i++)
{
/* if (singleLevelPanels[i].ProbabilityValue - correctionValues[i] < 0)
{
Debug.LogWarning("Probability value is less than 0");
Debug.Log(i);
Debug.Log(singleLevelPanels[i].ProbabilityValue);
Debug.Log(correctionValues[i]);
}*/
singleLevelPanels[i].SetProbability(singleLevelPanels[i].ProbabilityValue - correctionValues[i]);
CommonParameterContainer.Instance.levelProbs[thisTarget][i] = singleLevelPanels[i].ProbabilityValue;
}
}
}

View File

@ -14,12 +14,12 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: -185
y: 143
width: 1842
x: 240
y: 178
width: 1485
height: 835
m_ShowMode: 4
m_Title: Inspector
m_Title: Game
m_RootView: {fileID: 2}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
@ -44,7 +44,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1842
width: 1485
height: 835
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
@ -69,7 +69,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1842
width: 1485
height: 30
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
@ -91,7 +91,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 815
width: 1842
width: 1485
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
@ -115,12 +115,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 30
width: 1842
width: 1485
height: 785
m_MinSize: {x: 300, y: 200}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 122
controlID: 25
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
@ -140,12 +140,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1039
width: 835
height: 785
m_MinSize: {x: 100, y: 200}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 123
controlID: 26
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
@ -163,7 +163,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1039
width: 835
height: 562
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
@ -190,7 +190,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 562
width: 1039
width: 835
height: 223
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
@ -217,14 +217,14 @@ MonoBehaviour:
- {fileID: 11}
m_Position:
serializedVersion: 2
x: 1039
x: 835
y: 0
width: 453
width: 366
height: 785
m_MinSize: {x: 100, y: 200}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 58
controlID: 105
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
@ -242,7 +242,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 453
width: 366
height: 442
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
@ -268,7 +268,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 442
width: 453
width: 366
height: 343
m_MinSize: {x: 102, y: 121}
m_MaxSize: {x: 4002, y: 4021}
@ -293,9 +293,9 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 1492
x: 1201
y: 0
width: 350
width: 284
height: 785
m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4001, y: 4021}
@ -324,9 +324,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -185
y: 173
width: 1038
x: 240
y: 208
width: 834
height: 541
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -635,7 +635,7 @@ MonoBehaviour:
m_FarClip: 10000
m_DynamicClip: 1
m_OcclusionCulling: 0
m_LastSceneViewRotation: {x: 0.24245703, y: 0.3826798, z: -0.104802005, w: 0.88532037}
m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
m_LastSceneViewOrtho: 0
m_ReplacementShader: {fileID: 0}
m_ReplacementString:
@ -662,9 +662,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 62
x: 64
y: 73
width: 1047
width: 1046
height: 686
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -676,7 +676,7 @@ MonoBehaviour:
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 1047, y: 665}
m_TargetSize: {x: 1046, y: 665}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
@ -691,8 +691,8 @@ MonoBehaviour:
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -523.5
m_HBaseRangeMax: 523.5
m_HBaseRangeMin: -523
m_HBaseRangeMax: 523
m_VBaseRangeMin: -332.5
m_VBaseRangeMax: 332.5
m_HAllowExceedBaseRangeMin: 1
@ -712,23 +712,23 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 21
width: 1047
width: 1046
height: 665
m_Scale: {x: 1, y: 1}
m_Translation: {x: 523.5, y: 332.5}
m_Translation: {x: 523, y: 332.5}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -523.5
x: -523
y: -332.5
width: 1047
width: 1046
height: 665
m_MinimalGUI: 1
m_defaultScale: 1
m_LastWindowPixelSize: {x: 1047, y: 686}
m_LastWindowPixelSize: {x: 1046, y: 686}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
@ -754,9 +754,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: -185
y: 735
width: 1038
x: 0
y: 581
width: 834
height: 202
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -775,22 +775,22 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Script/UI
- Assets/Prefeb/ProbabilityPanel
m_Globs: []
m_OriginalText:
m_ViewMode: 1
m_StartGridSize: 16
m_LastFolders:
- Assets/Script/UI
- Assets/Prefeb/ProbabilityPanel
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: 321}
m_SelectedIDs: e2830000
m_LastClickedID: 33762
m_ExpandedIDs: 000000001e830000528300005a83000000ca9a3bffffff7f
scrollPos: {x: 0, y: 257}
m_SelectedIDs: c88a0000
m_LastClickedID: 35528
m_ExpandedIDs: 000000001e830000648300006c83000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -870,7 +870,7 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_NewAssetIndexInList: -1
m_ScrollPosition: {x: 0, y: 60}
m_ScrollPosition: {x: 0, y: 0}
m_GridSize: 16
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 355
@ -922,9 +922,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 854
y: 173
width: 451
x: 1
y: 19
width: 364
height: 421
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -933,9 +933,9 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: fca50000
m_LastClickedID: 42492
m_ExpandedIDs: b8aaffff5cacfffff0b9ffff32fbfffff4ffffff7ea60000
m_SelectedIDs: 5a8b0000
m_LastClickedID: 35674
m_ExpandedIDs: eaf2ffff9cf7ffff32fbfffff4ffffff8c6700001a86000074890000768b0000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -979,9 +979,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 854
y: 615
width: 451
x: 1
y: 461
width: 364
height: 322
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -1035,9 +1035,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 1307
y: 173
width: 349
x: 1202
y: 19
width: 283
height: 764
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas: