【发布时间】:2020-11-10 05:12:35
【问题描述】:
我对 Unity 比较陌生,目前正在尝试在 Hololens 上构建一个多用户应用程序。目前,我只是想让两个 Hololens 使用 Unet 通过 LAN 连接。当我使用我的一个 Hololens 来托管服务器时,我的笔记本电脑可以在 Unity 编辑器的播放模式下连接到它。但是,当我尝试使用我的其他 Hololens 连接到它时,它不起作用,我不知道为什么。还有其他人有这个问题吗?如果是这样,你如何解决它?
提前致谢。
编辑:一些代码
这是网络管理器的代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using System;
public class NetworkManager_Custom : NetworkManager
{
public void StartupHost()
{
setPort();
NetworkManager.singleton.StartHost();
}
public void JoinGame()
{
SetIpAddress();
setPort();
NetworkManager.singleton.StartClient();
}
private void SetIpAddress()
{
string Address = "192.168.2.80";
NetworkManager.singleton.networkAddress = Address;
}
private void setPort()
{
NetworkManager.singleton.networkPort = 9001;
}
}
这是启动服务器按钮的代码
using HoloToolkit.Unity.InputModule;
using UnityEngine;
using UnityEngine.Networking;
public class ok : NetworkBehaviour, IFocusable, IInputClickHandler
{
bool hasFocus;
public NetworkManager_Custom manager;
public void OnFocusEnter()
{
hasFocus = true;
}
public void OnFocusExit()
{
hasFocus = false;
}
public void OnInputClicked(InputClickedEventData eventData)
{
manager.StartupHost();
}
}
这是作为客户端加入服务器的代码
using HoloToolkit.Unity.InputModule;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.NetworkSystem;
public class aegf : NetworkBehaviour, IFocusable, IInputClickHandler
{
bool hasFocus;
public NetworkManager_Custom manager;
public void OnFocusEnter()
{
hasFocus = true;
}
public void OnFocusExit()
{
hasFocus = false;
}
public void OnInputClicked(InputClickedEventData eventData)
{
manager.JoinGame();
}
}
【问题讨论】:
-
这个问题可能是由各种不同的原因引起的。您需要先排查两个 HoloLens 之间的网络连接问题,最好添加一些代码来说明问题。
-
此外,UNet 已被弃用,将来会从 Unity 中移除,因此目前不推荐使用它:UNet Deprecation FAQ。因此,PUN 是在 HoloLens 上创建共享体验的更好选择,微软发布了关于如何创建 PUN 应用的分步教程:Setting up Photon Unity Networking
-
感谢您的回复,我添加了我使用的代码。我现在将尝试 PUN,虽然该指南似乎用于 Hololens2,而我正在使用 Hololens1。
标签: unity3d hololens unity3d-unet