V3.1.5 修正PlayMode中TargetUI问题
修正TargetUI初始化StayMode Button可使用的问题 修正TargetUI可使用按钮逻辑问题 修正TargetUI与TargetController联动问题 修正Enemy击杀后不死亡问题
This commit is contained in:
@@ -1 +1 @@
|
||||
{"count":1,"self":24.7677008,"total":25.0365407,"children":{"InitializeActuators":{"count":2,"self":0.0015003,"total":0.0015003,"children":null},"InitializeSensors":{"count":2,"self":0.0014996999999999999,"total":0.0014996999999999999,"children":null},"AgentSendState":{"count":1017,"self":0.007495,"total":0.0511248,"children":{"CollectObservations":{"count":1017,"self":0.0386265,"total":0.0386265,"children":null},"WriteActionMask":{"count":1017,"self":0.00099969999999999985,"total":0.00099969999999999985,"children":null},"RequestDecision":{"count":1017,"self":0.0040035999999999995,"total":0.0040035999999999995,"children":null}}},"DecideAction":{"count":1017,"self":0.0070006,"total":0.0070006,"children":null},"AgentAct":{"count":1017,"self":0.2072142,"total":0.2072142,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1688924863","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 44edc017-c2ef-4ee2-a46e-a805348063c3 -accessToken hwwekuWWOiWUQhx9nSaQ-lN3ldhffV3XBnjmGsVD5O400ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Play","end_time_seconds":"1688924888"}}
|
||||
{"count":1,"self":126.74634239999999,"total":128.0847739,"children":{"InitializeActuators":{"count":2,"self":0.0009999,"total":0.0009999,"children":null},"InitializeSensors":{"count":2,"self":0.0010008,"total":0.0010008,"children":null},"AgentSendState":{"count":6178,"self":0.026903399999999997,"total":0.223186,"children":{"CollectObservations":{"count":6178,"self":0.1734102,"total":0.1734102,"children":null},"WriteActionMask":{"count":6178,"self":0.0093753,"total":0.0093753,"children":null},"RequestDecision":{"count":6178,"self":0.0134971,"total":0.0134971,"children":null}}},"DecideAction":{"count":6178,"self":0.0307529,"total":0.0307529,"children":null},"AgentAct":{"count":6178,"self":1.0819883,"total":1.0819883,"children":null}},"gauges":{"AKMAgent.CumulativeReward":{"count":7,"max":5501.69238,"min":-2529.91821,"runningAverage":1871.90051,"value":5501.69238,"weightedAverage":2216.80957}},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1690539320","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 4b63fb8e-9776-4262-b4cb-28aa0e369085 -accessToken Pb-uYo6-TCqI_VYWW4hD7qruW991NK-uVlSKxlTMxiM00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Play","end_time_seconds":"1690539448"}}
|
||||
@@ -1 +1 @@
|
||||
{"count":1,"self":21.093688,"total":21.0986854,"children":{"InitializeActuators":{"count":2,"self":0.0009999,"total":0.0009999,"children":null},"InitializeSensors":{"count":2,"self":0.0010000999999999999,"total":0.0010000999999999999,"children":null},"AgentSendState":{"count":591,"self":0.0005004,"total":0.0005004,"children":null},"DecideAction":{"count":591,"self":0.0024974,"total":0.0024974,"children":null},"AgentAct":{"count":591,"self":0,"total":0,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1688923374","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 44edc017-c2ef-4ee2-a46e-a805348063c3 -accessToken hwwekuWWOiWUQhx9nSaQ-lN3ldhffV3XBnjmGsVD5O400ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"StartScene","end_time_seconds":"1688923395"}}
|
||||
{"count":1,"self":13.571579199999999,"total":13.7595613,"children":{"InitializeActuators":{"count":16,"self":0.0014984,"total":0.0014984,"children":null},"InitializeSensors":{"count":16,"self":0.00099899999999999989,"total":0.00099899999999999989,"children":null},"AgentSendState":{"count":138,"self":0.0040011,"total":0.0211731,"children":{"CollectObservations":{"count":1104,"self":0.01567,"total":0.01567,"children":null},"WriteActionMask":{"count":1104,"self":0.0005011,"total":0.0005011,"children":null},"RequestDecision":{"count":1104,"self":0.0010008999999999999,"total":0.0010008999999999999,"children":null}}},"DecideAction":{"count":138,"self":0.0009996,"total":0.0009996,"children":null},"AgentAct":{"count":138,"self":0.1633126,"total":0.1633126,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1690540829","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 4b63fb8e-9776-4262-b4cb-28aa0e369085 -accessToken Pb-uYo6-TCqI_VYWW4hD7qruW991NK-uVlSKxlTMxiM00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"StartScene","end_time_seconds":"1690540842"}}
|
||||
@@ -1 +1 @@
|
||||
{"count":1,"self":25.2639312,"total":25.5526563,"children":{"InitializeActuators":{"count":2,"self":0.0015004999999999999,"total":0.0015004999999999999,"children":null},"InitializeSensors":{"count":2,"self":0.00099969999999999985,"total":0.00099969999999999985,"children":null},"AgentSendState":{"count":1054,"self":0.0034980999999999996,"total":0.045699899999999995,"children":{"CollectObservations":{"count":1054,"self":0.0368365,"total":0.0368365,"children":null},"WriteActionMask":{"count":1054,"self":0.0004996,"total":0.0004996,"children":null},"RequestDecision":{"count":1054,"self":0.0048657,"total":0.0048657,"children":null}}},"DecideAction":{"count":1054,"self":0.0070008,"total":0.0070008,"children":null},"AgentAct":{"count":1054,"self":0.2325234,"total":0.2325234,"children":null}},"gauges":{},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1688924949","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 44edc017-c2ef-4ee2-a46e-a805348063c3 -accessToken hwwekuWWOiWUQhx9nSaQ-lN3ldhffV3XBnjmGsVD5O400ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1688924974"}}
|
||||
{"count":1,"self":104.97326079999999,"total":112.0977204,"children":{"InitializeActuators":{"count":16,"self":0.0010003,"total":0.0010003,"children":null},"InitializeSensors":{"count":16,"self":0.0005001,"total":0.0005001,"children":null},"AgentSendState":{"count":5390,"self":0.076617499999999991,"total":0.813488,"children":{"CollectObservations":{"count":43120,"self":0.6721809,"total":0.6721809,"children":null},"WriteActionMask":{"count":43120,"self":0.0220062,"total":0.0220062,"children":null},"RequestDecision":{"count":43120,"self":0.042683399999999996,"total":0.042683399999999996,"children":null}}},"DecideAction":{"count":5390,"self":0.0811302,"total":0.0811302,"children":null},"AgentAct":{"count":5390,"self":6.22784,"total":6.2278401,"children":null}},"gauges":{"AKMAgent.CumulativeReward":{"count":24,"max":-2072.377,"min":-3955.04,"runningAverage":-3431.14233,"value":-3949.06714,"weightedAverage":-3815.8313}},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1690540848","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 4b63fb8e-9776-4262-b4cb-28aa0e369085 -accessToken Pb-uYo6-TCqI_VYWW4hD7qruW991NK-uVlSKxlTMxiM00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"Train","end_time_seconds":"1690540960"}}
|
||||
+55
-23
@@ -4851,7 +4851,7 @@ Mesh:
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: pb_Mesh22960
|
||||
m_Name: pb_Mesh22996
|
||||
serializedVersion: 10
|
||||
m_SubMeshes:
|
||||
- serializedVersion: 2
|
||||
@@ -5438,7 +5438,7 @@ Mesh:
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: pb_Mesh23968
|
||||
m_Name: pb_Mesh24008
|
||||
serializedVersion: 10
|
||||
m_SubMeshes:
|
||||
- serializedVersion: 2
|
||||
@@ -5799,7 +5799,7 @@ MonoBehaviour:
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_margin: {x: 0, y: 0, z: 20.544281, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
@@ -7787,7 +7787,7 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 749443372}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalPosition: {x: -30, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
@@ -8522,7 +8522,7 @@ Mesh:
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: pb_Mesh22922
|
||||
m_Name: pb_Mesh22958
|
||||
serializedVersion: 10
|
||||
m_SubMeshes:
|
||||
- serializedVersion: 2
|
||||
@@ -10617,6 +10617,50 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1156799888}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1178079198
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1178079199}
|
||||
- component: {fileID: 1178079200}
|
||||
m_Layer: 0
|
||||
m_Name: MousePreview
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1178079199
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1178079198}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1962276267}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1178079200
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1178079198}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 344fcc32b8a34e44395c603ede216670, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &1179942010
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -11349,7 +11393,7 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1356284071}
|
||||
m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535}
|
||||
m_LocalPosition: {x: -6, y: 24, z: -9}
|
||||
m_LocalPosition: {x: -40, y: 24, z: -9}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
@@ -17709,7 +17753,6 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 1962276267}
|
||||
- component: {fileID: 1962276266}
|
||||
- component: {fileID: 1962276268}
|
||||
m_Layer: 0
|
||||
m_Name: MouseSelector
|
||||
m_TagString: Untagged
|
||||
@@ -17731,7 +17774,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
playCamera: {fileID: 1586670226}
|
||||
environmentObj: {fileID: 749443372}
|
||||
selectEffect: {fileID: 6561472780860268583, guid: 66420aca630480743a18632a2ac888e9, type: 3}
|
||||
mousePreviewObj: {fileID: 1178079198}
|
||||
enemyContainerObj: {fileID: 891195334}
|
||||
sceneBlockContainerObj: {fileID: 1811162388}
|
||||
targetControllerObj: {fileID: 1692325237}
|
||||
@@ -17748,22 +17791,11 @@ Transform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 1178079199}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 8
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1962276268
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1962276265}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 344fcc32b8a34e44395c603ede216670, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &1969016142
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -18023,7 +18055,7 @@ Canvas:
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 2
|
||||
m_Camera: {fileID: 0}
|
||||
m_Camera: {fileID: 1586670226}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
@@ -19423,7 +19455,7 @@ Mesh:
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: pb_Mesh22998
|
||||
m_Name: pb_Mesh23034
|
||||
serializedVersion: 10
|
||||
m_SubMeshes:
|
||||
- serializedVersion: 2
|
||||
|
||||
+30645
-30631
File diff suppressed because it is too large
Load Diff
@@ -47,7 +47,7 @@ public class EnvironmentUIControl : MonoBehaviour
|
||||
{
|
||||
// while result is active and show time over timeOut
|
||||
// clear the result
|
||||
Debug.Log("clear result");
|
||||
Debug.Log("EnvironmentUIControl: clear result");
|
||||
winLoseText.text = "";
|
||||
winLoseText.color = Color.white;
|
||||
resultActive = false;
|
||||
@@ -182,11 +182,15 @@ public class EnvironmentUIControl : MonoBehaviour
|
||||
stateBuilder.Clear();
|
||||
|
||||
stateBuilder.Append($"States:\r\nTType:{targetStates[0]}");
|
||||
stateBuilder.Append("\r\nTPosition:");
|
||||
stateBuilder.Append(targetStates[1]).Append(targetStates[2]).Append(targetStates[3]);
|
||||
stateBuilder.Append("\r\nTDiameter:");
|
||||
stateBuilder.Append("\r\nTargetPosition:\r\nx:");
|
||||
stateBuilder.Append(targetStates[1]);
|
||||
stateBuilder.Append("\r\ny:");
|
||||
stateBuilder.Append(targetStates[2]);
|
||||
stateBuilder.Append("\r\nz:");
|
||||
stateBuilder.Append(targetStates[3]);
|
||||
stateBuilder.Append("\r\nTargetDiameter:");
|
||||
stateBuilder.Append(targetStates[4]);
|
||||
stateBuilder.Append("\r\nTRatio:");
|
||||
stateBuilder.Append("\r\nTargetBelongRatio:");
|
||||
stateBuilder.Append(targetStates[5]);
|
||||
stateBuilder.Append("\r\nInArea:");
|
||||
stateBuilder.Append(inAreaState);
|
||||
|
||||
@@ -20,6 +20,7 @@ public class MLAgentsCustomController : Agent
|
||||
private TargetController targetController;
|
||||
private EnvironmentUIControl envUIController;
|
||||
private HUDController hudController;
|
||||
private TargetUIController targetUIController;
|
||||
private RaySensors raySensors;
|
||||
|
||||
// observation
|
||||
@@ -44,6 +45,7 @@ public class MLAgentsCustomController : Agent
|
||||
targetController = targetControllerObj.GetComponent<TargetController>();
|
||||
envUIController = environmentUIObj.GetComponent<EnvironmentUIControl>();
|
||||
hudController = hudUIObj.GetComponent<HUDController>();
|
||||
targetUIController = hudUIObj.GetComponent<TargetUIController>();
|
||||
}
|
||||
|
||||
// ML-AGENTS处理-------------------------------------------------------------------------------------------ML-AGENTS
|
||||
@@ -64,6 +66,8 @@ public class MLAgentsCustomController : Agent
|
||||
{
|
||||
// play mode
|
||||
targetController.PlayInitialize();
|
||||
// reset target UI
|
||||
targetUIController.ClearGamePressed();
|
||||
}
|
||||
|
||||
// give default Reward to Reward value will be used.
|
||||
|
||||
@@ -133,7 +133,7 @@ public class ParameterContainer : MonoBehaviour
|
||||
private float targetInAreaTime = 0f;
|
||||
private float lastFrameTime = 0f;
|
||||
|
||||
[System.NonSerialized] public int gameMode;
|
||||
[System.NonSerialized] public int gameMode; // 0 = trainning mode, 1 = play mode
|
||||
[System.NonSerialized] public float attackProb = 0f;
|
||||
[System.NonSerialized] public float gotoProb = 0f;
|
||||
[System.NonSerialized] public float defenceProb = 0f;
|
||||
@@ -148,7 +148,7 @@ public class ParameterContainer : MonoBehaviour
|
||||
try
|
||||
{
|
||||
startSceneData = GameObject.Find("StartSceneDataTransfer").GetComponent<StartSeneData>();
|
||||
gameMode = startSceneData.gamemode;
|
||||
gameMode = startSceneData.gameMode;
|
||||
attackProb = startSceneData.attackProb;
|
||||
gotoProb = startSceneData.gotoProb;
|
||||
defenceProb = startSceneData.defenceProb;
|
||||
@@ -156,7 +156,7 @@ public class ParameterContainer : MonoBehaviour
|
||||
catch
|
||||
{
|
||||
Debug.LogError("PrameterContainer:Run WithOut StartScreen!");
|
||||
gameMode = 1;
|
||||
gameMode = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ using UnityEngine;
|
||||
|
||||
public class SceneBlock : MonoBehaviour
|
||||
{
|
||||
public GameObject firebasesAreaObj;
|
||||
public GameObject fireBasesAreaObj;
|
||||
public GameObject enemyContainerObj;
|
||||
public float group1InareaNum = 0;
|
||||
public float group2InareaNum = 0;
|
||||
@@ -37,21 +37,6 @@ public class SceneBlock : MonoBehaviour
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
{
|
||||
// if firebasesAreaObj is null, find sub object by name
|
||||
if (firebasesAreaObj == null)
|
||||
{
|
||||
firebasesAreaObj = transform.Find("FirebasesArea").gameObject;
|
||||
}
|
||||
// if enemyContainerObj is null, find them by name
|
||||
if (enemyContainerObj == null)
|
||||
{
|
||||
enemyContainerObj = transform.Find("EnemyContainer").gameObject;
|
||||
}
|
||||
firebasesAreaPosition = transform.position + firebasesAreaObj.transform.position;
|
||||
firebasesAreaScale = firebasesAreaObj.transform.localScale.x;
|
||||
firebasesAreaDiameter = firebasesAreaScale * blockSize;
|
||||
firebasesBelong = -belongMaxPoint;
|
||||
addPointEachInterval = belongMaxPoint / (stayTimeNeeded / addPointInterval);
|
||||
intervalStart = Time.time;
|
||||
}
|
||||
|
||||
@@ -111,6 +96,25 @@ public class SceneBlock : MonoBehaviour
|
||||
}
|
||||
group1Objs = group1ObjsList.ToArray();
|
||||
group2Objs = group2ObjsList.ToArray();
|
||||
|
||||
// if firebasesAreaObj is null, find sub object by name
|
||||
if (fireBasesAreaObj == null)
|
||||
{
|
||||
Debug.Log("SceneBlock.Start: fireBasesAreaObj not found, get it by name");
|
||||
fireBasesAreaObj = transform.Find("FirebasesArea").gameObject;
|
||||
}
|
||||
// if enemyContainerObj is null, find them by name
|
||||
if (enemyContainerObj == null)
|
||||
{
|
||||
Debug.Log("SceneBlock.Start: enemyContainerObj not found, get it by name");
|
||||
enemyContainerObj = transform.Find("EnemyContainer").gameObject;
|
||||
}
|
||||
firebasesAreaPosition = transform.position + fireBasesAreaObj.transform.position;
|
||||
firebasesAreaScale = fireBasesAreaObj.transform.localScale.x;
|
||||
firebasesAreaDiameter = firebasesAreaScale * blockSize;
|
||||
firebasesBelong = -belongMaxPoint;
|
||||
addPointEachInterval = belongMaxPoint / (stayTimeNeeded / addPointInterval);
|
||||
intervalStart = Time.time;
|
||||
}
|
||||
|
||||
//check game over 0=notover 1=win
|
||||
@@ -182,8 +186,8 @@ public class SceneBlock : MonoBehaviour
|
||||
// get this position and target's distance and is in firebase area
|
||||
public (float, int) GetDistInArea(Vector3 thisPosition)
|
||||
{
|
||||
thisPosition.y = firebasesAreaObj.transform.position.y;
|
||||
float dist = Vector3.Distance(thisPosition, firebasesAreaObj.transform.position) - (firebasesAreaDiameter / 2);
|
||||
thisPosition.y = fireBasesAreaObj.transform.position.y;
|
||||
float dist = Vector3.Distance(thisPosition, fireBasesAreaObj.transform.position) - (firebasesAreaDiameter / 2);
|
||||
int isinarea = 0;
|
||||
if (dist <= 0)
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@ public class SceneBlockContainer : MonoBehaviour
|
||||
if (thisBlockObj != null)
|
||||
{
|
||||
// delete thisBlock
|
||||
Debug.LogWarning("Block not clear!");
|
||||
Debug.LogWarning("SceneBlockContainer.CreateNewBlock: Block not clear!");
|
||||
DestroyBlock();
|
||||
}
|
||||
// choose target type
|
||||
@@ -59,7 +59,7 @@ public class SceneBlockContainer : MonoBehaviour
|
||||
break;
|
||||
|
||||
default:
|
||||
Debug.LogWarning("SceneBlock: CreateNewBlock: targetType not found!");
|
||||
Debug.LogWarning("SceneBlockContainer.CreateNewBlock: targetType not found!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,8 +57,8 @@ public class TargetController : MonoBehaviour
|
||||
private Vector3 targetLocalPosition;
|
||||
private bool firstRewardFlag = true;
|
||||
private bool targetEnemySpawnFinish = false;
|
||||
private SceneBlockContainer blockCont;
|
||||
private EnemyContainer enemyCont;
|
||||
private SceneBlockContainer sceneBlockCon;
|
||||
private EnemyContainer enemyCon;
|
||||
private EnvironmentUIControl envUICon;
|
||||
private ParameterContainer paramCon;
|
||||
private CharacterController agentCharaCon;
|
||||
@@ -72,9 +72,9 @@ public class TargetController : MonoBehaviour
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
{
|
||||
blockCont = sceneBlockContainerObj.GetComponent<SceneBlockContainer>();
|
||||
sceneBlockCon = sceneBlockContainerObj.GetComponent<SceneBlockContainer>();
|
||||
envUICon = environmentUIObj.GetComponent<EnvironmentUIControl>();
|
||||
enemyCont = enemyContainerObj.GetComponent<EnemyContainer>();
|
||||
enemyCon = enemyContainerObj.GetComponent<EnemyContainer>();
|
||||
agentCharaCon = agentObj.GetComponent<CharacterController>();
|
||||
paramCon = parameterContainerObj.GetComponent<ParameterContainer>();
|
||||
worldUICon = worldUIObj.GetComponent<WorldUIController>();
|
||||
@@ -102,7 +102,7 @@ public class TargetController : MonoBehaviour
|
||||
targetNum = (int)SceneBlockContainer.Targets.Num;
|
||||
if (freeProb < 0)
|
||||
{
|
||||
Debug.LogError("target percentage wrong");
|
||||
Debug.LogError("TargetController.Start: target percentage wrong");
|
||||
}
|
||||
|
||||
// initialize a simple fake onehot encoder.
|
||||
@@ -125,7 +125,7 @@ public class TargetController : MonoBehaviour
|
||||
{
|
||||
leftTime = paramCon.timeLimit;
|
||||
// print out time
|
||||
Debug.Log("Playing Time: " + leftTime);
|
||||
// Debug.Log("Playing Time: " + leftTime);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -142,7 +142,7 @@ public class TargetController : MonoBehaviour
|
||||
{
|
||||
// goto target spawn
|
||||
Debug.Log("GOTO THIS TARGET!");
|
||||
SpawnSceneBlock(SceneBlockContainer.Targets.Go);
|
||||
RandomSpawnSceneBlock(SceneBlockContainer.Targets.Go);
|
||||
// set startDistance
|
||||
firstRewardFlag = true;
|
||||
}
|
||||
@@ -150,7 +150,7 @@ public class TargetController : MonoBehaviour
|
||||
{
|
||||
// attack target spawn
|
||||
Debug.Log("ATTACK!");
|
||||
SpawnSceneBlock(SceneBlockContainer.Targets.Attack);
|
||||
RandomSpawnSceneBlock(SceneBlockContainer.Targets.Attack);
|
||||
// set startDistance
|
||||
firstRewardFlag = true;
|
||||
targetEnemySpawnFinish = false;
|
||||
@@ -159,7 +159,7 @@ public class TargetController : MonoBehaviour
|
||||
{
|
||||
// defence target spawn
|
||||
Debug.Log("DEFENCE!");
|
||||
SpawnSceneBlock(SceneBlockContainer.Targets.Defence);
|
||||
RandomSpawnSceneBlock(SceneBlockContainer.Targets.Defence);
|
||||
// set startDistance
|
||||
firstRewardFlag = true;
|
||||
}
|
||||
@@ -167,20 +167,24 @@ public class TargetController : MonoBehaviour
|
||||
{
|
||||
//Debug.Log("Free");
|
||||
targetTypeInt = (int)SceneBlockContainer.Targets.Free;
|
||||
enemyCont.DestroyAllEnemys();
|
||||
enemyCont.RandomInitEnemys(hudCon.enemyNum);
|
||||
enemyCon.DestroyAllEnemys();
|
||||
enemyCon.RandomInitEnemys(hudCon.enemyNum);
|
||||
MoveAgentToSpwanArea();
|
||||
blockCont.DestroyBlock();
|
||||
sceneBlockCon.DestroyBlock();
|
||||
}
|
||||
UpdateTargetStates();
|
||||
envUICon.UpdateTargetType(targetTypeInt);
|
||||
}
|
||||
|
||||
// get target observation states
|
||||
private void UpdateTargetStates()
|
||||
private void UpdateTargetStates(Vector3? thisTargetPosition = null)
|
||||
{
|
||||
// targettype, x,y,z, firebasesAreaDiameter
|
||||
targetState[0] = targetTypeInt;
|
||||
if (thisTargetPosition != null)
|
||||
{
|
||||
targetPosition = (Vector3)thisTargetPosition;
|
||||
}
|
||||
if (targetTypeInt == (int)SceneBlockContainer.Targets.Free || targetTypeInt == (int)SceneBlockContainer.Targets.Stay)
|
||||
{
|
||||
for (int i = 1; i < targetState.Length; i++)
|
||||
@@ -188,14 +192,11 @@ public class TargetController : MonoBehaviour
|
||||
}
|
||||
else
|
||||
{
|
||||
/* targetState[1] = targetPosition.x / raySensors.viewDistance; // normalization
|
||||
targetState[2] = targetPosition.y / raySensors.viewDistance;
|
||||
targetState[3] = targetPosition.z / raySensors.viewDistance;*/
|
||||
targetState[1] = targetPosition.x; // normalization
|
||||
targetState[1] = targetPosition.x;
|
||||
targetState[2] = targetPosition.y;
|
||||
targetState[3] = targetPosition.z;
|
||||
targetState[4] = blockCont.thisBlock.firebasesAreaDiameter / raySensors.viewDistance;
|
||||
targetState[5] = blockCont.thisBlock.belongRatio;
|
||||
targetState[4] = sceneBlockCon.thisBlock.firebasesAreaDiameter;
|
||||
targetState[5] = sceneBlockCon.thisBlock.belongRatio;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,11 +243,11 @@ public class TargetController : MonoBehaviour
|
||||
{
|
||||
case (int)SceneBlockContainer.Targets.Go:
|
||||
// goto
|
||||
(nowDistance, inArea) = blockCont.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
envUICon.UpdateTargetGauge(blockCont.thisBlock.firebasesBelong, blockCont.thisBlock.belongMaxPoint);
|
||||
(nowDistance, inArea) = sceneBlockCon.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
envUICon.UpdateTargetGauge(sceneBlockCon.thisBlock.firebasesBelong, sceneBlockCon.thisBlock.belongMaxPoint);
|
||||
float areaTargetReward = GetDistanceReward(nowDistance, inArea);
|
||||
//if(inArea != 0)
|
||||
if (blockCont.thisBlock.firebasesBelong >= blockCont.thisBlock.belongMaxPoint)
|
||||
if (sceneBlockCon.thisBlock.firebasesBelong >= sceneBlockCon.thisBlock.belongMaxPoint)
|
||||
{
|
||||
// win
|
||||
// let the area belongs to me
|
||||
@@ -273,11 +274,10 @@ public class TargetController : MonoBehaviour
|
||||
|
||||
case (int)SceneBlockContainer.Targets.Attack:
|
||||
// attack
|
||||
(nowDistance, inArea) = blockCont.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
envUICon.UpdateTargetGauge(blockCont.thisBlock.firebasesBelong, blockCont.thisBlock.belongMaxPoint);
|
||||
if (blockCont.thisBlock.GetInAreaNumber(group2Tag) <= 0 && targetEnemySpawnFinish)
|
||||
(nowDistance, inArea) = sceneBlockCon.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
envUICon.UpdateTargetGauge(sceneBlockCon.thisBlock.firebasesBelong, sceneBlockCon.thisBlock.belongMaxPoint);
|
||||
if (sceneBlockCon.thisBlock.GetInAreaNumber(group2Tag) <= 0 && targetEnemySpawnFinish)
|
||||
{
|
||||
Debug.Log(blockCont.thisBlock.GetInAreaNumber(group2Tag));
|
||||
// win
|
||||
// let the area belongs to me and kill every enmy in this area.
|
||||
thisReward = 0;
|
||||
@@ -309,9 +309,9 @@ public class TargetController : MonoBehaviour
|
||||
case (int)SceneBlockContainer.Targets.Defence:
|
||||
//defence
|
||||
// !!! DIDN't FINISH!!!
|
||||
(nowDistance, inArea) = blockCont.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
envUICon.UpdateTargetGauge(blockCont.thisBlock.firebasesBelong, blockCont.thisBlock.belongMaxPoint);
|
||||
if (leftTime <= 0 && blockCont.thisBlock.firebasesBelong >= 0f)
|
||||
(nowDistance, inArea) = sceneBlockCon.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
envUICon.UpdateTargetGauge(sceneBlockCon.thisBlock.firebasesBelong, sceneBlockCon.thisBlock.belongMaxPoint);
|
||||
if (leftTime <= 0 && sceneBlockCon.thisBlock.firebasesBelong >= 0f)
|
||||
{
|
||||
// win
|
||||
// time over and the area still mine
|
||||
@@ -319,7 +319,7 @@ public class TargetController : MonoBehaviour
|
||||
//thisReward = (paramCon.inAreaReward * inArea) + getSceneReward(nowDistance);
|
||||
endTypeInt = (int)EndType.Win;
|
||||
}
|
||||
else if (blockCont.thisBlock.firebasesBelong <= blockCont.thisBlock.belongMaxPoint)
|
||||
else if (sceneBlockCon.thisBlock.firebasesBelong <= sceneBlockCon.thisBlock.belongMaxPoint)
|
||||
{
|
||||
// lost area lose
|
||||
thisReward = paramCon.loseReward;
|
||||
@@ -375,18 +375,18 @@ public class TargetController : MonoBehaviour
|
||||
}
|
||||
|
||||
// initialize scene block by target type
|
||||
private void SpawnSceneBlock(SceneBlockContainer.Targets thisTargetType)
|
||||
private void RandomSpawnSceneBlock(SceneBlockContainer.Targets thisTargetType)
|
||||
{
|
||||
int randBlockType = 0;
|
||||
switch (thisTargetType)
|
||||
{
|
||||
case SceneBlockContainer.Targets.Go:
|
||||
randBlockType = Random.Range(0, blockCont.goBlockPrefabs.Length);
|
||||
sceneBlockSize = blockCont.goBlockPrefabs[randBlockType].GetComponent<SceneBlock>().blockSize;
|
||||
randBlockType = Random.Range(0, sceneBlockCon.goBlockPrefabs.Length);
|
||||
sceneBlockSize = sceneBlockCon.goBlockPrefabs[randBlockType].GetComponent<SceneBlock>().blockSize;
|
||||
break;
|
||||
case SceneBlockContainer.Targets.Attack:
|
||||
randBlockType = Random.Range(0, blockCont.attackBlockPrefabs.Length);
|
||||
sceneBlockSize = blockCont.attackBlockPrefabs[randBlockType].GetComponent<SceneBlock>().blockSize;
|
||||
randBlockType = Random.Range(0, sceneBlockCon.attackBlockPrefabs.Length);
|
||||
sceneBlockSize = sceneBlockCon.attackBlockPrefabs[randBlockType].GetComponent<SceneBlock>().blockSize;
|
||||
break;
|
||||
case SceneBlockContainer.Targets.Defence:
|
||||
// randBlockType = Random.Range(0, blockCont.defenceBlockPrefabs.Length);
|
||||
@@ -402,11 +402,11 @@ public class TargetController : MonoBehaviour
|
||||
targetPosition = new Vector3(randX, 0, randZ);
|
||||
|
||||
// init scene block
|
||||
blockCont.DestroyBlock();
|
||||
blockCont.CreateNewBlock(thisTargetType, randBlockType, targetPosition, group1Tag, group2Tag);
|
||||
enemyCont.DestroyAllEnemys();
|
||||
enemyCont.RandomInitEnemysExcept(hudCon.enemyNum, targetPosition, sceneBlockSize);
|
||||
blockCont.thisBlock.InitBlock(environmentObj);
|
||||
sceneBlockCon.DestroyBlock();
|
||||
sceneBlockCon.CreateNewBlock(thisTargetType, randBlockType, targetPosition, group1Tag, group2Tag);
|
||||
enemyCon.DestroyAllEnemys();
|
||||
enemyCon.RandomInitEnemysExcept(hudCon.enemyNum, targetPosition, sceneBlockSize);
|
||||
sceneBlockCon.thisBlock.InitBlock(environmentObj);
|
||||
}
|
||||
|
||||
// caulculate sceneReward if close to target then get great reward
|
||||
@@ -415,7 +415,7 @@ public class TargetController : MonoBehaviour
|
||||
if (firstRewardFlag)
|
||||
{
|
||||
// first distance record
|
||||
(lastDistance, _) = blockCont.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
(lastDistance, _) = sceneBlockCon.GetAgentTargetDistanceAndInside(agentObj.transform.position);
|
||||
firstRewardFlag = false;
|
||||
}
|
||||
float thisSceneReward = 0f;
|
||||
@@ -441,7 +441,7 @@ public class TargetController : MonoBehaviour
|
||||
if (targetTypeInt == (int)SceneBlockContainer.Targets.Attack)
|
||||
{
|
||||
// attack mode
|
||||
(_, int isInArea) = blockCont.thisBlock.GetDistInArea(enemyPosition);
|
||||
(_, int isInArea) = sceneBlockCon.thisBlock.GetDistInArea(enemyPosition);
|
||||
if (isInArea == 1)
|
||||
{
|
||||
// kill in area enemy
|
||||
@@ -472,7 +472,7 @@ public class TargetController : MonoBehaviour
|
||||
if (targetTypeInt == (int)SceneBlockContainer.Targets.Attack)
|
||||
{
|
||||
// attack mode
|
||||
(_, int isInArea) = blockCont.thisBlock.GetDistInArea(enemyPosition);
|
||||
(_, int isInArea) = sceneBlockCon.thisBlock.GetDistInArea(enemyPosition);
|
||||
if (isInArea == 1)
|
||||
{
|
||||
// hit in area enemy
|
||||
@@ -515,16 +515,18 @@ public class TargetController : MonoBehaviour
|
||||
public void PlayInitialize()
|
||||
{
|
||||
targetTypeInt = (int)SceneBlockContainer.Targets.Stay;
|
||||
UpdateTargetStates();
|
||||
envUICon.UpdateTargetType(targetTypeInt);
|
||||
MoveAgentToSpwanArea();
|
||||
enemyCont.DestroyAllEnemys();
|
||||
blockCont.DestroyBlock();
|
||||
enemyCon.DestroyAllEnemys();
|
||||
sceneBlockCon.DestroyBlock();
|
||||
}
|
||||
|
||||
// change to attack mode
|
||||
public void AttackModeChange()
|
||||
public void AttackModeChange(Vector3 thisTargetPosition)
|
||||
{
|
||||
targetTypeInt = (int)SceneBlockContainer.Targets.Attack;
|
||||
UpdateTargetStates(thisTargetPosition);
|
||||
envUICon.UpdateTargetType(targetTypeInt);
|
||||
}
|
||||
|
||||
@@ -532,13 +534,15 @@ public class TargetController : MonoBehaviour
|
||||
public void FreeModeChange()
|
||||
{
|
||||
targetTypeInt = (int)SceneBlockContainer.Targets.Free;
|
||||
UpdateTargetStates();
|
||||
envUICon.UpdateTargetType(targetTypeInt);
|
||||
}
|
||||
|
||||
// change to goto mode
|
||||
public void GotoModeChange()
|
||||
public void GotoModeChange(Vector3 thisTargetPosition)
|
||||
{
|
||||
targetTypeInt = (int)SceneBlockContainer.Targets.Go;
|
||||
UpdateTargetStates(thisTargetPosition);
|
||||
envUICon.UpdateTargetType(targetTypeInt);
|
||||
}
|
||||
|
||||
@@ -546,6 +550,7 @@ public class TargetController : MonoBehaviour
|
||||
public void StayModeChange()
|
||||
{
|
||||
targetTypeInt = (int)SceneBlockContainer.Targets.Stay;
|
||||
UpdateTargetStates();
|
||||
envUICon.UpdateTargetType(targetTypeInt);
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ public class States : MonoBehaviour
|
||||
{
|
||||
if (damageSource.tag == "Player")
|
||||
{
|
||||
damageSource.GetComponent<AgentWithGun>().KillRecord(transform.position);
|
||||
damageSource.GetComponent<AgentController>().KillRecord(transform.position);
|
||||
Destroy(this.gameObject);
|
||||
isDead = true;
|
||||
}
|
||||
|
||||
@@ -4,14 +4,14 @@ public class MouseInMap : MonoBehaviour
|
||||
{
|
||||
public Camera playCamera;
|
||||
public GameObject environmentObj;
|
||||
public GameObject selectEffect;
|
||||
public GameObject mousePreviewObj;
|
||||
public GameObject enemyContainerObj;
|
||||
public GameObject sceneBlockContainerObj;
|
||||
public GameObject targetControllerObj;
|
||||
public GameObject HUDObj;
|
||||
|
||||
private Vector3 mouseInMapPosition = Vector3.zero;
|
||||
private Vector3 nowHitPosition = Vector3.zero;
|
||||
private Vector3 nowHitPositionRelative = Vector3.zero;
|
||||
private LayerMask groundMask;
|
||||
private int randBlockNum;
|
||||
private GameObject preSet;
|
||||
@@ -35,7 +35,7 @@ public class MouseInMap : MonoBehaviour
|
||||
{
|
||||
groundMask = LayerMask.GetMask("Ground");
|
||||
targetCon = targetControllerObj.GetComponent<TargetController>();
|
||||
mousePreviewCon = this.GetComponent<MousePreview>();
|
||||
mousePreviewCon = mousePreviewObj.GetComponent<MousePreview>();
|
||||
enemyCon = enemyContainerObj.GetComponent<EnemyContainer>();
|
||||
sceneBlockCon = sceneBlockContainerObj.GetComponent<SceneBlockContainer>();
|
||||
targetUICon = HUDObj.GetComponent<TargetUIController>();
|
||||
@@ -44,32 +44,32 @@ public class MouseInMap : MonoBehaviour
|
||||
private void Update()
|
||||
{
|
||||
nowHitPosition = GetMouseOnMapPosition();
|
||||
nowHitPositionRelative = nowHitPosition - environmentObj.transform.position;
|
||||
// if mouse position in area, update mouseInMapPosition as nowHitPosition
|
||||
if (nowHitPosition.x < targetCon.maxAgentAreaX && nowHitPosition.x > targetCon.minAgentAreaX && nowHitPosition.z < targetCon.maxEnemyAreaZ && nowHitPosition.z > targetCon.minAgentAreaZ)
|
||||
if (nowHitPositionRelative.x < targetCon.maxAgentAreaX && nowHitPositionRelative.x > targetCon.minAgentAreaX && nowHitPositionRelative.z < targetCon.maxEnemyAreaZ && nowHitPositionRelative.z > targetCon.minAgentAreaZ)
|
||||
{
|
||||
mouseInMapPosition = nowHitPosition;
|
||||
mousePreviewCon.UpdatePreviewPosition(mouseInMapPosition);
|
||||
mousePreviewCon.UpdatePreviewPosition(nowHitPosition);
|
||||
// Mouse button R pressed
|
||||
if (Input.GetMouseButtonDown(1))
|
||||
{
|
||||
switch (mouseMode)
|
||||
{
|
||||
case MouseMode.AttackSet:
|
||||
sceneBlockCon.CreateNewBlock(SceneBlockContainer.Targets.Attack, randBlockNum, mouseInMapPosition);
|
||||
sceneBlockCon.CreateNewBlock(SceneBlockContainer.Targets.Attack, randBlockNum, nowHitPositionRelative);
|
||||
sceneBlockCon.InitializeBlock(environmentObj);
|
||||
targetCon.AttackModeChange();
|
||||
targetCon.AttackModeChange(nowHitPositionRelative);
|
||||
ChangeMouseModeTo(MouseMode.Default);
|
||||
break;
|
||||
|
||||
case MouseMode.GotoSet:
|
||||
sceneBlockCon.CreateNewBlock(SceneBlockContainer.Targets.Go, randBlockNum, mouseInMapPosition);
|
||||
sceneBlockCon.CreateNewBlock(SceneBlockContainer.Targets.Go, randBlockNum, nowHitPositionRelative);
|
||||
sceneBlockCon.InitializeBlock(environmentObj);
|
||||
targetCon.GotoModeChange();
|
||||
targetCon.GotoModeChange(nowHitPositionRelative);
|
||||
ChangeMouseModeTo(MouseMode.Default);
|
||||
break;
|
||||
|
||||
case MouseMode.EnemySet:
|
||||
enemyCon.InitEnemyAtHere(new Vector3(mouseInMapPosition.x, 1, mouseInMapPosition.z));
|
||||
enemyCon.InitEnemyAtHere(new Vector3(nowHitPositionRelative.x, 1, nowHitPositionRelative.z));
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -109,20 +109,18 @@ public class MouseInMap : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
// get mouse position on map, return a Vector3
|
||||
// get mouse position on map, return an absolute Vector3 coordinate
|
||||
public Vector3 GetMouseOnMapPosition()
|
||||
{
|
||||
// shoot raycast from mainCamera center to mousepositon
|
||||
RaycastHit thisHit;
|
||||
Color rayColor = Color.red;
|
||||
Vector3 onMapPosition;
|
||||
Ray ray = playCamera.ScreenPointToRay(Input.mousePosition);
|
||||
// if raycast hit gameobject
|
||||
if (Physics.Raycast(ray, out thisHit, Mathf.Infinity, groundMask))
|
||||
{
|
||||
//draw raycast
|
||||
Debug.DrawRay(ray.origin, ray.direction * 100, rayColor);
|
||||
return onMapPosition = thisHit.point;
|
||||
Debug.DrawRay(ray.origin, ray.direction * 100, Color.red);
|
||||
return thisHit.point;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml.Serialization;
|
||||
using UnityEngine;
|
||||
|
||||
public class MousePreview : MonoBehaviour
|
||||
{
|
||||
|
||||
// show mousePreviewObj in mouse position
|
||||
public void ChangePreviewTo(GameObject mousePreviewObj)
|
||||
{
|
||||
DeleteAllPreviewModele();
|
||||
Instantiate(mousePreviewObj, this.transform.position, Quaternion.identity, this.transform);
|
||||
Instantiate(mousePreviewObj, transform.position, Quaternion.identity, this.transform);
|
||||
}
|
||||
|
||||
public void UpdatePreviewPosition(Vector3 previewPos)
|
||||
{
|
||||
// move this gameobject to previewPos
|
||||
this.transform.position = previewPos;
|
||||
transform.position = previewPos;
|
||||
}
|
||||
|
||||
public void DeleteAllPreviewModele()
|
||||
{
|
||||
// delete all child object
|
||||
@@ -26,4 +24,4 @@ public class MousePreview : MonoBehaviour
|
||||
Destroy(childObj.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,6 @@ public class TargetUIController : MonoBehaviour
|
||||
// Controller to control the UI of the target,
|
||||
// select target type, select prefeb to set or sth.
|
||||
public GameObject targetControllerObj;
|
||||
|
||||
public GameObject mouseSelectorObj;
|
||||
public GameObject environmentUIObj;
|
||||
|
||||
@@ -24,6 +23,7 @@ public class TargetUIController : MonoBehaviour
|
||||
targetCon = targetControllerObj.GetComponent<TargetController>();
|
||||
mouseInMapCon = mouseSelectorObj.GetComponent<MouseInMap>();
|
||||
envUICon = environmentUIObj.GetComponent<EnvironmentUIControl>();
|
||||
ClearGamePressed();
|
||||
}
|
||||
|
||||
public void ClearGamePressed()
|
||||
@@ -47,11 +47,19 @@ public class TargetUIController : MonoBehaviour
|
||||
public void SetGotoPressed()
|
||||
{
|
||||
mouseInMapCon.ChangeMouseModeTo(MouseInMap.MouseMode.GotoSet);
|
||||
setStayButton.interactable = true;
|
||||
setAttackButton.interactable = true;
|
||||
setGotoButton.interactable = false;
|
||||
setFreeButton.interactable = true;
|
||||
}
|
||||
|
||||
public void SetAttackPressed()
|
||||
{
|
||||
mouseInMapCon.ChangeMouseModeTo(MouseInMap.MouseMode.AttackSet);
|
||||
setStayButton.interactable = true;
|
||||
setAttackButton.interactable = false;
|
||||
setGotoButton.interactable = true;
|
||||
setFreeButton.interactable = true;
|
||||
}
|
||||
|
||||
public void SetFreePressed()
|
||||
|
||||
@@ -3,7 +3,7 @@ using UnityEngine;
|
||||
public class StartSeneData : MonoBehaviour
|
||||
{
|
||||
[Header("Game mode")]
|
||||
public int gamemode = 0;// default trainning mode
|
||||
public int gameMode = 0;// default trainning mode
|
||||
[Header("Targets Prob")]
|
||||
public float attackProb = 0f;
|
||||
public float gotoProb = 0f;
|
||||
|
||||
@@ -36,7 +36,7 @@ public class StartUIManager : MonoBehaviour
|
||||
// while StartButton-Play Pressed
|
||||
public void OnPlayButtonPressed()
|
||||
{
|
||||
startSceneData.gamemode = 1;
|
||||
startSceneData.gameMode = 1;
|
||||
sceneLoader.LoadGameScene(SceneLoader.SceneType.Play);
|
||||
messageTextObj.text = "Loading Play Scene...";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user