Priv's Blog
Manage scene flow and data: Quiz) Manage scene flow and data 본문
Manage scene flow and data: Quiz) Manage scene flow and data
Priv 2022. 1. 17. 18:25출처
문제 1
다음 중, 버전 관리 솔루션으로 분류되는 것은 무엇인가요?
- 패키지 매니저(Package Manager)
- 비주얼 스튜디오(Visual Studio)
- 유니티 애널리틱스(Unity Analytics)
- 깃허브(Github)
- 정답
답: 4
문제 2
다음 중, 일반적으로 버전 컨트롤 솔루션에 의해 수행되지 않는 것은 무엇인가요?
- 스크립트 상의 간단한 구문 오류를 자동으로 해결.
- 모든 팀 멤버의 기여를 관리.
- 필요에 따라 프로젝트 버전을 이전 버전으로 복구.
- 프로젝트가 생성된 이후부터 매 시간마다 변경사항들을 추적.
- 정답
답: 1
문제 3
다음 중, "병합 충돌(Merge Conflict)"은 어떤 상황에서 발생하나요?
- 에러가 발생한 코드 줄이 애플리케이션의 다른 나머지 부분과 병합했을 때, 추가적인 에러를 발생시킬 수 있는 경우.
- 2명의 기여자가 동일한 파일의 동일한 코드를 동일한 시간에 푸시(Push)했을 경우.
- 2개의 다른 파일이 호환되지 않는 프로그래밍 언어로 동일한 리포지토리(Repository)에 저장된 경우.
- 리포지토리(Repository)의 서로 다른 브랜치에서 동일한 파일의 동일한 줄을 수정한 경우.
- 정답
답: 4
문제 4
다음 중, 버전 관리 솔루션에서 "브랜치 체크아웃(Branch Checkout)"이 의미하는 것은 무엇인가요?
- 리포지토리(Repository) 내에 새로 복제한 브랜치(Branch)를 생성한다.
- 작업 디렉터리가 브랜치(Branch)의 버전과 일치하도록 업데이트한다.
- 현재 리포지토리(Repository)에서 브랜치(Branch)를 삭제한다.
- 리포지토리(Repository)의 브랜치에 "보기" 권한을 부여한다.
- 정답
답: 2
문제 5
다음 중, 버전 관리 솔루션에서 "커밋 메시지(Commit message)"의 의미는 무엇인가요?
- 특정 기능을 확인했다는 "커밋(Commit)" 요구 사항.
- 기여자가 리포지토리(Repository)에 변경 사항을 커밋(Commit) 하기 전에 표시되는 경고 메시지.
- 모든 기여자들에게 리포지토리(Repository)에 변경 사항을 커밋(Commit)하라고 요청하는 메시지.
- 리포지토리(Repository)에 "커밋(Commit)"과 함께 제공되는 변경 사항에 대한 설명 메시지.
- 정답
답: 4
문제 6
다음 중, 버전 관리 솔루션을 사용한 일반적인 워크플로우(Workflow)는 무엇인가요?
- 체크아웃, 추가, 클론, 브랜치, 커밋, 푸시(checkout, add, clone, branch, commit, push)
- 체크아웃, 클론, 브랜치, 추가, 푸시, 커밋(checkout, clone, branch, add, push, commit)
- 클론, 브랜치, 체크아웃, 추가, 커밋, 푸시(clone, branch, checkout, add, commit, push)
- 클론, 추가, 체크아웃, 브랜치, 푸시, 커밋(clone, add, checkout, branch, push, commit)
- 정답
답: 3
문제 7
유니티 스크립팅 레퍼런스 문서를 보면, LoadScene 함수에 대해 다음과 같이 서술하고 있습니다:
SceneManager.LoadScene
● public static void LoadScene(int sceneBuildIndex, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
● public static void LoadScene(string sceneName, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
다음 중, LoadScene 메서드를 올바르게 구현한 것은 무엇인가요?
- SceneManager.LoadScene(LoadSceneMode.Single);
- SceneManager.LoadScene(“SceneName”, 0);
- SceneManager.LoadScene(0, “SceneName”);
- SceneManager.LoadScene(0, LoadSceneMode.Additive);
- 정답
답: 4
문제 8
다음 중, 어떤 상황에서 DontDestroyOnLoad 함수를 사용하실 건가요?
- 애플리케이션이 처음 로드되고 오브젝트가 이전에 실행되었을 때의 값을 유지하고 싶을 때.
- 특정 게임 오브젝트가 로드되는 동안 씬(Scene) 안의 다른 오브젝트들을 파괴하지 않기를 원할 때.
- 오브젝트가 모든 Destroy() 함수의 호출을 무시하게 만들고 싶을 때.
- 씬 사이의 특정 게임 오브젝트 또는 구성 요소에 대해 정보를 저장하고 싶을 때.
- 정답
답: 4
문제 9
아래의 코드는 3초 간격으로 씬을 다시 로드한 다음, 다시 로드하는 데 걸린 시간을 콘솔 창에 "Reload number 0", "Reload number 1", "Reload number 2" 등과 같은 형식으로 출력하는 코드로, 매 시간마다 다시 로드됩니다.
public int reloadNumber = 0;
void Start()
{
Debug.Log("Reload number " + reloadNumber);
reloadNumber++;
StartCoroutine(WaitAndReload());
}
IEnumerator WaitAndReload()
{
yield return new WaitForSeconds(3);
SceneManager.LoadScene (SceneManager.GetActiveScene().name);
}
그러나, 증가된 reloadNumber 변수 값은 씬을 다시 로드할 때 유지되지 않으므로, 매 시간마다 1씩 값을 증가시킨 결과가 출력되는 대신, "Reload number 0"이 출력됩니다. 프로그램이 원하는 데로 동작하도록 만들려면 어떻게 수정해야 하나요?
- reloadNumber 변수를 상수(constant)로 만듭니다.
- reloadNumber 변수를 "SerializeFiled" 속성으로 직렬화(Serialize)합니다.
- reloadNumber 변수를 보호된(protected) 변수로 만듭니다.
- reloadNumber 변수를 정적(static) 변수로 만듭니다.
- 정답
답: 4
문제 10
아래의 코드는 싱글톤 디자인 패턴으로 구현된 GameManager의 예시 코드입니다:
public class GameManager : MonoBehaviour
{
void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
public static GameManager Instance { get; private set; }
}
다음 중, 이 클래스에 대해 올바르게 설명한 것은 무엇인가요?
- 씬에서 원하는 만큼 인스턴스화할 수 있습니다.
- 씬에 있는 모든 오브젝트에 자동으로 컴포넌트로 추가됩니다.
- 다른 아무 클래스에서나 GameManager.get()을 통해 접근할 수 있습니다.
- 다른 아무 클래스에서나 GameManager.Instance를 통해 접근할 수 있습니다.
- 정답
답: 4