V3.3.4 LevelProbabilityPanel大于0判断逻辑修复

LevelProbabilityPanel大于0判断逻辑修复
This commit is contained in:
Koha9 2023-10-05 22:56:09 +09:00
parent 198ecff461
commit 19761315f2
5 changed files with 126 additions and 99 deletions

View File

@ -1 +1 @@
{"count":1,"self":6.0113204,"total":6.0228211,"children":{"InitializeActuators":{"count":2,"self":0.0010002,"total":0.0010002,"children":null},"InitializeSensors":{"count":2,"self":0.0010004,"total":0.0010004,"children":null},"AgentSendState":{"count":9,"self":0.0004999,"total":0.0029998,"children":{"CollectObservations":{"count":9,"self":0.0014984999999999998,"total":0.0014984999999999998,"children":null},"WriteActionMask":{"count":9,"self":0,"total":0,"children":null},"RequestDecision":{"count":9,"self":0.0010014,"total":0.0010014,"children":null}}},"DecideAction":{"count":9,"self":0.0009999,"total":0.0009999,"children":null},"AgentAct":{"count":9,"self":0.0055004,"total":0.0055004,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1696497364","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-q2quha7JFq52w-SUtj3vv -hubSessionId 61f6b54c-8d4c-45ec-a505-47188486c77c -accessToken d9LTYkb4CwoKU0gEjpj65W_Ohjmpt7x9dRCoXTK1U7c00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"StartScene","end_time_seconds":"1696497370"}}
{"count":1,"self":8.25924,"total":8.3077335,"children":{"InitializeActuators":{"count":2,"self":0.0010007,"total":0.0010007,"children":null},"InitializeSensors":{"count":2,"self":0.001501,"total":0.001501,"children":null},"AgentSendState":{"count":151,"self":0.0014988999999999998,"total":0.0125058,"children":{"CollectObservations":{"count":151,"self":0.0090066,"total":0.0090066,"children":null},"WriteActionMask":{"count":151,"self":0.0005009,"total":0.0005009,"children":null},"RequestDecision":{"count":151,"self":0.0014994,"total":0.0014994,"children":null}}},"DecideAction":{"count":151,"self":0.0010014,"total":0.0010014,"children":null},"AgentAct":{"count":151,"self":0.032485,"total":0.032485,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1696510666","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-q2quha7JFq52w-SUtj3vv -hubSessionId 61f6b54c-8d4c-45ec-a505-47188486c77c -accessToken MD8iouPZlC7chsDZh-2OfbaNG8DDnFy36WE1syqyLNg00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"StartScene","end_time_seconds":"1696510675"}}

View File

@ -1 +1 @@
{"count":1,"self":4.4885076,"total":4.5005076,"children":{"InitializeActuators":{"count":2,"self":0.0010002,"total":0.0010002,"children":null},"InitializeSensors":{"count":2,"self":0.0010004,"total":0.0010004,"children":null},"AgentSendState":{"count":9,"self":0.0004999,"total":0.0029998,"children":{"CollectObservations":{"count":9,"self":0.0014984999999999998,"total":0.0014984999999999998,"children":null},"WriteActionMask":{"count":9,"self":0,"total":0,"children":null},"RequestDecision":{"count":9,"self":0.0010014,"total":0.0010014,"children":null}}},"DecideAction":{"count":9,"self":0.0009999,"total":0.0009999,"children":null},"AgentAct":{"count":9,"self":0.0055004,"total":0.0055004,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1696497364","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-q2quha7JFq52w-SUtj3vv -hubSessionId 61f6b54c-8d4c-45ec-a505-47188486c77c -accessToken d9LTYkb4CwoKU0gEjpj65W_Ohjmpt7x9dRCoXTK1U7c00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1696497369"}}
{"count":1,"self":7.384512,"total":7.4340082,"children":{"InitializeActuators":{"count":2,"self":0.0010007,"total":0.0010007,"children":null},"InitializeSensors":{"count":2,"self":0.001501,"total":0.001501,"children":null},"AgentSendState":{"count":151,"self":0.0014988999999999998,"total":0.0125058,"children":{"CollectObservations":{"count":151,"self":0.0090066,"total":0.0090066,"children":null},"WriteActionMask":{"count":151,"self":0.0005009,"total":0.0005009,"children":null},"RequestDecision":{"count":151,"self":0.0014994,"total":0.0014994,"children":null}}},"DecideAction":{"count":151,"self":0.0010014,"total":0.0010014,"children":null},"AgentAct":{"count":151,"self":0.032485,"total":0.032485,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1696510666","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-q2quha7JFq52w-SUtj3vv -hubSessionId 61f6b54c-8d4c-45ec-a505-47188486c77c -accessToken MD8iouPZlC7chsDZh-2OfbaNG8DDnFy36WE1syqyLNg00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1696510674"}}

View File

@ -37,7 +37,6 @@ public void InitializeLevelProbabilityPanel(string levelName, float probability)
/// <param name="probability">The probability value.</param>
public void InitializeLevelProbabilityPanel(int levelName, float probability)
{
Debug.Log(levelName + " " + probability);
SetLevelName(levelName);
SetProbability(probability);
InitializeButton();

View File

@ -105,64 +105,17 @@ private void OnSliderValueChange(float value, int exceptedIndex)
while (remainCorrectionNum > 0)
{
iterationCount++;
Debug.Log(remainCorrectionNum);
remainCorrectionNum = 0;
List<int> reCorrectionIndex = new List<int>();
int lastReCorrectionIndex = 0;
float underZeroExtraValueAfterCorrected = 0;
for (int i = 0; i < panelNum; ++i)
{
// if the panel is the changed one
if (i == exceptedIndex)
{
correctionValues[i] = 0;
continue;
}
// if the panel is locked or the probability value is 0 or the probability value is equal to the correction value
if (singleLevelPanels[i].IsLocked || singleLevelPanels[i].ProbabilityValue <= 0)
{
correctionValues[i] = 0;
}
else if (singleLevelPanels[i].ProbabilityValue == correctionValues[i])
{
underZeroExtraValueAfterCorrected += correctionValues[i];
}
else if (singleLevelPanels[i].ProbabilityValue - correctionValues[i] < 0)
{
underZeroExtraValueAfterCorrected += correctionValues[i];
correctionValues[i] = singleLevelPanels[i].ProbabilityValue;
remainCorrectionNum++;
}
else
{
lastReCorrectionIndex = i;
reCorrectionIndex.Add(i);
}
}
foreach (int index in reCorrectionIndex)
{
float newAverageCorrectionValue = (extraValue - underZeroExtraValueAfterCorrected) / reCorrectionIndex.Count;
//
if (index == lastReCorrectionIndex)
{
correctionValues[index] = extraValue - (newAverageCorrectionValue * (reCorrectionIndex.Count - 1));
}
else
{
correctionValues[index] = newAverageCorrectionValue;
}
}
(correctionValues, remainCorrectionNum) = reCalculateCorrectionValues(correctionValues, exceptedIndex, value, extraValue);
// protect the infinite loop
if (iterationCount >= 100)
{
Debug.LogError("Infinite loop detected!");
break;
}
}
// applicate the value to all unlocked panels excepted the changed one
for (int i = 0; i < panelNum; i++)
{
singleLevelPanels[i].SetProbability(i == exceptedIndex ? value : singleLevelPanels[i].ProbabilityValue - correctionValues[i]);
}
applyCorrectionValue(correctionValues);
enableSliderListener();
}
@ -174,4 +127,79 @@ private void enableSliderListener()
singleLevelPanels[i].probabilitySlider.onValueChanged.AddListener((value) => OnSliderValueChange(value, tempIndex));
}
}
private (float[], int) reCalculateCorrectionValues(float[] correctionValues, int exceptedIndex, float value, float extraValue)
{
int remainCorrectionNum = 0;
List<int> reCorrectionIndex = new List<int>();
int lastReCorrectionIndex = 0;
float underZeroExtraValueAfterCorrected = 0;
for (int i = 0; i < panelNum; ++i)
{
// if the panel is the changed one
if (i == exceptedIndex)
{
correctionValues[i] = singleLevelPanels[i].ProbabilityValue - value;
continue;
}
// if the panel is locked or the probability value is 0 or the probability value is equal to the correction value
if (singleLevelPanels[i].IsLocked || singleLevelPanels[i].ProbabilityValue <= 0)
{
correctionValues[i] = 0;
}
else if (singleLevelPanels[i].ProbabilityValue == correctionValues[i])
{
underZeroExtraValueAfterCorrected += correctionValues[i];
}
else if (singleLevelPanels[i].ProbabilityValue - correctionValues[i] < 0)
{
underZeroExtraValueAfterCorrected += correctionValues[i];
correctionValues[i] = singleLevelPanels[i].ProbabilityValue;
remainCorrectionNum++;
}
else
{
lastReCorrectionIndex = i;
reCorrectionIndex.Add(i);
}
}
foreach (int index in reCorrectionIndex)
{
float newAverageCorrectionValue = (extraValue - underZeroExtraValueAfterCorrected) / reCorrectionIndex.Count;
if (index == lastReCorrectionIndex)
{
correctionValues[index] = extraValue - (newAverageCorrectionValue * (reCorrectionIndex.Count - 1));
if (singleLevelPanels[index].ProbabilityValue - correctionValues[index] < 0)
{
correctionValues[index] = singleLevelPanels[index].ProbabilityValue;
remainCorrectionNum++;
}
}
else
{
correctionValues[index] = newAverageCorrectionValue;
if (singleLevelPanels[index].ProbabilityValue - correctionValues[index] < 0)
{
correctionValues[index] = singleLevelPanels[index].ProbabilityValue;
remainCorrectionNum++;
}
}
}
return (correctionValues, remainCorrectionNum);
}
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]);
}
}
}

View File

@ -14,8 +14,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: 65
y: 43
x: -217
y: 233
width: 1855
height: 1037
m_ShowMode: 4
@ -23,7 +23,7 @@ MonoBehaviour:
m_RootView: {fileID: 2}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_Maximized: 1
m_Maximized: 0
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
@ -120,7 +120,7 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 200}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 73
controlID: 119
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
@ -140,12 +140,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1048
width: 1047
height: 987
m_MinSize: {x: 100, y: 200}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 74
controlID: 120
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
@ -163,7 +163,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1048
width: 1047
height: 615
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
@ -190,7 +190,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 615
width: 1048
width: 1047
height: 372
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
@ -217,14 +217,14 @@ MonoBehaviour:
- {fileID: 11}
m_Position:
serializedVersion: 2
x: 1048
x: 1047
y: 0
width: 433
width: 434
height: 987
m_MinSize: {x: 100, y: 200}
m_MaxSize: {x: 8096, y: 16192}
vertical: 1
controlID: 54
controlID: 52
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
@ -242,7 +242,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 433
width: 434
height: 443
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
@ -268,7 +268,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 443
width: 433
width: 434
height: 544
m_MinSize: {x: 102, y: 121}
m_MaxSize: {x: 4002, y: 4021}
@ -324,9 +324,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 65
y: 73
width: 1047
x: -217
y: 263
width: 1046
height: 594
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -562,9 +562,9 @@ MonoBehaviour:
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 271.76544, y: 474.12607, z: -1.6757603}
m_Target: {x: 224.20319, y: 389.57086, z: -1.7488194}
speed: 2
m_Value: {x: 271.76544, y: 474.12607, z: -1.6757603}
m_Value: {x: 224.20319, y: 389.57086, z: -1.7488194}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@ -662,9 +662,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 65
x: 1920
y: 73
width: 1047
width: 1083
height: 594
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: 573}
m_TargetSize: {x: 1083, y: 573}
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: -541.5
m_HBaseRangeMax: 541.5
m_VBaseRangeMin: -286.5
m_VBaseRangeMax: 286.5
m_HAllowExceedBaseRangeMin: 1
@ -712,23 +712,23 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 21
width: 1047
width: 1083
height: 573
m_Scale: {x: 1, y: 1}
m_Translation: {x: 523.5, y: 286.5}
m_Translation: {x: 541.5, y: 286.5}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -523.5
x: -541.5
y: -286.5
width: 1047
width: 1083
height: 573
m_MinimalGUI: 1
m_defaultScale: 1
m_LastWindowPixelSize: {x: 1047, y: 594}
m_LastWindowPixelSize: {x: 1083, y: 594}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
@ -754,9 +754,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 65
y: 688
width: 1047
x: -217
y: 878
width: 1046
height: 351
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -775,21 +775,21 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets
- Assets/Script
m_Globs: []
m_OriginalText:
m_ViewMode: 1
m_StartGridSize: 16
m_LastFolders:
- Assets
- Assets/DelthorGames/AKM/Models
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: 0}
m_SelectedIDs: 50760000
m_LastClickedID: 30288
m_SelectedIDs: 06ca9a3b
m_LastClickedID: 1000000006
m_ExpandedIDs: 000000002c7600002e76000030760000327600003476000036760000387600003a7600003c7600003e76000040760000427600004476000046760000487600004a7600004c7600004e7600005076000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
@ -870,7 +870,7 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_NewAssetIndexInList: -1
m_ScrollPosition: {x: 0, y: 64}
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: 1113
y: 73
width: 431
x: 830
y: 263
width: 432
height: 422
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -933,7 +933,7 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: f8150000
m_SelectedIDs: 36250000
m_LastClickedID: 0
m_ExpandedIDs: 32fbffff
m_RenameOverlay:
@ -979,9 +979,9 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 1113
y: 516
width: 431
x: 830
y: 706
width: 432
height: 523
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
@ -1035,8 +1035,8 @@ MonoBehaviour:
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 1546
y: 73
x: 1264
y: 263
width: 373
height: 966
m_ViewDataDictionary: {fileID: 0}