2016-10-12 3 views
1

여러분 안녕하세요!Unity Networking [UNET] : 정적 장면 객체 동기화하기

저는 Unity에 비교적 익숙하며 현재 UNET을 사용하는 새로운 게임 프로젝트를 위해 노력하고 있습니다. 이 문제로 며칠 동안 붙어 있습니다 : Unity에서 기존의 (스폰되지 않은) 장면 개체를 어떻게 syncronize 할 수 있습니까?

"배경"이라는 객체가 있습니다. 이것은 스프라이트입니다. 서버가지도를로드하면 배경의 변형 비율이 변경됩니다. 내가하고 싶은 것은 새로 연결된 클라이언트와 동기화하는 것뿐입니다.

문서에 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

transform.scale UNET에서는 동기화가 계속 지원되지 않습니다. 그것은 1 년 전 아니었고 여전히 지금 :(

다행히, 당신은 [SyncVar attribute]를 사용하여이 문제를 해결할 수 있습니다.

+0

좋아, 많은 감사합니다. 을 내가 그 믿는 할 수 없습니다 =) 이제 [SyncVar] 해결 방법을 사용하겠습니다. – An147

관련 문제