android回调unity

This commit is contained in:
2025-07-26 15:30:09 +08:00
parent 57d914dfe7
commit 39d351c39e
6 changed files with 361 additions and 162 deletions

View File

@@ -15,18 +15,20 @@ import android.os.Looper;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import com.unity3d.player.UnityPlayer;
public class Main extends Service {
private Handler handler = new Handler(Looper.getMainLooper());
private Runnable logRunnable = new Runnable() {
@Override
public void run() {
Log.i("PineappleService", "服务正在运行...");
// 5秒后再次执行
handler.postDelayed(this, 5000);
}
};
@@ -61,10 +63,7 @@ public class Main extends Service {
startForeground(1, notification);
}
// 启动定时日志任务
handler.post(logRunnable);
// 启动udp接收
startUdpReceiver();
return START_STICKY;
@@ -79,19 +78,13 @@ public class Main extends Service {
public static void startMyForegroundService() {
Log.i("PineappleService", "开始启动服务...");
try {
// 获取 UnityPlayer 类
Class<?> unityPlayerClass = Class.forName("com.unity3d.player.UnityPlayer");
// 获取 currentActivity 字段
Field activityField = unityPlayerClass.getField("currentActivity");
// 获取 Activity 实例
Object activity = activityField.get(null);
// 获取 getApplicationContext 方法
Method getApplicationContextMethod = activity.getClass().getMethod("getApplicationContext");
// 调用 getApplicationContext()
Context context = (Context) getApplicationContextMethod.invoke(activity);
// 创建 Intent 并启动前台服务
Intent intent = new Intent(context, Main.class);
context.startForegroundService(intent);
} catch (Exception e) {
@@ -110,19 +103,36 @@ public class Main extends Service {
@Override
public void run() {
try {
// 初始化 UDP Socket指定端口号
udpSocket = new DatagramSocket(8888); // 你可以根据需要修改端口
udpSocket = new DatagramSocket(8888);
byte[] buffer = new byte[1024];
while (isRunning) {
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
udpSocket.receive(packet);
// 收到数据后处理
String receivedData = new String(packet.getData(), 0, packet.getLength());
String receivedData = new String(packet.getData(), 0, packet.getLength()).trim();
Log.i("PineappleService", "收到UDP数据: " + receivedData);
// 可以在这里添加处理逻辑比如发送回执、通知Unity等
if ("DISCOVER".equals(receivedData)) {
String sn = Main.sn;
String power = Main.power;
String jsonResponse = String.format("{\"SN\":\"%s\",\"Power\":\"%s\"}", sn, power);
byte[] response = jsonResponse.getBytes();
DatagramPacket responsePacket = new DatagramPacket(
response,
response.length,
packet.getAddress(),
packet.getPort());
udpSocket.send(responsePacket);
} else if ("PLAY".equals(receivedData)) {
Log.i("PineappleService", "收到播放指令");
// callUnityMethod("AppManager", "StartApp", null);
// UnityPlayer.UnitySendMessage("AppManager", "UnityMethod", "test");
callUnity("AppManager", "UnityMethod", "test");
}
}
} catch (Exception e) {
Log.e("PineappleService", "UDP接收错误: " + e.getMessage());
@@ -131,4 +141,71 @@ public class Main extends Service {
});
udpReceiveThread.start();
}
// 用于接收 Unity 返回的值
private static String sn = "未知";
private static String power = "0%";
// Unity 调用此方法设置 SN
public static void setSnFromUnity(String sn) {
Main.sn = sn;
}
// Unity 调用此方法设置电量
public static void setPowerFromUnity(String power) {
Main.power = power;
}
// /**
// * 调用Unity的方法
// *
// * @param gameObjectName 调用的GameObject的名称
// * @param functionName 方法名
// * @param args 参数
// * @return 调用是否成功
// */
// boolean callUnity(String gameObjectName, String functionName, String args) {
// final String TAG = "PineappleService"; // 日志标签
// try {
// // 1. 获取UnityPlayer类
// Class<?> classtype = Class.forName("com.unity3d.player.UnityPlayer");
// // 2. 获取UnitySendMessage静态方法
// Method method = classtype.getMethod("UnitySendMessage", String.class,
// String.class, String.class);
// // 3. 关键修复静态方法第一个参数必须为null
// method.invoke(null, gameObjectName, functionName, args); // ✅ 修复静态调用
// return true;
// } catch (ClassNotFoundException e) {
// Log.i(TAG, " ERROR: UnityPlayer class not found! Check Unity integration.");
// } catch (NoSuchMethodException e) {
// Log.i(TAG, " ERROR: UnitySendMessage method not found! Update Unity
// library.");
// } catch (IllegalAccessException e) {
// Log.i(TAG, " ERROR: Access denied to UnitySendMessage! Check method
// visibility.");
// } catch (InvocationTargetException e) {
// Log.i(TAG, " ERROR: UnitySendMessage crashed: " + e.getTargetException());
// } catch (Exception e) {
// Log.i(TAG, " UNEXPECTED ERROR: " + e.getMessage());
// }
// return false;
// }
public void callUnity(String gameObjectName, String methodName, String message) {
try {
// 使用UnityPlayer.currentActivity获取当前Activity上下文
UnityPlayer.currentActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
// 直接使用UnityPlayer的静态方法UnitySendMessage
UnityPlayer.UnitySendMessage(gameObjectName, methodName, message);
}
});
} catch (Exception e) {
Log.e("PineappleService", "调用Unity方法失败: " + e.getMessage());
}
}
}

View File

@@ -132,8 +132,9 @@ GameObject:
m_Component:
- component: {fileID: 35413077}
- component: {fileID: 35413078}
- component: {fileID: 35413079}
m_Layer: 0
m_Name: Base
m_Name: AppManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -196,6 +197,18 @@ MonoBehaviour:
maxEyeTextureScale: 1.26
enableSuperResolution: 0
useRecommendedAntiAliasingLevel: 0
--- !u!114 &35413079
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 35413076}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b3159c935f3772479f4923d8edd8701, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &283105937
GameObject:
m_ObjectHideFlags: 0
@@ -208,7 +221,6 @@ GameObject:
- component: {fileID: 283105940}
- component: {fileID: 283105939}
- component: {fileID: 283105938}
- component: {fileID: 283105943}
- component: {fileID: 283105944}
m_Layer: 5
m_Name: Canvas
@@ -299,18 +311,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &283105943
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 283105937}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b3159c935f3772479f4923d8edd8701, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &283105944
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@@ -7,6 +7,7 @@ using Unity.XR.PXR;
using UnityEngine;
using Pico.Platform;
using Pico.Platform.Models;
using Unity.VisualScripting;
public class AuthInfo
{
@@ -31,11 +32,14 @@ public class AppManager : MonoBehaviour
PXR_Enterprise.BindEnterpriseService();
PXR_Enterprise.AppKeepAlive("com.pineapplegame.service", true, 0);
#endif
// 保活自身
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{
// QRScanPanel.Show();
LoginPanel.Show();
GetSnAndCallback();
GetPowerAndCallback();
}, 0.5f);
}
@@ -90,7 +94,6 @@ public class AppManager : MonoBehaviour
public string GetSn()
{
string res = "UnityEditor";
// string res = "PA8E10MGH7210380D";
#if !UNITY_EDITOR && UNITY_ANDROID && PICO
res = PXR_Enterprise.StateGetDeviceInfo(SystemInfoEnum.EQUIPMENT_SN);
#endif
@@ -106,26 +109,36 @@ public class AppManager : MonoBehaviour
return res;
}
public void StartApp()
public void GetSnAndCallback()
{
// string packageName = "com.pineappletech.loong";
// string className = "com.unity3d.player.UnityPlayerActivity";
// string action = "android.intent.action.MAIN";
// string extra = null;
// string[] categories = new string[] { "android.intent.category.LAUNCHER" };
// int[] flags = new int[] { 0x10000000 }; // FLAG_ACTIVITY_NEW_TASK
string sn = GetSn();
// 直接调用你的 Main 服务类的静态方法
using (AndroidJavaClass mainClass = new AndroidJavaClass("com.pinappletech.android.main.Main"))
{
mainClass.CallStatic("setSnFromUnity", sn);
}
}
// int result = PXR_Enterprise.StartActivity(
// packageName,
// className,
// action,
// extra,
// categories,
// flags
// );
public void GetPowerAndCallback()
{
string power = GetPower();
// 直接调用你的 Main 服务类的静态方法
using (AndroidJavaClass mainClass = new AndroidJavaClass("com.pinappletech.android.main.Main"))
{
mainClass.CallStatic("setPowerFromUnity", power);
}
}
// Debug.Log("启动应用结果: " + result);
Debug.Log("唤起龙");
public static void StartApp()
{
Debug.Log("测试调起Loong");
Application.OpenURL("picoapp://launch?package=com.pineappletech.loong");
}
public void UnityMethod(string message)
{
Debug.Log("从Android收到信息" + message);
// 在这里编写具体的逻辑
Application.OpenURL("picoapp://launch?package=com.pineappletech.loong");
}
}

View File

@@ -38,18 +38,18 @@ public class UdpNetCoroutine : MonoBehaviour
if (message == "DISCOVER")
{
string sn = AppManager.Ins.GetSn();
Debug.Log("收到设备发现请求" + sn);
string jsonstr = "{" +
"\"SN\":\"" + sn + "\"" +
",\"Power\":\"" + AppManager.Ins.GetPower() +
"\"}";
byte[] response = Encoding.UTF8.GetBytes(jsonstr);
udpListener.Send(response, response.Length, remoteEndPoint);
// string sn = AppManager.Ins.GetSn();
// Debug.Log("收到设备发现请求" + sn);
// string jsonstr = "{" +
// "\"SN\":\"" + sn + "\"" +
// ",\"Power\":\"" + AppManager.Ins.GetPower() +
// "\"}";
// byte[] response = Encoding.UTF8.GetBytes(jsonstr);
// udpListener.Send(response, response.Length, remoteEndPoint);
}
else if (message == "PLAY")
{
AppManager.Ins.StartApp();
// AppManager.Ins.StartApp();
}
}
else

View File

@@ -69,7 +69,7 @@
"AutoCapture": true
},
"m_FilterOptions": {
"m_Filter": "",
"m_Filter": "",
"m_UseRegularExpressions": false,
"m_MatchCase": false
},

View File

@@ -1,6 +1,30 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_PixelRect:
serializedVersion: 2
x: 217
y: 112
width: 1328
height: 772
m_ShowMode: 0
m_Title: Android Logcat
m_RootView: {fileID: 4}
m_MinSize: {x: 100, y: 121}
m_MaxSize: {x: 4000, y: 4021}
m_Maximized: 0
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -19,12 +43,63 @@ MonoBehaviour:
width: 2560
height: 989
m_ShowMode: 4
m_Title: "\u9879\u76EE"
m_RootView: {fileID: 2}
m_Title: "\u5C42\u7EA7"
m_RootView: {fileID: 5}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_Maximized: 1
--- !u!114 &2
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: AndroidLogcatConsoleWindow
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1328
height: 772
m_MinSize: {x: 100, y: 121}
m_MaxSize: {x: 4000, y: 4021}
m_ActualView: {fileID: 16}
m_Panes:
- {fileID: 16}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 3}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1328
height: 772
m_MinSize: {x: 100, y: 121}
m_MaxSize: {x: 4000, y: 4021}
vertical: 0
controlID: 1462
draggingID: 0
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -37,9 +112,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 3}
- {fileID: 5}
- {fileID: 4}
- {fileID: 6}
- {fileID: 8}
- {fileID: 7}
m_Position:
serializedVersion: 2
x: 0
@@ -52,7 +127,7 @@ MonoBehaviour:
m_TopViewHeight: 30
m_UseBottomView: 1
m_BottomViewHeight: 20
--- !u!114 &3
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -74,7 +149,7 @@ MonoBehaviour:
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
m_LastLoadedLayoutName:
--- !u!114 &4
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -95,7 +170,7 @@ MonoBehaviour:
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
--- !u!114 &5
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -108,8 +183,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 6}
- {fileID: 12}
- {fileID: 9}
- {fileID: 15}
m_Position:
serializedVersion: 2
x: 0
@@ -119,9 +194,9 @@ MonoBehaviour:
m_MinSize: {x: 400, y: 100}
m_MaxSize: {x: 32384, y: 16192}
vertical: 0
controlID: 154
controlID: 74
draggingID: 0
--- !u!114 &6
--- !u!114 &9
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -134,8 +209,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 7}
- {fileID: 11}
- {fileID: 10}
- {fileID: 14}
m_Position:
serializedVersion: 2
x: 0
@@ -145,9 +220,9 @@ MonoBehaviour:
m_MinSize: {x: 300, y: 100}
m_MaxSize: {x: 24288, y: 16192}
vertical: 1
controlID: 101
controlID: 75
draggingID: 0
--- !u!114 &7
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -160,21 +235,21 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 8}
- {fileID: 9}
- {fileID: 10}
- {fileID: 11}
- {fileID: 12}
- {fileID: 13}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 2013
height: 567
height: 558
m_MinSize: {x: 300, y: 50}
m_MaxSize: {x: 24288, y: 8096}
vertical: 0
controlID: 77
controlID: 52
draggingID: 0
--- !u!114 &8
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -192,15 +267,15 @@ MonoBehaviour:
x: 0
y: 0
width: 462
height: 567
height: 558
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 14}
m_ActualView: {fileID: 18}
m_Panes:
- {fileID: 14}
- {fileID: 18}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &9
--- !u!114 &12
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -218,17 +293,17 @@ MonoBehaviour:
x: 462
y: 0
width: 873
height: 567
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 15}
height: 558
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 19}
m_Panes:
- {fileID: 15}
- {fileID: 16}
- {fileID: 17}
- {fileID: 19}
- {fileID: 20}
- {fileID: 21}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &10
--- !u!114 &13
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -246,16 +321,16 @@ MonoBehaviour:
x: 1335
y: 0
width: 678
height: 567
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 13}
height: 558
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 17}
m_Panes:
- {fileID: 13}
- {fileID: 18}
- {fileID: 17}
- {fileID: 22}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &11
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -265,26 +340,26 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: ProjectBrowser
m_Name: ConsoleWindow
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 567
y: 558
width: 2013
height: 372
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
m_ActualView: {fileID: 19}
height: 381
m_MinSize: {x: 101, y: 121}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 24}
m_Panes:
- {fileID: 19}
- {fileID: 20}
- {fileID: 21}
- {fileID: 22}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &12
- {fileID: 23}
- {fileID: 24}
- {fileID: 25}
- {fileID: 26}
m_Selected: 1
m_LastSelected: 0
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -303,16 +378,50 @@ MonoBehaviour:
y: 0
width: 547
height: 939
m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 23}
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 27}
m_Panes:
- {fileID: 23}
- {fileID: 24}
- {fileID: 25}
- {fileID: 27}
- {fileID: 28}
- {fileID: 29}
m_Selected: 0
m_LastSelected: 1
--- !u!114 &13
--- !u!114 &16
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac9b4e439aace6446a0642ca97e8f43b, type: 3}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 100, y: 100}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Android Logcat
m_Image: {fileID: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 217
y: 112
width: 1328
height: 751
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
--- !u!114 &17
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -335,7 +444,7 @@ MonoBehaviour:
x: 1335
y: 73
width: 676
height: 546
height: 537
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -377,7 +486,7 @@ MonoBehaviour:
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_VSlider: 1
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
@@ -389,28 +498,28 @@ MonoBehaviour:
x: 0
y: 21
width: 676
height: 525
m_Scale: {x: 0.2734375, y: 0.2734375}
m_Translation: {x: 338, y: 262.5}
height: 516
m_Scale: {x: 0.26875, y: 0.26875}
m_Translation: {x: 338, y: 257.99997}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -1236.1143
y: -960
width: 2472.2285
height: 1920
x: -1257.6743
y: -959.9998
width: 2515.3486
height: 1919.9999
m_MinimalGUI: 1
m_defaultScale: 0.2734375
m_LastWindowPixelSize: {x: 676, y: 546}
m_defaultScale: 0.26875
m_LastWindowPixelSize: {x: 676, y: 537}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000001000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
--- !u!114 &14
--- !u!114 &18
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -433,7 +542,7 @@ MonoBehaviour:
x: 0
y: 73
width: 461
height: 546
height: 537
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -447,7 +556,7 @@ MonoBehaviour:
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: 58a40000
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 12fbffff
m_RenameOverlay:
@@ -465,7 +574,7 @@ MonoBehaviour:
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 8}
m_ClientGUIView: {fileID: 11}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
@@ -473,7 +582,7 @@ MonoBehaviour:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &15
--- !u!114 &19
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -496,7 +605,7 @@ MonoBehaviour:
x: 462
y: 73
width: 871
height: 546
height: 537
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1012,7 +1121,7 @@ MonoBehaviour:
m_SceneVisActive: 1
m_LastLockedObject: {fileID: 0}
m_ViewIsLockedToObject: 0
--- !u!114 &16
--- !u!114 &20
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -1046,7 +1155,7 @@ MonoBehaviour:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
--- !u!114 &17
--- !u!114 &21
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4252,7 +4361,7 @@ MonoBehaviour:
}\n}\n\n"
m_AssetMaybeChangedOnDisk: 1
m_AssetMaybeDeleted: 0
--- !u!114 &18
--- !u!114 &22
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4322,7 +4431,7 @@ MonoBehaviour:
m_CurrentEditor: 1
m_LayerEditor:
m_SelectedLayerIndex: 0
--- !u!114 &19
--- !u!114 &23
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4343,9 +4452,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 640
y: 631
width: 2012
height: 351
height: 360
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -4367,7 +4476,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Plugins/Android
- Assets/_MagicCaptainService/Scripts
m_Globs: []
m_OriginalText:
m_ImportLogFlags: 0
@@ -4375,16 +4484,16 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 16
m_LastFolders:
- Assets/Plugins/Android
- Assets/_MagicCaptainService/Scripts
m_LastFoldersGridSize: 16
m_LastProjectPath: F:\source\MagicCaptainService
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 240}
m_SelectedIDs: dca30000
m_LastClickedID: 41948
m_ExpandedIDs: 00000000fca00000fea0000000a1000002a1000004a1000006a1000000ca9a3bffffff7f
scrollPos: {x: 0, y: 0}
m_SelectedIDs: b6a30000
m_LastClickedID: 41910
m_ExpandedIDs: 00000000eea00000f0a00000f2a00000f4a00000f6a00000f8a0000000ca9a3bffffff7f
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -4400,7 +4509,7 @@ MonoBehaviour:
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 11}
m_ClientGUIView: {fileID: 14}
m_SearchString:
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
@@ -4412,7 +4521,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 00000000fca00000fea0000000a1000002a1000004a1000006a10000
m_ExpandedIDs: 00000000eea00000f0a00000f2a00000f4a00000f6a00000f8a00000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -4437,9 +4546,9 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_ListAreaState:
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 1
m_SelectedInstanceIDs: 54510000
m_LastClickedInstanceID: 20820
m_HadKeyboardFocusLastEvent: 0
m_ExpandedInstanceIDs: c623000040c000003ccd00005ccc0000f8cb0000d0cb0000e4cb000098cc000048cc000020cc000084cc0000fccc0000e8cc000034cc000028cd0000d4cc0000accc00003ec70000c8c600003ee1000078e0000002e1000004ef000090ef0000dae00000f6ee000054be0000bebe000048be00000a9500008ec90000b0c6000034d50000d4ab0000d2ab0000c4ab0000f8e2000078b500006aba000016ba000066080100a02b0100a22b010042e30000b8e30000e0e30000c0e40000c4bf0000d2e100000000000016c2000090200100ca8b0100c08b01004c920000
m_RenameOverlay:
m_UserAcceptedRename: 0
@@ -4456,7 +4565,7 @@ MonoBehaviour:
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 1
m_ClientGUIView: {fileID: 11}
m_ClientGUIView: {fileID: 14}
m_CreateAssetUtility:
m_EndAction: {fileID: 0}
m_InstanceID: 0
@@ -4468,7 +4577,7 @@ MonoBehaviour:
m_GridSize: 16
m_SkipHiddenPackages: 0
m_DirectoriesAreaWidth: 338
--- !u!114 &20
--- !u!114 &24
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4489,9 +4598,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 640
y: 631
width: 2012
height: 351
height: 360
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -4502,7 +4611,7 @@ MonoBehaviour:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
--- !u!114 &21
--- !u!114 &25
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4539,7 +4648,7 @@ MonoBehaviour:
m_LockTracker:
m_IsLocked: 0
m_LastSelectedObjectID: 40278
--- !u!114 &22
--- !u!114 &26
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4596,7 +4705,7 @@ MonoBehaviour:
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 0}
m_SearchString:
--- !u!114 &23
--- !u!114 &27
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4643,7 +4752,7 @@ MonoBehaviour:
m_LockTracker:
m_IsLocked: 0
m_PreviewWindow: {fileID: 0}
--- !u!114 &24
--- !u!114 &28
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -4677,7 +4786,7 @@ MonoBehaviour:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
--- !u!114 &25
--- !u!114 &29
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}