2016-07-29 1 views
2

세 장면, 두 단계 장면 및 메뉴 장면이있는 게임이 있습니다. 처음으로 레벨 장면에서 재생을 누르면 모든 것이 완벽하게 작동하지만 메뉴 장면으로 이동 한 다음 나중에 레벨 장면으로 돌아올 때Unity에서 두 번째 장면을 불러 온 후 개체 재설정

NetworkManager GameObject에 연결된 스크립트의 참조가 재설정되었습니다. 예를 들어, 아래 그림에 표시된 스크립트에서 내 자산의 프리 팹에 링크 된 참조를 제외한 모든 항목이 재설정되었습니다.

저는 각 변수마다 코드를 수동으로 지정하는 대신 할당하려고 시도했지만 작동하지 않습니다.

이 GameObject에는 dontdestroyonload가 없습니다. 이러한 참조가이 객체에서 구체적으로 재설정되는 이유는 무엇입니까?

+0

당신이하고있는 모든 일은 엄청나게 틀립니다 :) 다행히도 해결책은 절대적으로 간단합니다 : http://stackoverflow.com/a/35891919/294884 – Fattie

+0

@JoeBlow 저에게 당신이 전환 방법을 가르쳐 줄 튜토리얼을 알고 있습니까? ? 예고편 장면에 내 모든 일반 스크립트, 음향 효과 등을 어떻게 넣을 수 있는지 확신 할 수 없습니다. 이 프리로드 장면이 필연적입니까? 장면 전환 사이에 로딩 애니메이션이있는 장면을 만들 수 있습니까? –

+0

@JoeBlow 나는 이미이 게임에 첨부 된 100 개가 넘는 스크립트를 가지고 있으며, 복잡해지고 있습니다. 나는 이것에 대해 알지 못해도 멀리까지 갔다는 것을 믿을 수 없다. –

답변

1

의견을 말할 담당자가 충분하지 않지만 개체에 대한 참조를 추가 한 후에 장면을 저장 했습니까?

Answer (By Aaron Ge) :로드 할 때 파괴하지 말고 백그라운드에서 실행을 선택 취소하고 문제점이 수정되었습니다. 이 문제가 어떻게 해결되었는지는 잘 모르겠지만 그렇게했습니다.

가능한 설명 :

로드 그 장면을 한 번만 : 당신이 현장에 배치되는 개체에 DontDestroyOnLoad를 사용하는 경우 http://answers.unity3d.com/questions/734445/scripts-in-other-scenes-still-executing.html

, 당신이 중 하나를 확인하십시오. 보통로드 장면이라고합니다. 장면에는 특정 관리자 객체가 포함되어 있으며 즉시 메뉴 장면/기타로 전환됩니다 ... 첫 번째 장면을 다시로드하지 마십시오.

장면을 다시로드하고 하나 이상의 개체에서 DontDestroyOnLoad를 사용한 경우 개체를 수동으로 파괴해야합니다. 오브젝트가 장면의 일부이기 때문에 오브젝트가 다시 작성되는 것을 막을 수 없습니다. 일반적으로 새 장면을로드 할 때 al 오브젝트가 자동으로 삭제되고 DontDestroyOnLoad가이를 방지합니다.

+0

네, 그게 아닙니다[email protected] –

+0

레벨을 시작하지 않고 다시 돌아와서 메뉴 장면을 먼저 재생하여 시작하는 경우에도 동일한 문제가 발생합니까? – Almond

+0

아니요, 내 메뉴 장면은 이것에 전혀 영향을받지 않습니다. 이 특정 게임 개체 만 내 레벨 장면에서이 문제의 영향을 받았습니다. @ Almond –

0

로드 할 때 폐기하지 말고 백그라운드에서 실행을 선택 취소하고 문제가 해결되었습니다. 이 문제가 어떻게 해결되었는지는 잘 모르겠지만 그렇게했습니다!

관련 문제