CommonParameterContainer改为Singleton模式

This commit is contained in:
2023-11-03 12:56:44 +09:00
parent 779897c874
commit ba27cab015
13 changed files with 148 additions and 105 deletions
+1 -1
View File
@@ -1 +1 @@
{"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"}}
{"count":1,"self":756.2826752,"total":764.8523027,"children":{"InitializeActuators":{"count":2,"self":0.0009995,"total":0.0009995,"children":null},"InitializeSensors":{"count":2,"self":0.0009996,"total":0.0009996,"children":null},"AgentSendState":{"count":37100,"self":0.21125339999999998,"total":1.2830407,"children":{"CollectObservations":{"count":37100,"self":0.9267048,"total":0.9267048,"children":null},"WriteActionMask":{"count":37100,"self":0.0387572,"total":0.0387572,"children":null},"RequestDecision":{"count":37100,"self":0.1063253,"total":0.1063253,"children":null}}},"DecideAction":{"count":37100,"self":0.20722459999999998,"total":0.20722459999999998,"children":null},"AgentAct":{"count":37100,"self":7.0768464,"total":7.076846,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1698982970","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 d5984e41-9eb5-419b-b909-c7102a7a038f -accessToken RDU4dwbHFHagpTZ1DzxqC9PfukLNfl08b_FimOGj3eo00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Play","end_time_seconds":"1698983735"}}
+1 -1
View File
@@ -1 +1 @@
{"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"}}
{"count":1,"self":9.1397576,"total":9.212819,"children":{"InitializeActuators":{"count":2,"self":0.0010002,"total":0.0010002,"children":null},"InitializeSensors":{"count":2,"self":0.0015489,"total":0.0015489,"children":null},"AgentSendState":{"count":219,"self":0.0015002,"total":0.0100013,"children":{"CollectObservations":{"count":219,"self":0.0070000999999999996,"total":0.0070000999999999996,"children":null},"WriteActionMask":{"count":219,"self":0,"total":0,"children":null},"RequestDecision":{"count":219,"self":0.001501,"total":0.001501,"children":null}}},"DecideAction":{"count":219,"self":0.0040143999999999996,"total":0.0040143999999999996,"children":null},"AgentAct":{"count":219,"self":0.0554905,"total":0.0554905,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1698982952","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 d5984e41-9eb5-419b-b909-c7102a7a038f -accessToken RDU4dwbHFHagpTZ1DzxqC9PfukLNfl08b_FimOGj3eo00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1698982961"}}
+1 -2
View File
@@ -12,7 +12,6 @@ public class RewardFunction : MonoBehaviour
[SerializeField] private GameObject sceneBlockContainerObj;
[SerializeField] private GameObject targetControllerObj;
[SerializeField] private GameObject environmentUIObj;
[SerializeField] private GameObject commonParameterContainerObj;
[SerializeField] private GameObject enemyContainerObj;
private GameObject agentObj;
@@ -36,7 +35,7 @@ public class RewardFunction : MonoBehaviour
agentObj = gameObject;
agentCon = agentObj.GetComponent<AgentController>();
fpsCam = agentCon.fpsCam;
commonParamCon = commonParameterContainerObj.GetComponent<CommonParameterContainer>();
commonParamCon = CommonParameterContainer.Instance;
paramCon = parameterContainerObj.GetComponent<ParameterContainer>();
sceneBlockCon = sceneBlockContainerObj.GetComponent<SceneBlockContainer>();
targetCon = targetControllerObj.GetComponent<TargetController>();
@@ -5,7 +5,6 @@ using UnityEngine;
public class AgentController : MonoBehaviour
{
[SerializeField] public GameObject commonParameterContainerObj;
[SerializeField] public Camera fpsCam;
[Header("GetAxis() Simulate")]
@@ -41,7 +40,7 @@ public class AgentController : MonoBehaviour
private void Start()
{
// initialize scripts
commonPramCon = commonParameterContainerObj.GetComponent<CommonParameterContainer>();
commonPramCon = CommonParameterContainer.Instance;
playerController = transform.GetComponent<CharacterController>();
// initialize Environment parameters
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using UnityEngine;
public class CommonParameterContainer : MonoBehaviour
public class CommonParameterContainer : Singleton<CommonParameterContainer>
{
[SerializeField] private GameObject hudObj;
@@ -95,6 +95,7 @@ public class CommonParameterContainer : MonoBehaviour
private void Start()
{
Instance.persistThroughScene = false;
messageCon = hudObj.GetComponent<MessageBoxController>();
try
{
@@ -8,7 +8,6 @@ using UnityEngine;
public class MLAgentsCustomController : Agent
{
[SerializeField] private GameObject paramContainerObj;
[SerializeField] private GameObject commonParameterContainer;
[SerializeField] private GameObject targetControllerObj;
[SerializeField] private GameObject environmentUIObj;
[SerializeField] private GameObject sideChannelObj;
@@ -50,7 +49,7 @@ public class MLAgentsCustomController : Agent
agentController = transform.GetComponent<AgentController>();
raySensors = transform.GetComponent<RaySensors>();
paramContainer = paramContainerObj.GetComponent<ParameterContainer>();
commonParamCon = commonParameterContainer.GetComponent<CommonParameterContainer>();
commonParamCon = CommonParameterContainer.Instance;
targetController = targetControllerObj.GetComponent<TargetController>();
envUIController = environmentUIObj.GetComponent<EnvironmentUIControl>();
hudController = hudObj.GetComponent<HUDController>();
@@ -7,7 +7,6 @@ public class ParameterContainer : MonoBehaviour
[SerializeField] private GameObject blockConObj;
[SerializeField] private GameObject agentObj;
[SerializeField] private GameObject hudObj;
[SerializeField] private GameObject CommonParamObj;
private TargetController targetCon;
private SceneBlockContainer blockCont;
@@ -56,7 +55,7 @@ public class ParameterContainer : MonoBehaviour
targetCon = targetConObj.GetComponent<TargetController>();
blockCont = blockConObj.GetComponent<SceneBlockContainer>();
messageCon = hudObj.GetComponent<MessageBoxController>();
commonParamCont = CommonParamObj.GetComponent<CommonParameterContainer>();
commonParamCont = CommonParameterContainer.Instance;
areaTimeBonusPerSec = commonParamCont.areaTimeBonusPerSec;
freeTimeBonusPerSec = commonParamCont.freeTimeBonusPerSec;
@@ -7,8 +7,6 @@ public class SceneBlockContainer : MonoBehaviour
[SerializeField]
private GameObject environmentObj;
[SerializeField]
private GameObject commonParameterContainerObj;
[SerializeField]
private GameObject hudObj;
// public GameObject[] attackBlockPrefabs = new GameObject[1];
@@ -21,7 +19,7 @@ public class SceneBlockContainer : MonoBehaviour
private void Start()
{
commonParamCon = commonParameterContainerObj.GetComponent<CommonParameterContainer>();
commonParamCon = CommonParameterContainer.Instance;
}
/// <summary>
+1 -2
View File
@@ -10,7 +10,6 @@ public class TargetController : MonoBehaviour
[SerializeField] private GameObject HUDObj;
[SerializeField] private GameObject sceneBlockContainerObj;
[SerializeField] private GameObject enemyContainerObj;
[SerializeField] private GameObject commonParameterContainerObj;
[SerializeField] private GameObject environmentUIObj;
// area
@@ -70,7 +69,7 @@ public class TargetController : MonoBehaviour
// Start is called before the first frame update
private void Start()
{
commonParamCon = commonParameterContainerObj.GetComponent<CommonParameterContainer>();
commonParamCon = CommonParameterContainer.Instance;
sceneBlockCon = sceneBlockContainerObj.GetComponent<SceneBlockContainer>();
envUICon = environmentUIObj.GetComponent<EnvironmentUIControl>();
enemyCon = enemyContainerObj.GetComponent<EnemyContainer>();
+1 -3
View File
@@ -21,8 +21,6 @@ public class MouseInMap : MonoBehaviour
[SerializeField]
private GameObject targetControllerObj;
[SerializeField]
private GameObject commonParameterContainerObj;
[SerializeField]
private GameObject HUDObj;
private Vector3 nowHitPosition = Vector3.zero;
@@ -56,7 +54,7 @@ public class MouseInMap : MonoBehaviour
private void Start()
{
commonParamCon = commonParameterContainerObj.GetComponent<CommonParameterContainer>();
commonParamCon = CommonParameterContainer.Instance;
groundMask = LayerMask.GetMask("Ground");
targetCon = targetControllerObj.GetComponent<TargetController>();
mousePreviewCon = mousePreviewObj.GetComponent<MousePreview>();
+40
View File
@@ -0,0 +1,40 @@
using UnityEngine;
public class Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
private static T _instance;
public static T Instance
{
get
{
if (_instance == null)
{
_instance = (T)FindObjectOfType(typeof(T));
if (_instance == null)
{
Debug.LogError("An instance of " + typeof(T) + " is needed in the scene, but there is none.");
}
}
return _instance;
}
}
public bool persistThroughScene = false;
protected virtual void Awake()
{
if (_instance == null)
{
_instance = this as T;
if (persistThroughScene)
{
DontDestroyOnLoad(gameObject);
}
}
else
{
Destroy(gameObject);
}
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a056057ed828e274b954ff7b8b2cb2f2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: