c# - 同步从 Unet/Unity 5 中的另一个可交互对象更改的非玩家对象转换?

标签 c# unity3d unity-networking unity3d-unet

我的游戏中有一个立方体,它在观察另一个物体时在其初始状态和更大的状态之间切换。这在单人游戏中运行良好,但当我将它带到多人游戏时,我找不到正确的选项组合来让它在两个客户端(一个是主机)上更新。每个玩家仍然可以激活自己的立方体,但不会出现在另一台机器上。该脚本位于具有网络身份的按钮上,它访问也具有网络身份和网络转换的多维数据集。

单机代码引用:

void Update () {

    if (Camera.main != null) {
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit)) {
            if (hit.collider.gameObject == gameObject && hit.distance < 5) {
                PlatformScale();
            } else {
                PlatformReset();
            }
        }
    }
}

void PlatformScale () {
    platform.transform.localScale = Vector3.Lerp (platform.transform.localScale, platformScale, 3f * Time.deltaTime);
}
void PlatformReset () {
    platform.transform.localScale = Vector3.Lerp (platform.transform.localScale, platformStartingScale, 3f * Time.deltaTime);
}

最佳答案

所以经过大量搜索,我发现你无法在 Unet 中同步 localScale,这是一个突出的错误。我更改了我的代码以使用位置而不是本地比例。感谢所有帮助。

关于c# - 同步从 Unet/Unity 5 中的另一个可交互对象更改的非玩家对象转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38812709/

相关文章:

c# - ASP.NET Core 上 CloudTableClient 类的最佳 DI 注册范围是哪个

c# - Razor 的文本显示太长

c# - 如何将 ASP.NET 项目拆分为具有不同模块的不同版本

c# - 无法找出如何发出步行声音…(2d)

unity3d - 如何在 pro builder 中获取默认纹理?

c# - 单击 GUI 按钮时禁用游戏对象创建

c# - 如何从维护其组件和属性的服务器加载 Unity 中的游戏对象?

c# - 使用新的 Unity 5.1 传输层 API 流式传输 WebCamTexture

c# - 在 LinQ 中检查 null

c# - Unity Networking 2d 游戏,ClientRpc 无法正常工作