티스토리 뷰
1월 29일 강의에서는 간단하게 조건문에 대해 지식을 바로잡았다. 금일 강의부터 강의 내용을 기록하는 이유는, 저번주 강의 시간에서는 너무나 간단하게 자료형이나 유니티에 대해 다루었기 때문에 기존에 알던 지식을 굳이 기록할 필요를 느끼지 않았다. 하지만 금일 강의에서는 새롭게 알게 된 내용이 많아 기록을 결심하게 되었다.
크게 if문, switch문, enum에 대해 배웠고, 기존 대학에서 C언어를 거의 마스터했기 때문에 간단하게 이해할 수 있었다. 하지만 내부에서 새롭게 알게 된 용법도 몇 가지 있었다. 그에 대해 기록해두려 한다.
if문 용법 :
1. if .. else ..문 : 서로 상반 관계일 때 주로 사용한다. 예를 들어, 캐릭터가 죽거나 살아있는 경우를 다룰 때이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IFSelectComponent : MonoBehaviour
{
public int hp;
void Start()
{
hp = Random.Range(10, 101);
bool IsDie = hp <= 0;
if(IsDie) //결과가 참이면 실행되는 코드가 동작됨
Debug.Log("플레이어가 뒤로 넘어지면서 으악! 소리를 내며 사망합니다.");
else
Debug.Log("플레이어가 생존하여 손을 올리며 고함을 칩니다.");
}
}
2. if .. else if .. (else ..)문 : 여러 개의 조건 중 한 가지의 조건만 참이 되어야 할 경우에 사용한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IFSelectComponent : MonoBehaviour
{
public int hp;
void Start()
{
hp = Random.Range(10, 101);
//플레이어가 사망했는지를 판단
bool IsDie = hp <= 0; //관계연산식 => 조건식
if (hp >= 40)
Debug.Log("플레이어의 체력이 " + hp + "만큼 남았습니다.");
else if (hp > 0)
Debug.Log("플레이어의 체력이 " + hp + "만큼 남았으나 현재 위험한 상태입니다.");
else
Debug.Log("플레이어가 뒤로 넘어지면서 으악! 소리를 내며 사망합니다.");
}
}
3. if .. if ..문 : 한 가지의 조건 뿐만 아니라 다른 조건까지 참이 되어야 하는 경우가 있으면 사용한다. 아직 적절한 예시는 생각해보지 못했지만, 이건 처음 접해보는 용법이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IFSelectComponent : MonoBehaviour
{
public int hp;
void Start()
{
hp = Random.Range(10, 101);
bool IsDie = hp <= 0; //관계연산식 => 조건식
if (hp >= 40)
Debug.Log("플레이어의 체력이 " + hp + "만큼 남았습니다.");
if (hp > 0 && hp < 40) //두가지 조건이 모두 합당할 때만 true 결과를 만들고 싶을 때 : &&(and)
Debug.Log("플레이어의 체력이 " + hp + "만큼 남았으나 현재 위험한 상태입니다.");
if (hp <= 0)
Debug.Log("플레이어가 뒤로 넘어지면서 으악! 소리를 내며 사망합니다.");
}
}
switch문 용법 : case에 따라 서로 다른 기능이 발휘되는 것이 가능한 조건문. 모든 switch는 if문으로 변경이 가능하지만, 모든 if문을 switch문으로 변경할 수는 없다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SwitchSelectComponent : MonoBehaviour
{
void Start()
{
int characterType = 0; // 1:플레이어, 2:크리쳐, 3:메카닉, 4:펫, 5:장애물
characterType = Random.Range(1, 6);
Debug.Log("선택 캐릭터 타입 : " + characterType);
switch (characterType)
{
case 1:
Debug.Log("현재 캐릭터는 플레이어 타입입니다.");
break;
//if문의 case 조건식이 or 조건절로 형성될 때는 break 제거를 통해 switch문으로 아래와 같이 구현이 가능함
case 2:
case 3:
case 5:
Debug.Log("현재 캐릭터는 몬스터 타입입니다.");
break;
default:
Debug.Log("현재 캐릭터는 소환수 타입입니다.");
break;
}
}
}
enum 용법 : switch문을 작성할 때, 때로는 업데이트나 보수를 진행할 때 더한 시간과 노력이 들 수고를 덜기 위해 사용하는 열거형 용법.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SwitchSelectComponent : MonoBehaviour
{
public enum CHARACTER_TYPE { PLAYER, CREATURE, MECHANIC, PET, OBSTACLE }; //캐릭터 열거형 타입
// Start is called before the first frame update
void Start()
{
int characterType = 0; // 1:플레이어, 2:크리쳐, 3:메카닉, 4:펫, 5:장애물
characterType = Random.Range(1, 6);
Debug.Log("선택 캐릭터 타입 : " + characterType);
//랜덤으로 뽑은 정수형 몬스터 타입을 열거형으로 변환
CHARACTER_TYPE cEnumValue = (CHARACTER_TYPE)characterType;
switch (cEnumValue)
{
case CHARACTER_TYPE.PLAYER:
Debug.Log("현재 캐릭터는 플레이어 타입입니다.");
break;
case CHARACTER_TYPE.CREATURE:
case CHARACTER_TYPE.MECHANIC:
case CHARACTER_TYPE.OBSTACLE:
Debug.Log("현재 캐릭터는 몬스터 타입입니다.");
break;
default:
Debug.Log("현재 캐릭터는 소환수 타입입니다.");
break;
}
}
}
평소에 잘 다루지 않던 switch나 enum 용법을 매우 의미있게 학습하는 시간이었다.
'기록하며 노세' 카테고리의 다른 글
생성자와 this, overload, Property (0) | 2024.02.05 |
---|---|
C#에서 메소드(Method)란? (2) | 2024.02.05 |
값 형식의 배열, 객체 참조 배열, 그리고 Instantiate (2) | 2024.02.01 |
애플의 비전 프로와 공간 컴퓨팅 (0) | 2024.01.29 |
새로운 도전 (4) | 2024.01.27 |
- Total
- Today
- Yesterday
- OOP
- Abstract
- 정보보안
- 메타버스
- 침해사고분석및대응
- 정보보호전문가
- 게임리뷰
- 익숙한출발
- 핸디커뮤니케이션즈
- override
- virtual
- 유니티
- 업캐스팅
- 상속
- 게임개발
- 가위바위보게임
- apstndp
- 부모클래스
- unity
- SpaceShooter
- sbs아카데미게임학원
- 물데네전세표응
- 자식클래스
- 정보보호
- C#
- 디폴트매개변수
- 코루틴
- base
- 보안
- 유니티개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |