Priv's Blog

Programming Basics: Unit 2 - Basic Gameplay) Quiz 2 본문

Unity Learn/Pathway: Junior Programmer

Programming Basics: Unit 2 - Basic Gameplay) Quiz 2

Priv 2021. 2. 20. 21:11

출처

 

Quiz 2 - Unity Learn

This quiz will assess your knowledge of the skills and concepts learned in Unit 2.

learn.unity.com


 

 

문제 1

콘솔 창에 "Hello there!"이라고 출력된다면, 해당 메시지를 출력하는 데 사용된 코드는 어떤 것인가요?

  1. Debug("Hello there!");

  2. Debug.Log("Hello there!");

  3. Debug.Comsole("Hello there!");

  4. Debug.Log(Hello there!);

 

- 정답

더보기

답: 2

Debug.Log()는 콘솔에 메시지를 출력하며, "Hello there!"처럼 따옴표 안에 문자열 매개변수를 기입할 수 있습니다.

 


 

문제 2

체력이 0이 되었을 때 오브젝트를 삭제하고 싶을 때, 빈칸에 들어갈 적합한 코드는 무엇인가요?

 

  1. health > 0

  2. health.0

  3. health < 0

  4. health < 0

 

- 정답

더보기

답: 3

"health" 변수가 정수형이므로, 1 미만의 값은 "0" 뿐입니다. "미만"을 의미하는 기호는 "<"입니다.

 


 

문제 3

아래의 코드는 “error CS1503: Argument 1: cannot convert from 'UnityEngine.GameObject[]' to 'UnityEngine.Object'”라는 에러가 발생합니다. 에러를 수정하려면 무엇을 해야 하나요?

 

  1. A. 1번 줄, "GameObject[]"를 "GameObject"로 고친다.

  2. B. 1번 줄, "enemyPrefabs"를 "enemyPrefabs [0]"으로 고친다.

  3. C. 3번 줄, "Start()"를 "Update()"로 고친다.

  4. D. 5번 줄, "enemyPrefabs"를 "enemyPrefabs[0]"으로 고친다.

  5. A나 D 중에 하나

  6. A와 D 모두

  7. B와 C 모두

 

- 정답

더보기

답: 5

"GameObject[]"는 GameObject 배열입니다. 여러분은 배열을 인스턴스화 할 수 없습니다. 하지만 배열 안에 있는 오브젝트는 인스턴스화가 가능합니다. 그러므로, 배열을 삭제하고 각각의 오브젝트를 사용하도록 만들거나 (옵션 A) 또는 배열의 GameObject 인덱스 (옵션 D)를 사용할 수 있으나, 둘 다는 작동하지 않습니다.

 


 

문제 4

아래의 코드에 가장 적합한 주석은 무엇인가요?

 

  1. // If player collides with another object, destroy player
    (// 만약 플레이어가 다른 오브젝트와 충돌했을 경우, 플레이어를 삭제합니다.)

  2. // If enemy collides with another object, destroy the object
    (// 만약 적이 다른 오브젝트와 충돌했을 경우, 오브젝트를 삭제합니다.)

  3. // If player collides with a trigger, destroy trigger
    (// 만약 플레이어가 트리거와 충돌했을 경우, 트리거를 삭제합니다.)

  4. // If player collides with another object, destroy the object
    (// 만약 플레이어가 다른 오브젝트와 충돌했을 경우, 오브젝트를 삭제합니다.)

 

- 정답

더보기

답: 4

PlayerController 클래스 내부에 있으며, other.gameObject, 즉, 플레이어와 충돌한 물체를 삭제하고 있습니다.

 


 

문제 5

만약 플레이어가 위 화살표를 누르는 동안 캐릭터가 위로 계속 나아가도록 만들려고 한다면, 아래의 두 빈칸에 들어가야 하는 두 코드는 무엇인가요?

 

  1. GetKey(keyCode.UpArrow)

  2. GetKeyDown(UpArrow)

  3. GetkeyUp(keyCode.Up)

  4. GetkeyHeld(Vector3.Up)

 

- 정답

더보기

답: 1

"Input.GetKey"는 유저가 키를 누르고 있는 중인지를 감지합니다. (키를 한 번 눌렀는지를 검사하는 KeyDown과는 반대입니다.)

 


 

문제 6

Unity Scription API 문서와 아래의 코드를 읽어보세요. randomFloat과 randomInt 변수에 올 수 있는 값은 무엇인가요?

-----

-----

 

  1. randomFloat = 100.0f; randomInt = 0;

  2. randomFloat = 100.0f; randomInt = 100;

  3. randomFloat = 50.5f; ramdomInt = 100;

  4. randomFloat = 0.0f; randomInt = 50.5;

 

- 정답

더보기

답: 1

문서에 나와있듯이, Random.Range는 정수의 최댓값을 포함하지 않지만, 실수의 최댓값은 포함합니다. 이는 randomInt는 100을 포함할 수 없으나, randomFloat는 포함할 수 있음을 의미합니다.

 


 

문제 7

배열에서 오브젝트를 무작위로 생성하려고 했으나, 여러분의 게임이 실행 중일 때, 콘솔에 “error at Assets/Scripts/SpawnManager.cs:5. IndexOutOfRangeException: Index was outside the bounds of the array.”라는 라는 에러가 떴습니다. 해당 에러를 해결하고 오브젝트를 무작위로 생성하는 기능을 유지하려면 어떤 줄의 코드를 편집해야 하나요?

 

  1. 2번 줄

  2. 3번 줄

  3. 4번 줄

  4. 5번 줄

 

- 정답

더보기

답: 3

오브젝트 인덱스를 생성하는 4번 줄은 배열 내의 오브젝트 개수에 비해 너무 높은 인덱스 값을 생성하고 있습니다. 가장 좋은 해결책은 코드를 "Random.Range(0,0, rnadomObjects.Length);"로 수정하는 것입니다.

 


 

문제 8

scene에서 프리팹을 변경하고 모든 프리팹의 변경사항을 저장하고 싶다면, 어떤 것을 클릭해야 하나요?

 

  1. Hierarchy 상단에 있는 "Create" 드롭-다운 메뉴

  2. Inspector 상단에 있는 "Open" 버튼

  3. Inspector 상단에 있는 "Overrides" 드롭-다운 메뉴

  4. Inspector 하단에 있는 "Add Component" 버튼

 

- 정답

더보기

답: 3

"Override" 드롭-다운 메뉴는 여러분이 만든 개별적인 프리팹의 변경사항을 기존의 프리팹 오브젝트에도 적용할 수 있도록 해줍니다.

 


 

문제 9

아래의 Unity Scripting API 문서를 읽어주세요. InvokeRepeating 메서드를 올바르게 사용한 코드는 무엇인가요?

 

  1. InvokeRepeating("Spawn, 0.5f, 1.0f");

  2. InvokeRepeating("Spawn", 0.5f, 1.0f);

  3. InvokeRepeating("Spawn", gameObject, 1.0f);

  4. InvokeRepeating(0.5f, 1.0f, "Spawn");

 

- 정답

더보기

답: 2

Scripting API에 따르면, InvokeRepeating는 문자열 매개변수와 두 개의 실수형(float) 매개변수가 필요합니다.

 


 

문제 10

속도가 너무 느리면 속도를 올리고, 속도가 너무 빠르면 속도를 낮추라고 유저에게 말해주는 로직을 짜려고 합니다. 이 로직을 구현하려면 아래 코드 줄을 어떻게 정렬해야 하나요?

 

  1. 4, 6, 1, 2, 5, 9, 7, 8, 3

  2. 6, 1, 2, 5, 7, 8, 3, 4, 9

  3. 7, 8, 3, 4, 6, 5, 2, 1, 9

  4. 7, 8, 3, 4, 6, 1, 2, 5, 9

 

- 정답

더보기

답: 4

모든 변수들을 먼저 선언한 다음, void 메서드 선언, 속도를 올리는 if문, 속도를 낮추는 else 문 순으로 작성해야 합니다.

 


 


수고하셨습니다!


Comments