2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

반응형

응용프로그래밍/유니티기초 23

[유니티기초] 2-02. 다형성과 인터페이스

목표 1. 다형성이 무엇인지 알아보고 구현하는 방법을 살펴 보자. 2. 인터페이스 사용법을 알아 보자 이론 1. 다형성 플레이어와 적이 있다면 공통적으로 생명체로 동작하게 되며 생명력과 누군가에게 데미지를 입히거나 다른 생명체로 부터 데미지를 얻을 수 있다. 이러한 생명체 클래스는 부모의 구현을 재사용 가능하며 부모클래스 타입으로 일괄 처리가 가능하다. 1. 상속관계에서의 다형성 몬스터가 있고 몬스터의 종류에는 오크와 드래곤이 있다고 가정해 보자. 몬스터의 속성으로는 데미지가 있고 공격을 할 수 있는 능력이 있다고 하면 몬스터 클래스를 다음과 같이 구현 할 수 있다. public class Monster : MonoBehaviour{ public void Attack(){ Debug.Log("공격"); ..

[유니티기초] 2-02.싱글턴 패턴

목표 싱글턴 패턴의 필요성을 알아보고 구현하는 방법을 살펴 보자. 싱글턴 패턴의 필요성 프로젝트를 수행할 때 관리자 역할을 하는 GameManager(파일매니저,몬스터매니저,점수매니저 등)는 프로그램에 단 하나만 존재해야 한다. 그리고 어디서든 즉시 접근이 가능해야 한다. 1. 단일 오브젝트 만약 점수를 관리하는 점수매니저가 두개라고 하면 최고 점수도 두개가 될 수 있다. 이와 같은 이유로 관리매니저는 단 하나만 존재해야 한다. 2. 손쉬운 접근 매니저는 프로그램의 특정영역이 아나라 어느곳에서 사용할 수 있는 편의 기능을 제공한다. 따라서 매니저 오브젝트는 어느곳에서나 쉽게 접근하여 사용할 수 있도록 구현해야 된다. 3. 싱글턴을 사용하는 이유 게임매니저 오브젝트는 단 하나만 존재 어떤 곳에서도 손쉽게 ..

[유니티기초]2-01.에셋스토어에서 2D 이미지 다운받아 적용하기

목표 1. 에셋스토어에 있는 이미지를 다운 받아 유니티에서 객체로 활용하는 방법을 알아 봅니다. 에셋스토어 접속하기 유니티의 Window -> Asset Store 클릭하면 다음과 같이 Asset Store 화면이 나타납니다. Search online 을 클릭해서 웹사이트 접속 카테고리에서 2D 와 Pricing 에서 Free Assets 를 선택해서 조회 한 후 원하는 애셋을 선택후 Add to My Assets 를 클릭 합니다. Accept 선택 후 유니티 열기를 클릭 유니티에서 Download 완료 후에 import 다시 한번 import Assets 를 확인하면 다운로드 된 패키지를 확인 할 수 있다.

[유니티기초]1-10. 카메라 이동

목표 플레이어가 움직이면 움직임에 따라 카메라가 움직이는 것을 스크립트로 처리 해 보자 실습 실습 전에 무료이미지 사이트에서 배경 화면을 다운받아 추가하자.( 카메라가 이동하면서 배경이 움직이는 것처럼 보이도록) 배경 추가후 order in layer 를 -1 로 처리해서 가장 뒤쪽으로 밀자. 카메라에 다음의 스크립트를 추가하자 . 1. position 을 변경하여 이동하는 경우 public class TraceScript : MonoBehaviour { public GameObject player; //추적할 게임 오브젝트 private Transform trace; //추적할 게임 오브젝트의 transform // Start is called before the first frame update vo..

[유니티기초]1-09. 객체 방향 전환

목표 플레이어를 앞과 뒤쪽을 바라 볼 수 있도록 방향 회전 하는 방법을 살펴 보자. 이론 Rotation 이 y가 0 인 경우 y가 180인경우 방향을 변경하는 것은 transform.rotation 값을 이용하여 변경한다. 이때 값은 Quaternion 값을 활용하는데 Quaternion.Euler를 이용하여 Euler(오일러)값을 변환하여 사용할 수 있다. 실습 왼쪽 방향키를 누르면 왼쪽을 바라보도록 처리하고 오른쪽 방향키를 누르면 오른쪽 방향을 바라보도록 처리하자. void Update() { // 수평과 수직 축 입력 값을 감지하여 저장 float xInput = Input.GetAxis("Horizontal"); //float zInput = Input.GetAxis("Vertical"); fl..

[유니티기초] 1-08.유니티 객체 삭제

목표 객체를 생성 한 후에 객체가 계속 남아 있으면 메모리를 계속 차지하게 된다. 따라서 객체가 사망하거나 없어지는 시점에 객체를 소멸해 주어야 메모리에서 해제 되므로 이러한 객체 삭제 함수에 대해 알아 보자. 이론 Destroy() : 오브젝트 삭제 함수로 매개변수에 입력 되어 있는 오브젝트를 삭제 하는 함수 매개변수 object : 삭제할 게임 오브젝트 Time : 지연 시간 실습 시작 할때 객체를 생성 후에 3초 후에 삭제 되는 프로그램을 작성해 보자. 2022.05.30 - [응용프로그래밍/유니티기초] - [유니티기초]1-06.스크립트를 이용하여 객체 생성 에서 생성한 객체를 3초 후에 삭제 되도록 코딩 해 보자. private void Awake() { //Quaternion.identity 회..

[유니티기초]1-07. Random.Range 를 이용하여 랜덤한 위치에 객체 생성

목표 Random.Range 를 이용하여 임의의 위치를 지정하여 객체 생성하는 법을 알아 보자. 실습 1. 먼저 오브젝트가 생성되는 위치와 범위를 결정하기 위해 객체 생성(Square 생성하여 크기를 x:20,y:10 ) 2. 생성할 객체(Circle)를 추가하여 프리팹으로 설정 3. 오브젝트가 Square 내에서 임의의 장소에서 생성 할 수 있도록 다음과 같이 스크립트를 추가하자. using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjectSpawner : MonoBehaviour { public GameObject circle; // Start is called before the fi..

[유니티기초]1-06.스크립트를 이용하여 객체 생성

목표 스크립트에서 Instantiate() 함수를 이용하여 필요할 때 객체를 생성하는 방법을 익혀 보자. 이론 게임에서 객체를 생성하기 위해서는 원본을 이용하는 것이 아니라 프리팹(Prefab)을 이용하여 생성하게 된다. 1. 프리팹(Prefab)이란? 게임에 존재하는 게임오브젝트를 Project View 에 파일로 저장해 둔것. 만드는 방법은 Hierarchy 에 있는 게임 오브젝트를 Project View로 드래그&드롭 하면 게임오브젝트가 파란색으로 변경이 된다. 하이어라키의 Circle을 프리팹으로 만든 모습 2. Instantiate 의 매개변수 GameObject : 생성할 프리팹 객체 Vector3 : 생성할 위치 Quaternion : 생성할 때 바라보는 방향 이렇게 만들어진 Circle 프..

[유니티기초]1-05. 프레임에 따라 update 되는 속도가 다른 것을 어느 컴퓨터에서나 동일한 속도를 보장 하는 deltaTime

목표 스크립트의 update() 는 화면 처리속도에 따라 다른 속도로 처리 되는 것을 확인하고 이것을 동일한 속도로 처리 할 수 있는 deltaTime 을 활용하는 방법을 알아 보자. 이론 스크립트의 Update는 컴퓨터의 프레임에 따라 반복 되는 횟수가 다릅니다. 가령 초당 프레임이 30FPS 인 컴퓨터와 60FPS 인 컴퓨터가 있다면 update 에서 총알이 한번 방문할때 10m 씩 날아 간다면 초당 프레임이 30FPS인 컴퓨터에서는 초당 30m 를 날아가게 되고 60FPS인 컴퓨터는 60m를 날아가게 됩니다. 이렇게 프레임 속도에 따라 동작이 달라진다면 문제가 있을것 같네요. 오늘은 deltaTime 을 이용해서 속도를 보정하는 방법을 알아 보겠습니다. 실습 프로젝트는 https://thinkmat..

[유니티기초] 1-04. 게임오브젝트 충돌 처리

목표 충돌에 관련된 Collider 에 대해 알아 보자. 이론 OnCollisionEnter2D : 두 오브젝트가 충돌하는 순간 1회 이벤트 발생 OnCollisionStay2D : 충돌해 있는 순간 계속 발생 OnCollisionExit2D : 두 오브젝트의 충돌이 종료되는 순간 1회 발생 실습 1. Collider : 충돌 범위 - 속성 Material : 해당 오브젝트의 마찰력 등을 설정 할 수 있는 물리 메터리얼 등록 가능 Is Trigger : 체크 되었을 때 통과하면서 충돌 이벤트 발생, 체크되지 않으면 통과 되지 않음 Offset : 충돌 범위의 중심점 위치 Size : 충돌 범위 크기 Used By Composite : 콜라이더를 그룹으로 통합할 때 체크 2. 객체 생성하여 테스트 해 보자..

반응형