NetworkManagerHUD
#if ENABLE_UNET
namespace UnityEngine.Networking
{
[AddComponentMenu("Network/NetworkManagerHUD")]
[RequireComponent(typeof(NetworkManager))]
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public class NetworkManagerHUD : MonoBehaviour
{
public NetworkManager manager;
[SerializeField] public bool showGUI = true;
[SerializeField] public int offsetX;
[SerializeField] public int offsetY;
// Runtime variable
bool showServer = false;
void Awake()
{
manager = GetComponent<NetworkManager>();
}
void Update()
{
if (!showGUI)
return;
if (!NetworkClient.active && !NetworkServer.active && manager.matchMaker == null)
{
if (Input.GetKeyDown(KeyCode.S))
{
manager.StartServer();
}
if (Input.GetKeyDown(KeyCode.H))
{
manager.StartHost();
}
if (Input.GetKeyDown(KeyCode.C))
{
manager.StartClient();
}
}
if (NetworkServer.active && NetworkClient.active)
{
if (Input.GetKeyDown(KeyCode.X))
{
manager.StopHost();
}
}
}
void OnGUI()
{
if (!showGUI)
return;
int xpos = 10 + offsetX;
int ypos = 40 + offsetY;
int spacing = 24;
if (!NetworkClient.active && !NetworkServer.active && manager.matchMaker == null)
{
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "LAN Host(H)"))
{
manager.StartHost();
}
ypos += spacing;
if (GUI.Button(new Rect(xpos, ypos, 105, 20), "LAN Client(C)"))
{
manager.StartClient();
}
manager.networkAddress = GUI.TextField(new Rect(xpos + 100, ypos, 95, 20), manager.networkAddress);
ypos += spacing;
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "LAN Server Only(S)"))
{
manager.StartServer();
}
ypos += spacing;
}
else
{
if (NetworkServer.active)
{
GUI.Label(new Rect(xpos, ypos, 300, 20), "Server: port=" + manager.networkPort);
ypos += spacing;
}
if (NetworkClient.active)
{
GUI.Label(new Rect(xpos, ypos, 300, 20), "Client: address=" + manager.networkAddress + " port=" + manager.networkPort);
ypos += spacing;
}
}
if (NetworkClient.active && !ClientScene.ready)
{
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Client Ready"))
{
ClientScene.Ready(manager.client.connection);
if (ClientScene.localPlayers.Count == 0)
{
ClientScene.AddPlayer(0);
}
}
ypos += spacing;
}
if (NetworkServer.active || NetworkClient.active)
{
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Stop (X)"))
{
manager.StopHost();
}
ypos += spacing;
}
if (!NetworkServer.active && !NetworkClient.active)
{
ypos += 10;
if (manager.matchMaker == null)
{
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Enable Match Maker (M)"))
{
manager.StartMatchMaker();
}
ypos += spacing;
}
else
{
if (manager.matchInfo == null)
{
if (manager.matches == null)
{
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Create Internet Match"))
{
manager.matchMaker.CreateMatch(manager.matchName, manager.matchSize, true, "", manager.OnMatchCreate);
}
ypos += spacing;
GUI.Label(new Rect(xpos, ypos, 100, 20), "Room Name:");
manager.matchName = GUI.TextField(new Rect(xpos+100, ypos, 100, 20), manager.matchName);
ypos += spacing;
ypos += 10;
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Find Internet Match"))
{
manager.matchMaker.ListMatches(0,20, "", manager.OnMatchList);
}
ypos += spacing;
}
else
{
foreach (var match in manager.matches)
{
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Join Match:" + match.name))
{
manager.matchName = match.name;
manager.matchSize = (uint)match.currentSize;
manager.matchMaker.JoinMatch(match.networkId, "", manager.OnMatchJoined);
}
ypos += spacing;
}
}
}
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Change MM server"))
{
showServer = !showServer;
}
if (showServer)
{
ypos += spacing;
if (GUI.Button(new Rect(xpos, ypos, 100, 20), "Local"))
{
manager.SetMatchHost("localhost", 1337, false);
showServer = false;
}
ypos += spacing;
if (GUI.Button(new Rect(xpos, ypos, 100, 20), "Internet"))
{
manager.SetMatchHost("mm.unet.unity3d.com", 443, true);
showServer = false;
}
ypos += spacing;
if (GUI.Button(new Rect(xpos, ypos, 100, 20), "Staging"))
{
manager.SetMatchHost("staging-mm.unet.unity3d.com", 443, true);
showServer = false;
}
}
ypos += spacing;
GUI.Label(new Rect(xpos, ypos, 300, 20), "MM Uri: " + manager.matchMaker.baseUri);
ypos += spacing;
if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Disable Match Maker"))
{
manager.StopMatchMaker();
}
ypos += spacing;
}
}
}
}
};
#endif //ENABLE_UNET
Tango unity-prefab-motion-tracking#create_a_new_project_in_unity
Build Native Tango Apps – Check for Similar Behavior
Create Duplicate scene – Pare down App to min version – esp UI – See if that helps.
This was a common error when stopping an OpenGL-ES app on Intel x86 AVD (every launch crashes at onStop()). Here's a quick solution (worked fine for JPCT-AE Engine):
- Open AndroidManifest.xml, add android:allowClearUserData="true" tag to the application node.
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:allowClearUserData="true" >
May be useful for some users.
E/WifiController( 894): Illegal lock 2 E/libgps ( 894): HandleGpsExtensionMessage: The handler for GPSE_MSG is not assigned E/libgps ( 894): HandleGpsExtensionMessage: The handler for GPSE_MSG is not assigned E/libgps ( 894): HandleGpsExtensionMessage: The handler for GPSE_MSG is not assigned E/DataBuffer( 4145): Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: com.google.android.gms.common.data.DataHolder@6629f5f8) E/DataBuffer( 4145): Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: com.google.android.gms.common.data.DataHolder@66399270) E/DataBuffer( 4145): Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: com.google.android.gms.common.data.DataHolder@66111788) E/DataBuffer( 4145): Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: com.google.android.gms.common.data.DataHolder@66464228) E/DataBuffer( 4145): Internal data leak within a DataBuffer object detected! Be sure to explicitly call release() on all DataBuffer extending objects when you are done with them. (internal object: com.google.android.gms.common.data.DataHolder@663e9578) E/libgps ( 894): HandleGpsExtensionMessage: The handler for GPSE_MSG is not assigned F/libc (12039): Fatal signal 11 (SIGSEGV) at 0x00000803 (code=1), thread 12055 (Binder_1) E/InputDispatcher( 894): channel '656336e8 com.Argos.SlerpSperg/com.google.unity.GoogleUnityActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
adb logcat > logfile.txt adb logcat *:E > logfile.txt
“adb logcat -v” Command – Log Format Control
enum and [Flags]


Android Studio – Download Page
https://youtu.be/gMlBR7nKhJU



