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