mirror的视频比较少,摸索了半天弄了个能同步的demo
1.安装mirror插件
2.创建空物体 添加NetworkManager组件 。需要选择一个预制体
3。创建一个预制体 添加NetworkIdentity组件 ,会自动引用NetworkTransform组件
将这个组件挂到上面的地方
为预制体编写移动脚本
public class Move : NetworkBehaviour {
// Start is called before the first frame update
public int speed = 10;
void Start() {
}
// Update is called once per frame
void Update() {
if (isLocalPlayer) {
transform.Translate(Input.GetAxis("Horizontal") * Time.deltaTime * speed, 0, 0);
transform.Translate(0, Input.GetAxis("Vertical") * Time.deltaTime * speed, 0);
}
}
}
4.编写开启服务的脚本 ,挂到空物体上
public class One : MonoBehaviour {
// Start is called before the first frame update
void Start() {
NetworkManager networkManager = transform.GetComponent<NetworkManager>();
try {
// 谁开谁就是服务端
networkManager.StartServer();
}
catch (Exception e) {
Console.WriteLine(e);
}
networkManager.StartClient();
}
// Update is called once per frame
void Update() {
}
}
- 双开unit3d进行测试
创建双开目录 。你也可以打包自己运行 ,但打包麻烦
aa.bat
@Echo off
MKLINK /J "D:\unity\one_link\Assets" "D:\unity\one\Assets"
MKLINK /J "D:\unity\one_link\ProjectSettings" "D:\unity\one\ProjectSettings"
MKLINK /J "D:\unity\one_link\Library" "D:\unity\one\Library"
if Not "%errorlevel%" == "0" (
Echo 创建 Unity工程连接失败
pause
exit
)
:End
Echo 执行结束
pause
6.启动服务看效果 ,拖动一遍另一边也会动
遗留问题
如何连接外网服务器 ,如果你有资料可以留言