大家好!
我对Unity比较陌生,目前正在使用UNET解决新游戏项目。我已经坚持了几天这个问题:如何在Unity中同步现有的(未生成的)场景对象?
我有一个名为“背景”的对象 - 它是一个精灵。当服务器加载映射时,它会更改背景的变换比例。我想要做的就是将它与新连接的客户端同步。
这里的文档说如果对象具有NetworkIndentity和NetworkTransform组件,它应该自动完成。但它对我不起作用! https://docs.unity3d.com/Manual/UNetSceneObjects.html
这是简化的项目: http://prntscr.com/csxoqd 我有精灵40; 40。 然后在OnServerStart中我将它更改为100; 100 - 在主机或服务器上只有它工作得很好!
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class NewBehaviourScript : NetworkBehaviour
{
// Use this for initialization
public override void OnStartServer()
{
this.transform.localScale = new Vector3(100, 100, 1);
}
// Update is called once per frame
void Update () {
}
}
但在客户端,任何事情都会发生。我尝试在此方法中添加NetworkServer.SpawnObjects();
。不起作用。
有什么建议吗?
答案 0 :(得分:0)
我担心UNET仍然不支持transform.scale
同步。它不是一年前,它现在仍然是:(
但幸运的是,您可以使用[SyncVar attribute]解决此问题。