Priv's Blog
Programming Basics: Quiz) Create with Code 1 본문
Programming Basics: Quiz) Create with Code 1
Priv 2021. 7. 24. 18:05출처
문제 1
아래 코드의 결과를 올바르게 설명한 것은 무엇인가요?
public class Enemy : MonoBehaviour
{
public Transform ground;
void Update()
{
if (transform.position.y < ground.position.y)
{
Destroy(gameObject);
}
}
}
- 적(enemy)이 땅(ground) 위로 올라가면, 적(enemy)을 파괴합니다.
- 적(enemy)이 땅(ground) 아래로 내려가면, 적(enemy)을 파괴합니다.
- 플레이어(player)가 땅(ground) 아래로 내려가면, 플레이어(player)를 파괴합니다.
- 플레이어(player)가 적(enemy)과 접촉하면, 플레이어(player)를 파괴합니다.
- 정답
답: 2
Enemy 클래스에 있는 Destroy(gameObject) 코드는 적을 파괴하는 코드입니다. if 문은 적(enemy)의 y 좌표 값이 땅(ground)의 y 좌표 값보다 작은지(또는 미만인지)를 검사합니다. 그러므로 적(enemy)은 땅(ground) 아래로 내려갔을 경우 파괴될 것입니다.
문제 2
다음 중, 주석 처리된 부분에 들어가야 하는 알맞은 코드는 무엇인가요?
public float[] values = values[5];
void Start()
{
// assign the first element in the array the value of 5.0
}
- value[1] = 5.0f;
- float.0 = 5.0f;
- float[0] = 5.0f;
- values[0] = 5.0f;
- 정답
답: 4
배열의 요소에 접근하기 위해서는, 대괄호로 묶여 있는 배열 요소의 인덱스 값이 뒤에 따라붙는 "value" 키워드처럼 배열의 이름으로 참조해야 합니다. 배열의 첫 번째 요소 인덱스는 0이므로, 답은 values[0] = 5.0f;가 됩니다.
문제 3
아래의 코드를 가장 잘 설명하는 주석은 어떤 것인가요?
- // If the enemy collides with a spike, destroy the enemy
// 적이 스파이크에 닿았을 경우, 적을 파괴합니다. - // If the player collides with a spike, destroy the player
// 플레이어가 스파이크에 닿았을 경우, 플레이어를 파괴합니다. - // If the player collides with a spike, destroy the spike
// 플레이어가 스파이크에 닿았을 경우, 스파이크를 파괴합니다. - // If the player collides with an enemy, destroy the enemy
// 플레이어가 적과 닿았을 경우, 적을 파괴합니다.
- 정답
답: 3
이 클래스는 "Player" 클래스이므로, 플레이어가 다른 오브젝트와 충돌했을 때의 상황을 테스트하고 있습니다. 그러므로 해당 클래스 상에서 "other.gameOjbect"를 파괴한다면, 이는 스파이크를 파괴하는 것이 됩니다.
문제 4
아래의 이미지는 스크립트 편집 도구(또는 IDE)를 여러분이 원하는 것으로 변경할 수 있는 Preferences 창을 보여줍니다. 편집 도구를 변경하고자 할 때, 어느 항목을 클릭해야 하나요?
- 1번 박스 (External Script Editor)
- 2번 박스 (Image application)
- 3번 박스 (Revision control Diff/Merge)
- 정답
답: 1
비주얼 스튜디오(Visual Studio)에서 다른 편집 도구로 변경하고 싶으시다면, 1번 박스에 있는 설정 값, "External Script Editor" 항목을 선택하셔야 합니다.
문제 5
비주얼 스튜디오(Visual Studio) 상에서 "5.0f;" 부분에 빨간 밑줄이 그어졌습니다. 마우스를 항목 위에 가져가면, 어떤 오류 메시지가 표시될까요?
int health = 5.0f;
- Cannot complete statement. Remove semicolon.
- The value “f” could not be interpreted for type ‘int’.
- Cannot implicitly convert type ‘float’ to ‘int’.
- The value 5.0 is out of bounds.
- 정답
답: 3
float에는 소수가 포함되고, int (정수형)에는 소수가 포함되지 않으므로, int 변수에는 소수 값을 저장할 없습니다. float(소수 포함) 값은 int 값으로 변환할 수 었습니다.
문제 6
아래 사진 속의 자동 완성 팝업 창에 표시된 정보를 활용하고자 할 때, Instantiate 메서드를 올바르게 호출한 코드는 무엇인가요?
- Instantiate(objectPrefab.transform, spawner, true);
- Instantiate(objectPrefab, spawner, false);
- Instantiate(objectPrefab, spawner.transform, true);
- Instantiate(objectPrefab, spawner, bool);
- 정답
답: 3
사진 속 툴팁(tooltip)을 통해 Instantiate 메서드가 3가지 타입: Object, Transform, bool 매개변수를 요구한다는 것을 알 수 있습니다. 이는 즉, 첫 번째 매개변수는 오브젝트 (objectPrefab)가 될 수 있고, 두 번째 매개변수는 오브젝트의 트랜스폼(transform) (spawner.transform)이 될 수 있으며, 세 번째 매개변수는 불리언 값(ex. true 또는 false)이어야 한다는 것입니다.
문제 7
아래와 같은 디버깅 메시지를 출력하는 코드는 무엇인가요?
Hello world.
- Debug(Log(“Hello world.”));
- Debug.Log(Hello world.);
- Debug(“Hello world.”);
- Debug.Log("Hello world.");
- 정답
답: 4
올바른 메서드는 Debug.Log이며, "Hello world."처럼 단순한 문자열 메시지는 따옴표로 묶어주어야 합니다.
문제 8
다음 중, Unity Monobehavior 클래스 내의 Start() 또는 Update() 함수에 대한 설명으로 올바른 것은 무엇인가요?
- Update() 함수는 Start() 함수 이전에 실행됩니다.
- Start() 함수는 Update() 함수가 실행될 때마다 실행됩니다.
- 플레이어의 입력 감지는 Update() 함수 안에서 처리되어야 합니다.
- Update() 함수는 1번만 실행됩니다.
- 정답
답: 3
Start() 함수 내에서 플레이어의 입력을 처리하는 것은 1번만 함수가 실행되기 때문에 의미가 없습니다. 매 프레임마다 실행되는 Update() 함수 안에서 사용자의 입력을 처리하는 것이 더 합리적입니다.
문제 9
아래의 코드는 어떤 순서로 명령이 처리될까요?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed;
public string playerName;
void Start()
{
playerName = "Test";
}
void Update()
{
speed++;
}
}
- 변수, 네임스페이스(namespaces), 함수, 클래스 선언
- 함수, 클래스 선언, 네임스페이스(namespaces), 변수
- 클래스 선언, 네임스페이스(namespaces), 함수, 변수
- 네임스페이스(namespaces), 클래스 선언, 변수, 함수
- 정답
답: 4
"using" 문은 네임스페이스(namespaces)를 의미하며, "public class"로 시작되는 줄은 클래스 선언, "public"으로 시작되는 줄은 변수, Start()와 Update() 부분은 함수를 의미합니다.
문제 10
다음 중 표준 유니티 명명 규칙을 따르는 코드는 몇 번인가요?
- 1번
- 2번
- 3번
- 4번
- 정답
답: 4
"public float speed = 40.0f;"는 올바른 명명 규칙을 따르고 있습니다. 사용된 3가지 용어 모두 소문자로 시작해야 하기 때문입니다.
문제 11
아래 사진 속 inspector 창은 "Speed" 및 "Player name" 변수를 보여줍니다. PlayerController.cs 상에서 사진처럼 해당 변수가 inspector 창에 표시되도록 만드는 코드는 무엇인가요?
- public float Speed;
public text Player Name; - public float speed;
public string playerName; - new Float speed;
new String playerName; - float speed;
string playerName;
- 정답
답: 2
inspector 창에 변수가 표시되려면, 변수에 "public" 접근 제한자를 추가해주어야 합니다. 변수 이름은 낙타 대문자(camelcase) 규칙을 따라야 하며, 공백을 포함해서는 안됩니다.
수고하셨습니다!
'Unity Learn > Pathway: Junior Programmer' 카테고리의 다른 글
Programming Simple Functionality: Unit 3 - Sound and Effects) Unit 3 - Introduction (0) | 2021.07.24 |
---|---|
Programming Basics: Mod the Cube (0) | 2021.07.24 |
Programming Basics: Unit 2 - Basic Gameplay) Quiz 2 (0) | 2021.02.20 |
Programming Basics: Unit 2 - Basic Gameplay) Lab 2 - New Project with Primitives (0) | 2021.02.20 |
Programming Basics: Unit 2 - Basic Gameplay) Challenge 2 - Play Fetch (0) | 2021.02.20 |