Side channel Added
add side channel to let python side know which target got win or lose. fix update time bug. may cause double gameover check.(got another lose after reset the game.)
This commit is contained in:
parent
25eac00c53
commit
9585845ba2
34
Assets/AimBotSideChennelController.cs
Normal file
34
Assets/AimBotSideChennelController.cs
Normal file
@ -0,0 +1,34 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.SideChannels;
|
||||
|
||||
public class AimBotSideChennelController : MonoBehaviour
|
||||
{
|
||||
public AimbotSideChannel aimbotSideChannel;
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
// We create the Side Channel
|
||||
aimbotSideChannel = new AimbotSideChannel();
|
||||
|
||||
// When a Debug.Log message is created, we send it to the stringChannel
|
||||
Application.logMessageReceived += aimbotSideChannel.SendDebugStatementToPython;
|
||||
|
||||
// The channel must be registered with the SideChannelManager class
|
||||
SideChannelManager.RegisterSideChannel(aimbotSideChannel);
|
||||
}
|
||||
|
||||
|
||||
// Side Channel
|
||||
public void OnDestroy()
|
||||
{
|
||||
// De-register the Debug.Log callback
|
||||
Application.logMessageReceived -= aimbotSideChannel.SendDebugStatementToPython;
|
||||
if (Academy.IsInitialized)
|
||||
{
|
||||
SideChannelManager.UnregisterSideChannel(aimbotSideChannel);
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/AimBotSideChennelController.cs.meta
Normal file
11
Assets/AimBotSideChennelController.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ea781484763623c438c1806e3a965667
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1 +1 @@
|
||||
{"count":1,"self":42.474256,"total":42.853059699999996,"children":{"InitializeActuators":{"count":2,"self":0.0015008999999999999,"total":0.0015008999999999999,"children":null},"InitializeSensors":{"count":2,"self":0.0015055,"total":0.0015055,"children":null},"AgentSendState":{"count":1893,"self":0.010512599999999999,"total":0.2746114,"children":{"CollectObservations":{"count":1893,"self":0.2560784,"total":0.2560784,"children":null},"WriteActionMask":{"count":1893,"self":0.0025101999999999998,"total":0.0025101999999999998,"children":null},"RequestDecision":{"count":1893,"self":0.0055102,"total":0.0055102,"children":null}}},"DecideAction":{"count":1893,"self":0.0115018,"total":0.0115018,"children":null},"AgentAct":{"count":1893,"self":0.089183,"total":0.089183,"children":null}},"gauges":{"AKMAgent.CumulativeReward":{"count":2,"max":4055.03345,"min":0,"runningAverage":2027.51672,"value":4055.03345,"weightedAverage":1013.75836}},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1669579002","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 de16dbe0-6cd4-11ed-9c29-f9646c339c20 -accessToken jhaPd1UC_HGOPnXJPiNZkp5sX2Qlp2OZR2Lco0D0vEI00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"InGame","end_time_seconds":"1669579045"}}
|
||||
{"count":1,"self":40.2985024,"total":42.4412638,"children":{"InitializeActuators":{"count":16,"self":0.0020112,"total":0.0020112,"children":null},"InitializeSensors":{"count":16,"self":0.0015065999999999999,"total":0.0015065999999999999,"children":null},"AgentSendState":{"count":1874,"self":0.0380634,"total":1.8644398999999998,"children":{"CollectObservations":{"count":14992,"self":1.8012412,"total":1.8012412999999998,"children":null},"WriteActionMask":{"count":14992,"self":0.0075194,"total":0.0075194,"children":null},"RequestDecision":{"count":14992,"self":0.0176158,"total":0.0176158,"children":null}}},"DecideAction":{"count":1874,"self":0.034052,"total":0.034052,"children":null},"AgentAct":{"count":1874,"self":0.24024859999999998,"total":0.24024859999999998,"children":null}},"gauges":{"AKMAgent.CumulativeReward":{"count":15,"max":4907.581,"min":-20,"runningAverage":539.2357,"value":-20,"weightedAverage":582.851}},"metadata":{"timer_format_version":"0.1.0","start_time_seconds":"1669755123","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 39dd9f10-6f6c-11ed-bdc9-97b766c7725f -accessToken tjUhl7Qz2IHRCigogJbWXtXTE8NIC1e4qZnKcVPm0uc00ef","communication_protocol_version":"1.5.0","com.unity.ml-agents_version":"2.0.1","scene_name":"InGame","end_time_seconds":"1669755165"}}
|
File diff suppressed because it is too large
Load Diff
@ -247,7 +247,7 @@ float ballistic()
|
||||
GameObject gotHitObj = hit.transform.gameObject;//获取受到Ray撞击的对象
|
||||
gotHitObj.GetComponent<states>().ReactToHit(Damage, gameObject);
|
||||
shoot = 0;
|
||||
return paramContainer.hitReward;
|
||||
return targetCon.hitReward(gotHitObj.transform.position);
|
||||
}
|
||||
}
|
||||
shoot = 0;
|
||||
@ -402,6 +402,19 @@ public override void OnActionReceived(ActionBuffers actionBuffers)
|
||||
// Win or lose Finished
|
||||
Debug.Log("Finish reward = " + thisRoundReward);
|
||||
EP += 1;
|
||||
string targetString = Enum.GetName(typeof(TargetController.Targets), targetCon.targetTypeInt);
|
||||
switch (finishedState)
|
||||
{
|
||||
case (int)TargetController.EndType.Win:
|
||||
Debug.LogWarning(targetString+"|Win");
|
||||
break;
|
||||
case (int)TargetController.EndType.Lose:
|
||||
Debug.LogWarning(targetString+"|Lose");
|
||||
break;
|
||||
default:
|
||||
Debug.LogWarning("TypeError");
|
||||
break;
|
||||
}
|
||||
EndEpisode();
|
||||
}
|
||||
else
|
||||
|
41
Assets/Script/InGame/AimbotSideChannel.cs
Normal file
41
Assets/Script/InGame/AimbotSideChannel.cs
Normal file
@ -0,0 +1,41 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Unity.MLAgents;
|
||||
using Unity.MLAgents.SideChannels;
|
||||
using System;
|
||||
|
||||
public class AimbotSideChannel : SideChannel
|
||||
{
|
||||
public AimbotSideChannel()
|
||||
{
|
||||
ChannelId = new Guid("8bbfb62a-99b4-457c-879d-b78b69066b5e");
|
||||
}
|
||||
protected override void OnMessageReceived(IncomingMessage msg)
|
||||
{
|
||||
var receivedString = msg.ReadString();
|
||||
Debug.Log("From Python : " + receivedString);
|
||||
}
|
||||
|
||||
public void SendDebugStatementToPython(string logString, string stackTrace, LogType type)
|
||||
{
|
||||
if (type == LogType.Warning)
|
||||
{
|
||||
var stringToSend = "result|"+logString;
|
||||
using (var msgOut = new OutgoingMessage())
|
||||
{
|
||||
msgOut.WriteString(stringToSend);
|
||||
QueueMessageToSend(msgOut);
|
||||
}
|
||||
}
|
||||
if (type == LogType.Error)
|
||||
{
|
||||
var stringToSend = "Error|"+logString;
|
||||
using (var msgOut = new OutgoingMessage())
|
||||
{
|
||||
msgOut.WriteString(stringToSend);
|
||||
QueueMessageToSend(msgOut);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Script/InGame/AimbotSideChannel.cs.meta
Normal file
11
Assets/Script/InGame/AimbotSideChannel.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6836d727b536dd54e893311318779b9a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -13,6 +13,7 @@ public class EnvironmentUIControl : MonoBehaviour
|
||||
public GameObject GroundCanvasObj;
|
||||
public GameObject chartObj;
|
||||
public TextMeshProUGUI remainTimeText;
|
||||
public TextMeshProUGUI targetTypeText;
|
||||
public TextMeshProUGUI winLoseText;
|
||||
public float resultTimeout = 1f;
|
||||
public GameObject gaugeImgObj;
|
||||
@ -111,4 +112,31 @@ public void updateTargetGauge(float firebasesBelong, float belongMaxPoint)
|
||||
gaugeImg.fillAmount = -firebasesBelong / belongMaxPoint;
|
||||
}
|
||||
}
|
||||
// update targetType text
|
||||
public void updateTargetType(int targetInt)
|
||||
{
|
||||
switch (targetInt)
|
||||
{
|
||||
case (int)TargetController.Targets.Go:
|
||||
targetTypeText.text = "GOTO";
|
||||
targetTypeText.color = Color.blue;
|
||||
break;
|
||||
case (int)TargetController.Targets.Attack:
|
||||
targetTypeText.text = "Attack!";
|
||||
targetTypeText.color = Color.red;
|
||||
break;
|
||||
case (int)TargetController.Targets.Defence:
|
||||
targetTypeText.text = "Defence";
|
||||
targetTypeText.color = Color.green;
|
||||
break;
|
||||
case (int)TargetController.Targets.Free:
|
||||
targetTypeText.text = "Free";
|
||||
targetTypeText.color = Color.yellow;
|
||||
break;
|
||||
default:
|
||||
targetTypeText.text = "TYPE ERROR";
|
||||
targetTypeText.color = Color.red;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,15 +26,15 @@ public class ParameterContainer : MonoBehaviour
|
||||
|
||||
[Header("Dynamic Defaut Rewards")]
|
||||
[Tooltip("Hit Enemy reward")]
|
||||
public float hitRewardDefault = 30.0f;
|
||||
[Tooltip("Episode Win reward")]
|
||||
public float winRewardDefault = 50.0f;
|
||||
public float hitRewardDefault = 60.0f;
|
||||
[Tooltip("Free mode Hit Enemy reward")]
|
||||
public float hitTargetRewardDefault = 60.0f;
|
||||
[Tooltip("Enemy down reward")]
|
||||
public float killRewardDefault = 40.0f;
|
||||
public float killRewardDefault = 60.0f;
|
||||
[Tooltip("Enemy down in area Reward")]
|
||||
public float killInAreaEnemyRewardDefault = 80.0f;
|
||||
public float killTargetEnemyRewardDefault = 100.0f;
|
||||
[Tooltip("stay in firebasesArea reward")]
|
||||
public float inAreaRewardDefault = 1.0f;
|
||||
public float inAreaRewardDefault = 10.0f;
|
||||
[Tooltip("free left time bonus reward. ALLR + leftTime * r")]
|
||||
public float freeTimeBonusPerSec = 1.0f;
|
||||
[Tooltip("target left time bonus reward. ALLR + leftTime * r")]
|
||||
@ -42,20 +42,37 @@ public class ParameterContainer : MonoBehaviour
|
||||
[Tooltip("in area left time bonus reward. ALLR + leftTime * r")]
|
||||
public float areaTimeBonusPerSec = 1.0f;
|
||||
[Tooltip("distance reward reward = r*(1-(nowDis/startDis))")]
|
||||
public float distanceReward = 1.0f;
|
||||
public float distanceReward = 20.0f;
|
||||
[Space(10)]
|
||||
[Tooltip("Goto Win reward")]
|
||||
public float goWinRewardDefault = 100.0f;
|
||||
[Tooltip("Attack Win reward")]
|
||||
public float attackWinRewardDefault = 100.0f;
|
||||
[Tooltip("Defence Win reward")]
|
||||
public float defenceWinRewardDefault = 100.0f;
|
||||
[Tooltip("free Win reward")]
|
||||
public float freeWinRewardDefault = 100.0f;
|
||||
|
||||
[Header("Dynamic Rewards")]
|
||||
[Tooltip("Free mode Hit Enemy reward")]
|
||||
public float hitTargetReward = 60.0f;
|
||||
[Tooltip("Hit Enemy reward")]
|
||||
public float hitReward = 30.0f;
|
||||
[Tooltip("Enemy down reward")]
|
||||
public float killReward = 40.0f;
|
||||
[Tooltip("Episode Win reward")]
|
||||
public float winReward = 50.0f;
|
||||
[Tooltip("Enemy down in area Reward")]
|
||||
public float killInAreaEnemyReward = 80.0f;
|
||||
public float killTargetEnemyReward = 80.0f;
|
||||
[Tooltip("stay in firebasesArea reward")]
|
||||
public float inAreaReward = 1.0f;
|
||||
|
||||
[Space(10)]
|
||||
[Tooltip("go Win reward")]
|
||||
public float goWinReward = 50.0f;
|
||||
[Tooltip("attack Win reward")]
|
||||
public float attackWinReward = 50.0f;
|
||||
[Tooltip("defence Win reward")]
|
||||
public float defenceWinReward = 50.0f;
|
||||
[Tooltip("free Win reward")]
|
||||
public float freeWinReward = 50.0f;
|
||||
|
||||
|
||||
[Header("Static Rewards")]
|
||||
@ -115,10 +132,15 @@ private void Update()
|
||||
}
|
||||
|
||||
hitReward = hitRewardDefault + freeTimeBonus;
|
||||
hitTargetReward = hitTargetRewardDefault + freeTimeBonus;
|
||||
killReward = killRewardDefault + freeTimeBonus;
|
||||
winReward = winRewardDefault + targetTimeBonus;
|
||||
killInAreaEnemyReward = killInAreaEnemyRewardDefault + targetTimeBonus;
|
||||
killTargetEnemyReward = killTargetEnemyRewardDefault + targetTimeBonus;
|
||||
inAreaReward = inAreaRewardDefault + areaTimeBonus;
|
||||
|
||||
goWinReward = goWinRewardDefault + targetTimeBonus;
|
||||
attackWinReward = attackWinRewardDefault + targetTimeBonus;
|
||||
defenceWinReward = defenceWinRewardDefault + targetTimeBonus;
|
||||
freeWinReward = freeWinRewardDefault + targetTimeBonus;
|
||||
}
|
||||
|
||||
public void resetTimeBonusReward()
|
||||
|
@ -105,6 +105,7 @@ private void Update()
|
||||
public void rollNewScene()
|
||||
{
|
||||
startTime = Time.time;// Reset StartTime as now time
|
||||
leftTime = paramCon.timeLimit - Time.time + startTime;
|
||||
float randTargetType = UnityEngine.Random.Range(0f, 1f);
|
||||
if (randTargetType <= gotoProb)
|
||||
{
|
||||
@ -181,6 +182,7 @@ public void rollNewScene()
|
||||
moveAgentToSpwanArea();
|
||||
blockCont.destroyBlock();
|
||||
}
|
||||
envUICon.updateTargetType(targetTypeInt);
|
||||
}
|
||||
|
||||
// get target observation states
|
||||
@ -253,7 +255,7 @@ public float getSceneReward(float nowDistance)
|
||||
{
|
||||
// win
|
||||
// let the area belongs to me
|
||||
thisReward = paramCon.winReward;
|
||||
thisReward = paramCon.goWinReward;
|
||||
//thisReward = (paramCon.inAreaReward * inArea) + getSceneReward(nowDistance);
|
||||
endTypeInt = (int)EndType.Win;
|
||||
}
|
||||
@ -280,7 +282,7 @@ public float getSceneReward(float nowDistance)
|
||||
{
|
||||
// win
|
||||
// let the area belongs to me and kill every enmy in this area.
|
||||
thisReward = paramCon.winReward;
|
||||
thisReward = paramCon.attackWinReward;
|
||||
//thisReward = (paramCon.inAreaReward * inArea) + getSceneReward(nowDistance);
|
||||
endTypeInt = (int)EndType.Win;
|
||||
}
|
||||
@ -306,7 +308,7 @@ public float getSceneReward(float nowDistance)
|
||||
{
|
||||
// win
|
||||
// time over and the area still mine
|
||||
thisReward = paramCon.winReward;
|
||||
thisReward = paramCon.defenceWinReward;
|
||||
//thisReward = (paramCon.inAreaReward * inArea) + getSceneReward(nowDistance);
|
||||
endTypeInt = (int)EndType.Win;
|
||||
}
|
||||
@ -330,14 +332,14 @@ public float getSceneReward(float nowDistance)
|
||||
{
|
||||
// win
|
||||
//thisReward = paramCon.winReward + (paramCon.timeBonusPerSecReward * leftTime);
|
||||
thisReward = 0f;
|
||||
thisReward = paramCon.freeWinReward;
|
||||
endTypeInt = (int)EndType.Win;
|
||||
}
|
||||
else if (Time.time - startTime >= paramCon.timeLimit)
|
||||
{
|
||||
// lose
|
||||
//thisReward = paramCon.loseReward;
|
||||
thisReward = 0f;
|
||||
thisReward = paramCon.loseReward;
|
||||
endTypeInt = (int)EndType.Lose;
|
||||
}
|
||||
else
|
||||
@ -358,22 +360,59 @@ public float killReward(Vector3 enemyPosition)
|
||||
float thisKillReward = 0f;
|
||||
if (targetTypeInt == (int)Targets.Attack)
|
||||
{
|
||||
// attack
|
||||
// attack mode
|
||||
(_, int isInArea) = blockCont.thisBlock.getDist_inArea(enemyPosition);
|
||||
if (isInArea == 1)
|
||||
{
|
||||
thisKillReward = paramCon.killInAreaEnemyReward;
|
||||
// kill in area enemy
|
||||
thisKillReward = paramCon.killTargetEnemyReward;
|
||||
}
|
||||
else
|
||||
{
|
||||
thisKillReward = paramCon.killReward;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if(targetTypeInt == (int)Targets.Free)
|
||||
{
|
||||
// goto & defence & free
|
||||
// free mode kill
|
||||
thisKillReward = paramCon.killTargetEnemyReward;
|
||||
}else
|
||||
{
|
||||
// goto & defence
|
||||
thisKillReward = paramCon.killReward;
|
||||
}
|
||||
return thisKillReward;
|
||||
}
|
||||
|
||||
// calculate hit reward base on killed enemy's position and now mode
|
||||
public float hitReward(Vector3 enemyPosition)
|
||||
{
|
||||
float thisHitReward = 0f;
|
||||
if (targetTypeInt == (int)Targets.Attack)
|
||||
{
|
||||
// attack mode
|
||||
(_, int isInArea) = blockCont.thisBlock.getDist_inArea(enemyPosition);
|
||||
if (isInArea == 1)
|
||||
{
|
||||
// hit in area enemy
|
||||
thisHitReward = paramCon.hitTargetReward;
|
||||
}
|
||||
else
|
||||
{
|
||||
// hit not in area enemy
|
||||
thisHitReward = paramCon.hitReward;
|
||||
}
|
||||
}
|
||||
else if (targetTypeInt == (int)Targets.Free)
|
||||
{
|
||||
// free mode hit
|
||||
thisHitReward = paramCon.hitTargetReward;
|
||||
}
|
||||
else
|
||||
{
|
||||
// goto & defence
|
||||
thisHitReward = paramCon.hitReward;
|
||||
}
|
||||
return thisHitReward;
|
||||
}
|
||||
}
|
||||
|
18
Assets/sideChennelManager.cs
Normal file
18
Assets/sideChennelManager.cs
Normal file
@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class sideChennelManager : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
11
Assets/sideChennelManager.cs.meta
Normal file
11
Assets/sideChennelManager.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc32b1477a6cda045910784943fbcfd5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -14,16 +14,16 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
m_PixelRect:
|
||||
serializedVersion: 2
|
||||
x: 70
|
||||
y: 92
|
||||
width: 1840
|
||||
height: 980
|
||||
x: 62
|
||||
y: 43
|
||||
width: 1858
|
||||
height: 1037
|
||||
m_ShowMode: 4
|
||||
m_Title: Scene
|
||||
m_Title: Project
|
||||
m_RootView: {fileID: 12}
|
||||
m_MinSize: {x: 875, y: 542}
|
||||
m_MaxSize: {x: 10000, y: 10000}
|
||||
m_Maximized: 0
|
||||
m_Maximized: 1
|
||||
--- !u!114 &2
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@ -67,8 +67,8 @@ MonoBehaviour:
|
||||
y: 0
|
||||
width: 1018
|
||||
height: 630
|
||||
m_MinSize: {x: 100, y: 121}
|
||||
m_MaxSize: {x: 4000, y: 4021}
|
||||
m_MinSize: {x: 100, y: 100}
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_ActualView: {fileID: 16}
|
||||
m_Panes:
|
||||
- {fileID: 16}
|
||||
@ -97,7 +97,7 @@ MonoBehaviour:
|
||||
m_MinSize: {x: 100, y: 121}
|
||||
m_MaxSize: {x: 4000, y: 4021}
|
||||
vertical: 0
|
||||
controlID: 15
|
||||
controlID: 17
|
||||
--- !u!114 &5
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@ -114,9 +114,9 @@ MonoBehaviour:
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 669
|
||||
width: 1079
|
||||
height: 261
|
||||
y: 596
|
||||
width: 1090
|
||||
height: 391
|
||||
m_MinSize: {x: 231, y: 271}
|
||||
m_MaxSize: {x: 10001, y: 10021}
|
||||
m_ActualView: {fileID: 18}
|
||||
@ -144,12 +144,12 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1079
|
||||
height: 930
|
||||
width: 1090
|
||||
height: 987
|
||||
m_MinSize: {x: 100, y: 200}
|
||||
m_MaxSize: {x: 8096, y: 16192}
|
||||
vertical: 1
|
||||
controlID: 128
|
||||
controlID: 178
|
||||
--- !u!114 &7
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@ -166,9 +166,9 @@ MonoBehaviour:
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 360
|
||||
width: 328
|
||||
height: 570
|
||||
y: 382
|
||||
width: 245
|
||||
height: 605
|
||||
m_MinSize: {x: 102, y: 121}
|
||||
m_MaxSize: {x: 4002, y: 4021}
|
||||
m_ActualView: {fileID: 22}
|
||||
@ -193,14 +193,14 @@ MonoBehaviour:
|
||||
- {fileID: 7}
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 1079
|
||||
x: 1090
|
||||
y: 0
|
||||
width: 328
|
||||
height: 930
|
||||
width: 245
|
||||
height: 987
|
||||
m_MinSize: {x: 100, y: 200}
|
||||
m_MaxSize: {x: 8096, y: 16192}
|
||||
vertical: 1
|
||||
controlID: 137
|
||||
controlID: 82
|
||||
--- !u!114 &9
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@ -218,8 +218,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 328
|
||||
height: 360
|
||||
width: 245
|
||||
height: 382
|
||||
m_MinSize: {x: 202, y: 221}
|
||||
m_MaxSize: {x: 4002, y: 4021}
|
||||
m_ActualView: {fileID: 20}
|
||||
@ -247,12 +247,12 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 30
|
||||
width: 1840
|
||||
height: 930
|
||||
width: 1858
|
||||
height: 987
|
||||
m_MinSize: {x: 300, y: 200}
|
||||
m_MaxSize: {x: 24288, y: 16192}
|
||||
vertical: 0
|
||||
controlID: 136
|
||||
controlID: 76
|
||||
--- !u!114 &11
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@ -268,10 +268,10 @@ MonoBehaviour:
|
||||
m_Children: []
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 1407
|
||||
x: 1335
|
||||
y: 0
|
||||
width: 433
|
||||
height: 930
|
||||
width: 523
|
||||
height: 987
|
||||
m_MinSize: {x: 276, y: 71}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
m_ActualView: {fileID: 19}
|
||||
@ -299,8 +299,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1840
|
||||
height: 980
|
||||
width: 1858
|
||||
height: 1037
|
||||
m_MinSize: {x: 875, y: 300}
|
||||
m_MaxSize: {x: 10000, y: 10000}
|
||||
m_UseTopView: 1
|
||||
@ -324,7 +324,7 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1840
|
||||
width: 1858
|
||||
height: 30
|
||||
m_MinSize: {x: 0, y: 0}
|
||||
m_MaxSize: {x: 0, y: 0}
|
||||
@ -345,8 +345,8 @@ MonoBehaviour:
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 960
|
||||
width: 1840
|
||||
y: 1017
|
||||
width: 1858
|
||||
height: 20
|
||||
m_MinSize: {x: 0, y: 0}
|
||||
m_MaxSize: {x: 0, y: 0}
|
||||
@ -367,8 +367,8 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1079
|
||||
height: 669
|
||||
width: 1090
|
||||
height: 596
|
||||
m_MinSize: {x: 201, y: 221}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
m_ActualView: {fileID: 21}
|
||||
@ -516,10 +516,10 @@ MonoBehaviour:
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 70
|
||||
y: 791
|
||||
width: 1078
|
||||
height: 240
|
||||
x: 62
|
||||
y: 669
|
||||
width: 1089
|
||||
height: 370
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
@ -537,22 +537,22 @@ MonoBehaviour:
|
||||
m_SkipHidden: 0
|
||||
m_SearchArea: 1
|
||||
m_Folders:
|
||||
- Assets/Prefeb/GoBlock
|
||||
- Assets/Script/InGame
|
||||
m_Globs: []
|
||||
m_OriginalText:
|
||||
m_ViewMode: 1
|
||||
m_StartGridSize: 16
|
||||
m_LastFolders:
|
||||
- Assets/Prefeb/GoBlock
|
||||
- Assets/Script/InGame
|
||||
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: 100}
|
||||
m_SelectedIDs: 0e770000
|
||||
m_LastClickedID: 30478
|
||||
m_ExpandedIDs: 00000000c6760000c8760000ca760000cc760000ce760000d0760000d2760000d476000000ca9a3bffffff7f
|
||||
scrollPos: {x: 0, y: 41}
|
||||
m_SelectedIDs: 14770000
|
||||
m_LastClickedID: 30484
|
||||
m_ExpandedIDs: 00000000c6760000c8760000ca760000cc760000d0760000d476000000ca9a3b
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@ -607,22 +607,22 @@ MonoBehaviour:
|
||||
m_ListAreaState:
|
||||
m_SelectedInstanceIDs:
|
||||
m_LastClickedInstanceID: 0
|
||||
m_HadKeyboardFocusLastEvent: 0
|
||||
m_HadKeyboardFocusLastEvent: 1
|
||||
m_ExpandedInstanceIDs: c623000000000000
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
m_OriginalName:
|
||||
m_Name: WorldUIController
|
||||
m_OriginalName: WorldUIController
|
||||
m_EditFieldRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
m_UserData: 0
|
||||
m_UserData: 6716
|
||||
m_IsWaitingForDelay: 0
|
||||
m_IsRenaming: 0
|
||||
m_OriginalEventType: 11
|
||||
m_OriginalEventType: 0
|
||||
m_IsRenamingFilename: 1
|
||||
m_ClientGUIView: {fileID: 5}
|
||||
m_CreateAssetUtility:
|
||||
@ -656,10 +656,10 @@ MonoBehaviour:
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 1477
|
||||
y: 122
|
||||
width: 432
|
||||
height: 909
|
||||
x: 1397
|
||||
y: 73
|
||||
width: 522
|
||||
height: 966
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
@ -671,7 +671,7 @@ MonoBehaviour:
|
||||
m_ControlHash: -371814159
|
||||
m_PrefName: Preview_InspectorPreview
|
||||
m_LastInspectedObjectInstanceID: -1
|
||||
m_LastVerticalScrollValue: 54
|
||||
m_LastVerticalScrollValue: 878
|
||||
m_GlobalObjectId:
|
||||
m_InspectorMode: 0
|
||||
m_LockTracker:
|
||||
@ -697,10 +697,10 @@ MonoBehaviour:
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 1149
|
||||
y: 122
|
||||
width: 326
|
||||
height: 339
|
||||
x: 1152
|
||||
y: 73
|
||||
width: 243
|
||||
height: 361
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
@ -708,9 +708,9 @@ MonoBehaviour:
|
||||
m_SceneHierarchy:
|
||||
m_TreeViewState:
|
||||
scrollPos: {x: 0, y: 0}
|
||||
m_SelectedIDs:
|
||||
m_LastClickedID: 0
|
||||
m_ExpandedIDs: 32fbffff
|
||||
m_SelectedIDs: 9eec0100
|
||||
m_LastClickedID: 126110
|
||||
m_ExpandedIDs: 42cdfeff9acdfeff1acffeff7c03ffffd403ffff5405ffffb0ceffff08cfffff78d0ffff32fbffff1caa0000e2ec0100
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@ -754,10 +754,10 @@ MonoBehaviour:
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 70
|
||||
y: 122
|
||||
width: 1078
|
||||
height: 648
|
||||
x: 62
|
||||
y: 73
|
||||
width: 1089
|
||||
height: 575
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
@ -992,9 +992,9 @@ MonoBehaviour:
|
||||
m_PlayAudio: 0
|
||||
m_AudioPlay: 0
|
||||
m_Position:
|
||||
m_Target: {x: -34.113144, y: 18.527344, z: 51.342407}
|
||||
m_Target: {x: 401, y: -864.7725, z: 534.98376}
|
||||
speed: 2
|
||||
m_Value: {x: -34.113144, y: 18.527344, z: 51.342407}
|
||||
m_Value: {x: 401, y: -864.7725, z: 534.98376}
|
||||
m_RenderMode: 0
|
||||
m_CameraMode:
|
||||
drawMode: 0
|
||||
@ -1041,13 +1041,13 @@ MonoBehaviour:
|
||||
m_GridAxis: 1
|
||||
m_gridOpacity: 0.5
|
||||
m_Rotation:
|
||||
m_Target: {x: 0.33203965, y: 0.20104572, z: -0.07264823, w: 0.91870475}
|
||||
m_Target: {x: 0.34105033, y: 0.36417004, z: -0.14535965, w: 0.8543353}
|
||||
speed: 2
|
||||
m_Value: {x: 0.331936, y: 0.20242701, z: -0.07314745, w: 0.9184179}
|
||||
m_Value: {x: 0.34233946, y: 0.36396012, z: -0.1459091, w: 0.8538427}
|
||||
m_Size:
|
||||
m_Target: 328.48233
|
||||
m_Target: 724.4659
|
||||
speed: 2
|
||||
m_Value: 314.33716
|
||||
m_Value: 693.2688
|
||||
m_Ortho:
|
||||
m_Target: 0
|
||||
speed: 2
|
||||
@ -1092,10 +1092,10 @@ MonoBehaviour:
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 1149
|
||||
y: 482
|
||||
width: 326
|
||||
height: 549
|
||||
x: 1152
|
||||
y: 455
|
||||
width: 243
|
||||
height: 584
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
|
Loading…
Reference in New Issue
Block a user