Add the new callbacks to Unity (#3127)

* Add disconnection callback

* Add support for connection failed callback and eliminate the dice interface i

* Update with new callbacks

* minor updates

* update the plugins
This commit is contained in:
2023-12-28 13:28:41 -08:00
committed by GitHub
parent 3f10cc29a4
commit a235544437
10 changed files with 384 additions and 122 deletions
+2 -2
View File
@@ -131,9 +131,9 @@ cc_library(
#
# Plugins for the native code for interacting with GoDice
#
unity_godice_commit = "15280c9ec7d24bd0ed3e8e596dd0145a5be6fed3"
unity_godice_commit = "deaa8659cd4d377dd5fcc27ff45b7fd870bbe092"
unity_godice_sha = "94188a83025710d07c85ced0b78fcb5c4c35d16e02370918e04b89eea6e5c911"
unity_godice_sha = "2f46a7c43a07c809ad2beedd10ebb1a6b0eb3c876e5c3d3539d60142030460eb"
http_archive(
name = "net_eagle0_unity_godice",
@@ -238,7 +238,6 @@
<Compile Include="Assets/Modern UI Pack/Scripts/Window/WindowManager.cs" />
<Compile Include="Assets/Modern UI Pack/Scripts/UI Manager/UIManagerSliderEditor.cs" />
<Compile Include="Assets/Eagle/CommandSelectors/IssueOrdersCommandSelector.cs" />
<Compile Include="Assets/Bluetooth/IDiceInterfaceImports.cs" />
<Compile Include="Assets/Shardok/Grid.cs" />
<Compile Include="Assets/Eagle/CommandSelectors/ArmTroopsCommandSelector.cs" />
<Compile Include="Assets/Eagle/Notifications/ARNNotifications/TruceAcceptedDetailsNotificationGenerator.cs" />
@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using common;
using TMPro;
@@ -19,16 +20,26 @@ public class DiceConfigurationPanelController : MonoBehaviour {
private DieInfo? _onesDieInfo = null;
private List<DieInfo> _knownDice = new List<DieInfo>();
private HashSet<string> _connectingIdentifiers = new HashSet<string>();
void Awake() {
}
public void GetConfiguration(ConfigurationCallback cb) {
_diceInterface = GetComponentInParent<DiceInterface>();
if (_diceInterface == null) {
_diceInterface = GetComponentInParent<DiceInterface>();
}
_diceInterface.deviceFoundCallback = DeviceFoundCallback;
_diceInterface.connectionCallback = ConnectionCallback;
_diceInterface.connectionFailedCallback = ConnectionFailedCallback;
_diceInterface.disconnectionCallback = DisconnectionCallback;
_diceInterface.listenerStoppedCallback = ListenerStoppedCallback;
_diceInterface.colorCallback = ReceiveColorCallback;
_diceInterface.logger = log => {
Debug.Log(log);
};
_diceInterface.StartListening();
_configurationCallback = cb;
@@ -38,8 +49,6 @@ public class DiceConfigurationPanelController : MonoBehaviour {
gameObject.SetActive(true);
}
void Awake() {}
void Start() {}
public void RowClicked(int rowIndex) {
@@ -48,6 +57,8 @@ public class DiceConfigurationPanelController : MonoBehaviour {
_knownDice.RemoveAt(rowIndex);
SetUpTable();
} else {
_diceInterface.StopListening();
_onesDieInfo = _knownDice[rowIndex];
_knownDice.RemoveAt(rowIndex);
_knownDice.ForEach(dieInfo => _diceInterface.Disconnect(dieInfo.identifier));
@@ -67,13 +78,12 @@ public class DiceConfigurationPanelController : MonoBehaviour {
private void OnEnable() {}
private void OnDisable() {
// _diceInterface.StopListening();
//
diceRollGroup.RowCount = 0;
}
void ListenerStoppedCallback() {}
void ListenerStoppedCallback() {
Debug.Log("Listener stopped!");
}
void SetUpTable() {
diceRollGroup.RowCount = _knownDice.Count;
@@ -112,13 +122,12 @@ public class DiceConfigurationPanelController : MonoBehaviour {
void DeviceFoundCallback(string identifier) {
MainQueue.Q.Enqueue(() => {
if (_tensDieInfo != null && _tensDieInfo.Value.identifier.Equals(identifier)) {
return;
}
if (_onesDieInfo != null && _onesDieInfo.Value.identifier.Equals(identifier)) {
if (_connectingIdentifiers.Contains(identifier)) {
return;
}
_connectingIdentifiers.Add(identifier);
var existingIndex =
_knownDice.FindIndex(dieInfo => dieInfo.identifier.Equals(identifier));
if (existingIndex >= 0) {
@@ -136,6 +145,8 @@ public class DiceConfigurationPanelController : MonoBehaviour {
void ConnectionCallback(string identifier, string deviceName) {
MainQueue.Q.Enqueue(() => {
_connectingIdentifiers.Remove(identifier);
if (_tensDieInfo != null && _tensDieInfo.Value.identifier.Equals(identifier)) {
return;
}
@@ -159,22 +170,47 @@ public class DiceConfigurationPanelController : MonoBehaviour {
});
}
void DisconnectionCallback(string identifier) {
void ConnectionFailedCallback(string identifier) {
MainQueue.Q.Enqueue(() => {
_connectingIdentifiers.Remove(identifier);
var existingIndex =
_knownDice.FindIndex(dieInfo => dieInfo.identifier.Equals(identifier));
_knownDice.FindIndex(dieInfo => dieInfo.identifier.Equals(identifier));
if (existingIndex >= 0) {
_knownDice.RemoveAt(existingIndex);
SetUpTable();
}
});
}
void DisconnectionCallback(string identifier) {
MainQueue.Q.Enqueue(() => {
_connectingIdentifiers.Remove(identifier);
if (_tensDieInfo is { } tensInfo &&
tensInfo.identifier.Equals(identifier)) {
_tensDieInfo = null;
_onesDieInfo = null;
} else if (_onesDieInfo is { } onesInfo &&
onesInfo.identifier.Equals(identifier)) {
_onesDieInfo = null;
}
var existingIndex =
_knownDice.FindIndex(dieInfo => dieInfo.identifier.Equals(identifier));
if (existingIndex >= 0) {
_knownDice.RemoveAt(existingIndex);
}
SetUpTable();
_diceInterface.Connect(identifier);
});
}
public void DismissButtonClicked() {
GetComponentInParent<Canvas>().gameObject.SetActive(false);
gameObject.SetActive(false);
_configurationCallback(null, null);
}
@@ -16,24 +16,28 @@ public class DiceInterface : MonoBehaviour {
public static readonly byte GetColor = 23;
}
readonly IDiceInterfaceImports _diceInterfaceImports = new NativeDiceInterfaceImports();
readonly NativeDiceInterfaceImports _diceInterfaceImports = new();
private static DiceInterface _singleton = null;
private static Dictionary<string, string> _deviceNames = new Dictionary<string, string>();
public delegate void DeviceFoundCallback(string identifier);
public delegate void ConnectionCallback(string identifier, string deviceName);
public delegate void ConnectionFailedCallback(string identifier);
public delegate void DisconnectionCallback(string identifier);
public delegate void ListenerStoppedCallback();
public delegate void RollCallback(string identifier, sbyte x, sbyte y, sbyte z);
public delegate void ColorCallback(string identifier, DieColor color);
public delegate void LoggerCallback(string log);
public DeviceFoundCallback deviceFoundCallback = null;
public ConnectionCallback connectionCallback = null;
public ConnectionFailedCallback connectionFailedCallback = null;
public DisconnectionCallback disconnectionCallback = null;
public ListenerStoppedCallback listenerStoppedCallback = null;
public RollCallback rollCallback = null;
public ColorCallback colorCallback = null;
public LoggerCallback logger = null;
public void StartListening() { _diceInterfaceImports.StartListening(); }
@@ -74,11 +78,14 @@ public class DiceInterface : MonoBehaviour {
_singleton = this;
_diceInterfaceImports.SetDeviceConnectedCallback(DeviceConnectedDelegateMessageReceived);
_diceInterfaceImports.SetDeviceConnectionFailedCallback(
DeviceConnectionFailedDelegateMessageReceived);
_diceInterfaceImports.SetDeviceDisconnectedCallback(
DeviceDisconnectedDelegateMessageReceived);
_diceInterfaceImports.SetDeviceFoundCallback(DeviceFoundDelegateMessageReceived);
_diceInterfaceImports.SetDataCallback(DataDelegateMessageReceived);
_diceInterfaceImports.SetListenerStoppedCallback(ListenerStoppedDelegateMessageReceived);
_diceInterfaceImports.SetLoggerCallback(LoggerDelegateMessageReceived);
}
// Update is called once per frame
@@ -116,6 +123,13 @@ public class DiceInterface : MonoBehaviour {
}
}
private static void DeviceConnectionFailedDelegateMessageReceived(
string identifier) {
if (_singleton != null && _singleton.connectionFailedCallback != null) {
_singleton.connectionFailedCallback(identifier);
}
}
private static void DeviceDisconnectedDelegateMessageReceived(string identifier) {
if (_singleton != null && _singleton.disconnectionCallback != null) {
_singleton.disconnectionCallback(identifier);
@@ -175,4 +189,10 @@ public class DiceInterface : MonoBehaviour {
_singleton.listenerStoppedCallback();
}
}
private static void LoggerDelegateMessageReceived(string log) {
if (_singleton != null && _singleton.logger != null) {
_singleton.logger(log);
}
}
}
@@ -12,11 +12,13 @@ namespace UnityGoDiceInterface {
public string identifier;
public string deviceName;
public DieColor color;
public bool connected;
public DieInfo(string identifier, string deviceName, DieColor color) {
this.identifier = identifier;
this.deviceName = deviceName;
this.color = color;
this.connected = false;
}
}
}
@@ -1,46 +0,0 @@
using System.Collections.Generic;
namespace UnityGoDiceInterface {
public interface IDiceInterfaceImports {
delegate void DeviceFoundDelegateMessage(string identifier, string name);
delegate void DataDelegateMessage(string identifier, List<byte> bytes);
delegate void DeviceConnectedDelegateMessage(string identifier);
delegate void DeviceDisconnectedDelegateMessage(string identifier);
delegate void ListenerStoppedDelegateMessage();
protected static DeviceFoundDelegateMessage deviceFoundDelegate;
protected static DataDelegateMessage dataDelegate;
protected static DeviceConnectedDelegateMessage deviceConnectedDelegate;
protected static DeviceDisconnectedDelegateMessage deviceDisconnectedDelegate;
protected static ListenerStoppedDelegateMessage listenerStoppedDelegate;
public void StartListening();
public void StopListening();
public void Connect(string identifier);
public void Disconnect(string identifier);
public void Send(string identifier, List<byte> bytes);
public void SetDeviceFoundCallback(DeviceFoundDelegateMessage deviceFound) {
deviceFoundDelegate = deviceFound;
}
public void SetDataCallback(DataDelegateMessage data) { dataDelegate = data; }
public void SetDeviceConnectedCallback(DeviceConnectedDelegateMessage deviceConnected) {
deviceConnectedDelegate = deviceConnected;
}
public void SetDeviceDisconnectedCallback(
DeviceDisconnectedDelegateMessage deviceDisconnected) {
deviceDisconnectedDelegate = deviceDisconnected;
}
public void SetListenerStoppedCallback(ListenerStoppedDelegateMessage listenerStopped) {
listenerStoppedDelegate = listenerStopped;
}
}
}
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 883bf622d61244e079aa51acadeb756e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -4,7 +4,25 @@ using System.Runtime.InteropServices;
using AOT;
namespace UnityGoDiceInterface {
public class NativeDiceInterfaceImports : IDiceInterfaceImports {
public class NativeDiceInterfaceImports {
public delegate void DeviceFoundDelegateMessage(string identifier, string name);
public delegate void DataDelegateMessage(string identifier, List<byte> bytes);
public delegate void DeviceConnectedDelegateMessage(string identifier);
public delegate void DeviceConnectionFailedDelegateMessage(
string identifier);
public delegate void DeviceDisconnectedDelegateMessage(string identifier);
public delegate void ListenerStoppedDelegateMessage();
public delegate void LoggerDelegateMessage(string log);
private static DeviceFoundDelegateMessage deviceFoundDelegate;
private static DataDelegateMessage dataDelegate;
private static DeviceConnectedDelegateMessage deviceConnectedDelegate;
private static DeviceConnectionFailedDelegateMessage
deviceConnectionFailedDelegate;
private static DeviceDisconnectedDelegateMessage deviceDisconnectedDelegate;
private static ListenerStoppedDelegateMessage listenerStoppedDelegate;
private static LoggerDelegateMessage loggerDelegateMessage;
#if UNITY_IOS
private const string BundleName = "__Internal";
#elif UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
@@ -17,8 +35,10 @@ namespace UnityGoDiceInterface {
private delegate void
MonoDataDelegateMessage(string identifier, UInt32 byteCount, IntPtr bytePtr);
private delegate void MonoDeviceConnectedDelegateMessage(string identifier);
private delegate void MonoDeviceConnectionFailedDelegateMessage(string identifier);
private delegate void MonoDeviceDisconnectedDelegateMessage(string identifier);
private delegate void MonoListenerStoppedDelegateMessage();
private delegate void MonoLoggerDelegateMessage(string log);
[DllImport(dllName: BundleName, EntryPoint = "godice_start_listening")]
private static extern void _NativeBridgeStartListening();
@@ -31,6 +51,7 @@ namespace UnityGoDiceInterface {
MonoDeviceFoundDelegateMessage deviceFoundDelegate,
MonoDataDelegateMessage dataDelegate,
MonoDeviceConnectedDelegateMessage deviceConnectedDelegate,
MonoDeviceConnectionFailedDelegateMessage deviceConnectionFailedDelegateMessage,
MonoDeviceDisconnectedDelegateMessage deviceDisconnectedDelegate,
MonoListenerStoppedDelegateMessage listenerStoppedDelegate);
@@ -43,6 +64,9 @@ namespace UnityGoDiceInterface {
[DllImport(dllName: BundleName, EntryPoint = "godice_send")]
private static extern void
_NativeBridgeSend(string identifier, UInt32 byteCount, IntPtr bytePtr);
[DllImport(dllName: BundleName, EntryPoint = "godice_set_logger")]
private static extern void _NativeBridgeSetLogger(MonoLoggerDelegateMessage loggerDelegate);
private static List<byte> BytesFromRawPointer(UInt32 byteCount, IntPtr bytes) {
byte[] array = new byte[byteCount];
@@ -55,16 +79,16 @@ namespace UnityGoDiceInterface {
*/
[MonoPInvokeCallback(typeof(MonoDataDelegateMessage))]
private static void MonoDeviceFoundMessageReceived(string identifier, string name) {
if (IDiceInterfaceImports.deviceFoundDelegate != null) {
IDiceInterfaceImports.deviceFoundDelegate(identifier, name);
if (deviceFoundDelegate != null) {
deviceFoundDelegate(identifier, name);
}
}
[MonoPInvokeCallback(typeof(MonoDataDelegateMessage))]
private static void
MonoDataMessageReceived(string identifier, UInt32 byteCount, IntPtr bytePtr) {
if (IDiceInterfaceImports.dataDelegate != null) {
IDiceInterfaceImports.dataDelegate(
if (dataDelegate != null) {
dataDelegate(
identifier,
BytesFromRawPointer(byteCount, bytePtr));
}
@@ -72,22 +96,36 @@ namespace UnityGoDiceInterface {
[MonoPInvokeCallback(typeof(MonoDeviceConnectedDelegateMessage))]
private static void MonoDeviceConnected(string identifier) {
if (IDiceInterfaceImports.deviceConnectedDelegate != null) {
IDiceInterfaceImports.deviceConnectedDelegate(identifier);
if (deviceConnectedDelegate != null) {
deviceConnectedDelegate(identifier);
}
}
[MonoPInvokeCallback(typeof(MonoDeviceConnectionFailedDelegateMessage))]
private static void MonoDeviceConnectionFailed(string identifier) {
if (deviceConnectionFailedDelegate != null) {
deviceConnectionFailedDelegate(identifier);
}
}
[MonoPInvokeCallback(typeof(MonoDeviceDisconnectedDelegateMessage))]
private static void MonoDeviceDisconnected(string identifier) {
if (IDiceInterfaceImports.deviceDisconnectedDelegate != null) {
IDiceInterfaceImports.deviceDisconnectedDelegate(identifier);
if (deviceDisconnectedDelegate != null) {
deviceDisconnectedDelegate(identifier);
}
}
[MonoPInvokeCallback(typeof(MonoDeviceDisconnectedDelegateMessage))]
[MonoPInvokeCallback(typeof(MonoListenerStoppedDelegateMessage))]
private static void MonoListenerStopped() {
if (IDiceInterfaceImports.listenerStoppedDelegate != null) {
IDiceInterfaceImports.listenerStoppedDelegate();
if (listenerStoppedDelegate != null) {
listenerStoppedDelegate();
}
}
[MonoPInvokeCallback(typeof(MonoLoggerDelegateMessage))]
private static void MonoLogger(string log) {
if (loggerDelegateMessage != null) {
loggerDelegateMessage(log);
}
}
@@ -96,8 +134,10 @@ namespace UnityGoDiceInterface {
MonoDeviceFoundMessageReceived,
MonoDataMessageReceived,
MonoDeviceConnected,
MonoDeviceConnectionFailed,
MonoDeviceDisconnected,
MonoListenerStopped);
_NativeBridgeSetLogger(MonoLogger);
_NativeBridgeStartListening();
}
@@ -114,5 +154,33 @@ namespace UnityGoDiceInterface {
_NativeBridgeSend(identifier, (uint)data.Count, pointer);
pinnedArray.Free();
}
public void SetDeviceFoundCallback(DeviceFoundDelegateMessage deviceFound) {
deviceFoundDelegate = deviceFound;
}
public void SetDataCallback(DataDelegateMessage data) { dataDelegate = data; }
public void SetDeviceConnectedCallback(DeviceConnectedDelegateMessage deviceConnected) {
deviceConnectedDelegate = deviceConnected;
}
public void SetDeviceConnectionFailedCallback(
DeviceConnectionFailedDelegateMessage deviceConnectionFailed) {
deviceConnectionFailedDelegate = deviceConnectionFailed;
}
public void SetDeviceDisconnectedCallback(
DeviceDisconnectedDelegateMessage deviceDisconnected) {
deviceDisconnectedDelegate = deviceDisconnected;
}
public void SetListenerStoppedCallback(ListenerStoppedDelegateMessage listenerStopped) {
listenerStoppedDelegate = listenerStopped;
}
public void SetLoggerCallback(LoggerDelegateMessage logger) {
loggerDelegateMessage = logger;
}
}
}
@@ -12,13 +12,16 @@ public class RollPanelController : MonoBehaviour {
public TMP_Text tensResultLabel;
public TMP_Text onesResultLabel;
public TMP_Text reconnectionLabel;
public delegate void RollResultCallback(int? result);
private RollResultCallback _rollResultCallback;
private RollType _rollType;
public void GetRoll(RollType rollType, RollResultCallback cb) {
_diceInterface = GetComponentInParent<DiceInterface>();
if (_diceInterface == null) { _diceInterface = GetComponentInParent<DiceInterface>(); }
_onesResult = null;
_tensResult = null;
_result = null;
@@ -29,17 +32,20 @@ public class RollPanelController : MonoBehaviour {
_rollType = rollType;
SetResultLabels();
SetTensAlpha(0.25f);
SetOnesAlpha(0.25f);
if (string.IsNullOrEmpty(_tensDieInfo.identifier) ||
string.IsNullOrEmpty(_tensDieInfo.identifier)) {
string.IsNullOrEmpty(_onesDieInfo.identifier)) {
GetConfiguration();
} else {
_diceInterface.connectionCallback = ConnectionCallback;
_diceInterface.rollCallback = RollCallback;
_diceInterface.logger = LogFromNative;
_diceInterface.StartListening();
// _diceInterface.StartListening();
_tensDieInfo.connected = false;
_onesDieInfo.connected = false;
SetAlphas();
_diceInterface.Connect(_tensDieInfo.identifier);
_diceInterface.Connect(_onesDieInfo.identifier);
@@ -57,9 +63,10 @@ public class RollPanelController : MonoBehaviour {
public enum RollType { StandardD100, OpenEnded, OpenEndedHigh, OpenEndedLow }
private void SetTensAlpha(float alpha) { tensResultLabel.alpha = alpha; }
private void SetOnesAlpha(float alpha) { onesResultLabel.alpha = alpha; }
private void SetAlphas() {
tensResultLabel.alpha = _tensDieInfo.connected ? 1.0f : 0.25f;
onesResultLabel.alpha = _onesDieInfo.connected ? 1.0f : 0.25f;
}
void OnEnable() {}
@@ -80,16 +87,23 @@ public class RollPanelController : MonoBehaviour {
if (tensOpt is DieInfo tens && onesOpt is DieInfo ones) {
gameObject.SetActive(true);
_diceInterface.connectionCallback = ConnectionCallback;
_diceInterface.connectionFailedCallback = ConnectionFailedCallback;
_diceInterface.disconnectionCallback = DisconnectionCallback;
_diceInterface.listenerStoppedCallback = ListenerStoppedCallback;
_diceInterface.rollCallback = RollCallback;
_tensDieInfo = tens;
_onesDieInfo = ones;
_tensDieInfo.connected = false;
_onesDieInfo.connected = false;
reconnectionLabel.gameObject.SetActive(false);
_diceInterface.Connect(_tensDieInfo.identifier);
_diceInterface.Connect(_onesDieInfo.identifier);
tensResultLabel.text = "?";
onesResultLabel.text = "?";
SetAlphas();
SetResultLabels();
tensResultLabel.color = UnityDieColors.ColorFromDieColor(_tensDieInfo.color);
onesResultLabel.color = UnityDieColors.ColorFromDieColor(_onesDieInfo.color);
@@ -103,13 +117,44 @@ public class RollPanelController : MonoBehaviour {
void ConnectionCallback(string identifier, string deviceName) {
MainQueue.Q.Enqueue(() => {
if (identifier == _tensDieInfo.identifier) {
SetTensAlpha(1.0f);
_tensDieInfo.connected = true;
} else if (identifier == _onesDieInfo.identifier) {
SetOnesAlpha(1.0f);
_onesDieInfo.connected = true;
}
SetAlphas();
if (_tensDieInfo.connected && _onesDieInfo.connected) {
reconnectionLabel.gameObject.SetActive(false);
_diceInterface.StopListening();
}
});
}
void ConnectionFailedCallback(string identifier) {
MainQueue.Q.Enqueue(() => {
reconnectionLabel.gameObject.SetActive(true);
_diceInterface.StartListening();
});
}
void DisconnectionCallback(string identifier) {
MainQueue.Q.Enqueue(() => {
if (identifier == _tensDieInfo.identifier) {
_tensDieInfo.connected = false;
} else if (identifier == _onesDieInfo.identifier) {
_onesDieInfo.connected = false;
}
SetAlphas();
_diceInterface.Connect(identifier);
});
}
void ListenerStoppedCallback() {
MainQueue.Q.Enqueue(() => { reconnectionLabel.text = "Unable to connect."; });
}
void SetResultLabels() {
if (_tensResult is int tr) {
tensResultLabel.text = tr.ToString();
@@ -142,9 +187,6 @@ public class RollPanelController : MonoBehaviour {
void CheckCompletion() {
if (_onesResult is int ones && _tensResult is int tens) {
// FIXME: open ended rolls
_diceInterface.Disconnect(_tensDieInfo.identifier);
_diceInterface.Disconnect(_onesDieInfo.identifier);
_result = tens * 10 + ones;
skipContinueButtonText.text = "Dismiss";
@@ -154,6 +196,9 @@ public class RollPanelController : MonoBehaviour {
_rollResultCallback(_result);
_diceInterface.StopListening();
_diceInterface.Disconnect(_tensDieInfo.identifier);
_diceInterface.Disconnect(_onesDieInfo.identifier);
}
}));
}
@@ -163,4 +208,8 @@ public class RollPanelController : MonoBehaviour {
yield return new WaitForSeconds(delay);
action();
}
void LogFromNative(string log) {
MainQueue.Q.Enqueue(() => { Debug.Log(log); });
}
}
@@ -6971,6 +6971,141 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 28}
m_Pivot: {x: 0.5, y: 1}
--- !u!1 &92970743
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 92970744}
- component: {fileID: 92970746}
- component: {fileID: 92970745}
m_Layer: 0
m_Name: Reconnection
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &92970744
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 92970743}
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: 393513301}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -50}
m_SizeDelta: {x: 300, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &92970745
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 92970743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Looking for dice...
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: ec2736df0379a45bfa7349b652fd07d6, type: 2}
m_sharedMaterial: {fileID: 1026247389042360723, guid: ec2736df0379a45bfa7349b652fd07d6,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4278190335
m_fontColor: {r: 1, g: 0, b: 0, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 18
m_fontSizeBase: 18
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &92970746
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 92970743}
m_CullTransparentMesh: 1
--- !u!1 &96392114
GameObject:
m_ObjectHideFlags: 0
@@ -17215,8 +17350,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 34.00125, y: -119}
m_SizeDelta: {x: 68.0025, y: 0}
m_AnchoredPosition: {x: 34.3275, y: -119}
m_SizeDelta: {x: 68.655, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &181074080
MonoBehaviour:
@@ -33990,6 +34125,11 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1837103631940551462, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: nameLabel
value:
objectReference: {fileID: 0}
- target: {fileID: 2154262805260441194, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_Name
@@ -34123,7 +34263,7 @@ PrefabInstance:
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_SizeDelta.x
value: 113.2025
value: 111.345
objectReference: {fileID: 0}
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
@@ -34133,12 +34273,12 @@ PrefabInstance:
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 56.60125
value: 55.6725
objectReference: {fileID: 0}
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -60.015
value: -40.005
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
@@ -34173,12 +34313,12 @@ PrefabInstance:
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_SizeDelta.x
value: 113.2025
value: 111.345
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_SizeDelta.y
value: 100.020004
value: 80.01
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
@@ -34218,7 +34358,7 @@ PrefabInstance:
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 235.39627
value: 235.6725
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
@@ -35498,6 +35638,7 @@ RectTransform:
- {fileID: 877110351}
- {fileID: 464027607}
- {fileID: 1341790643}
- {fileID: 92970744}
m_Father: {fileID: 1168220719}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@@ -35557,10 +35698,9 @@ MonoBehaviour:
m_EditorClassIdentifier:
diceConfigurationPanelController: {fileID: 1532766423}
skipContinueButtonText: {fileID: 1108793851}
tensHeaderLabel: {fileID: 0}
onesHeaderLabel: {fileID: 0}
tensResultLabel: {fileID: 1954563315}
onesResultLabel: {fileID: 373764329}
reconnectionLabel: {fileID: 92970745}
--- !u!1 &393951106
GameObject:
m_ObjectHideFlags: 0
@@ -134966,8 +135106,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 325.99875, y: -119}
m_SizeDelta: {x: 68.0025, y: 0}
m_AnchoredPosition: {x: 325.6725, y: -119}
m_SizeDelta: {x: 68.655, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1296417815
MonoBehaviour:
@@ -196298,6 +196438,11 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1837103631940551462, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: nameLabel
value:
objectReference: {fileID: 0}
- target: {fileID: 2154262805260441194, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_Name
@@ -196431,7 +196576,7 @@ PrefabInstance:
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_SizeDelta.x
value: 110.7925
value: 111.345
objectReference: {fileID: 0}
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
@@ -196441,12 +196586,12 @@ PrefabInstance:
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 55.39625
value: 55.6725
objectReference: {fileID: 0}
- target: {fileID: 6185631331142294830, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -60.015
value: -40.005
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
@@ -196481,12 +196626,12 @@ PrefabInstance:
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_SizeDelta.x
value: 110.7925
value: 111.345
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_SizeDelta.y
value: 100.020004
value: 80.01
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
@@ -196526,7 +196671,7 @@ PrefabInstance:
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 123.39876
value: 124.3275
objectReference: {fileID: 0}
- target: {fileID: 7181142147825592926, guid: 9acf3ba64a8c04e6083aae699248b0c4,
type: 3}