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:
Koha9 2022-11-30 06:39:56 +09:00
parent 25eac00c53
commit 9585845ba2
13 changed files with 42376 additions and 113 deletions

View 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);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ea781484763623c438c1806e3a965667
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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

View File

@ -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

View 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);
}
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6836d727b536dd54e893311318779b9a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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;
}
}
}

View File

@ -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()

View File

@ -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;
}
}

View 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()
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cc32b1477a6cda045910784943fbcfd5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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