목록분류 전체보기 (38)
개발블로그
💪GOAL MMORPG에서 많이 사용하는 카메라 무빙으로 캐릭터의 뒤통수를 쫓아다니면서 확대, 축소가 가능하고 마우스를 움직이는 대로 캐릭터의 방향도 움직인다. 오늘은 MMORPG에서 많이 사용하는 FollowCamera를 만들어보자! 가장 먼저 씬에 캐릭터와 바닥, 그리고 엘리온과 같이 화면 중앙에 크로스헤어를 배치한 후 스크립트를 작성했다. public class FollowCamera : MonoBehaviour { // CAM GameObject _player = null; Vector3 _targetPos = Vector3.zero; Vector3 _basicPos = Vector3.zero; float _defaultDist = 7f; // 카메라 시작 거리 float _currX = 0.0f..
다형성은 객체지향언어의 특징으로, · 상위클래스가 자식클래스의 값으로 오버라이딩(재정의)
지난 포스팅에서 Action의 예제로 자동차 리스트에서 Action을 사용함으로써 의존성을 낮추는 방법에 대해서 작성했다. 다른 예제를 작성하며 Action을 이해하자. https://devheehee.tistory.com/27 [유니티 C#] Action 과 Func 💪 GOAL https://devheehee.tistory.com/21 지난 포스팅에서 Delegate의 사용 방법을 알아보았다. 지난 시간에 이어서 C#에서 Delegate를 좀 더 간단히 사용할 수 있도록 미리 선언한 Delegate 변수인 Action과 F.. devheehee.tistory.com 💪 GOAL - Action을 사용해서 견고한 커플링을 해소하는 예제를 작성하며 익힌다. 🔶 이벤트(Event) 이벤트는 이벤트 자체로는..
💪 GOAL - 유한 상태머신의 뜻을 이해한다. - 유한 상태머신을 이용한 캐릭터 애니메이션을 구현한다. 게임을 개발할 때 '유한 상태머신(FSM)'이라는 말을 한번쯤은 들어봤을 것이다. 유한 상태머신은 유한한 수의 상태가 존재하며, 한 번에 한 상태만 '현재 상태'가 되도록 프로그램을 설계하는 모델이다. 유한 상태 머신에서는 어떤 상태에서 다른 상태로 전이하여 현재 상태를 전환할 수 있다. 가장 기본적인 예로 게임의 Monster AI를 유한 상태머신으로 구현한다고 가정해보자. 가장 기본적으로 몬스터는 Idle(대기), Trace(추적), Attack(공격) 로 세가지 상태를 가질 수 있다. 화면에서 대기하고 있다가, 플레이어(공격대상)가 몬스터의 시야에 들어오면 추적하고, 사정거리에 있다면 공격한다...
💪 GOAL - GetAxis || GetAxisRaw를 이용해서 오브젝트를 이동시킨다. - 오브젝트가 바라보는 방향으로 이동시킨다. 🔶 Input.GetAxis(string name) : 키보드와 조이스틱 입력값에 대해 -1에서 1까지의 값을 가진다. 독립적인 프레임 속도로 작동하고, 부드러운 이동이 필요한 경우에 사용한다. 🔶 Input.GetAxisRaw(string name) : 키보드와 조이스틱 입력값에 대해 -1에서 1까지의 값을 가진다. 키보드나 조이스틱을 눌렀을 때 즉각 반응이 필요한 경우에 사용한다. 실습 버전 :: 2020.3.14f GetAxis의 매개변수로는 string name이 들어간다. 이곳에 들어가는 string name은 Edit - Project Settings - Inp..
변수란, 프로그램에서 값을 다루기 위한 데이터를 메모리에 담아두고 사용할 수 있는 임시 저장공간이 필요할 때 사용하는 그릇이다. C#에서 빈번하게 사용하는 변수의 데이터 형식은 아래와 같다. 형식 설명 int 정수형 데이터를 저장. 더 큰 정수형 데이터는 long을 사용. double 실수형 데이터를 저장. double과 float 모두 실수 저장이 가능. bool 참, 또는 거짓을 true와 false 키워드로 저장. string 문자열 데이터를 저장. object C#에서 사용하는 모든 데이터를 저장. 모든 데이터 형식을 담을 수 있음. 변수에 값을 대입하고 출력해보자. 유니티로 계속 개발을 할 예정이므로 유니티 스크립트로 작성했다. using UnityEngine; public class Study..
💪 GOAL https://devheehee.tistory.com/21 지난 포스팅에서 Delegate의 사용 방법을 알아보았다. 지난 시간에 이어서 C#에서 Delegate를 좀 더 간단히 사용할 수 있도록 미리 선언한 Delegate 변수인 Action과 Func의 차이점을 알아보자. - C#에서의 델리게이트 기능을 손쉽게 사용할 수 있도록 지원하는 Action과 Func에 대해 이해한다. 🔶 Action Action 타입은 입력과 출력이 없는 메소드를 가리킬 수 있는 델리게이트다. 입력과 출력이 없는 메소드를 등록할 수 있고, 등록된 메소드는 원하는 시점에 매번 실행할 수 있다. 예제 코드를 보자. public class Monster : Monobehaviour { Action attack; vo..
💪 게임에서 최종 보스를 물리칠 때 슬로우 모션으로 보여지는 효과를 많이 보았다. 혹은 왼쪽 하단에 게임의 진행 속도를 조절할 수 있는 배속 버튼도 많이 사용한다. 유니티에서 시간을 빠르게, 혹은 느리게 움직이는 방법을 알아보고, TimeScale에 의존 적인 unscaledTime 도 알아보도록 하자. 🔶 Time.timeScale 시간이 경과하는 크기를 나타낸다. timeScale이 1.0인 경우에 실제 시간과 같은 속도로 경과한다. timeScale이 만약 0.5라면 실제 시간과 비교해서 2배 느리게 경과한다. timeScale이 0으로 설정되는 경우에는 일반적으로 프레임 비율(framerate)과 독립적으로, 모든 기능을 일시 정지한다. 예를 들어 타이머가 가고있는 인게임에서 일시 정지 버튼을 누..
💪 GOAL 유니티 프로젝트로 작업할 때 생성되는 .meta 파일에 대해서 이해한다. 유니티의 내부처리(Behind the Scenes) 에 대해서 이해한다. 프로젝트에서 사용할 CountSlot이라는 프리팹을 생성 후 인스펙터에서 사용할 목적에 맞게 Deactive 오브젝트는 Image 컴포넌트에 Source Image와 Color 값을 변경해주었다. 그림 1 프리팹이 위치한 익스플로러 창을 띄워보았다. 그림 2 폴더를 확인해보면 PREFAB 파일과 META 파일이 같이 생성된 것을 확인할 수 있다. 여기서 이 META 파일은 무엇일까? 🔶 유니티의 메타(meta) 파일 Asset을 식별할 수 있게 하는 값과 그 Asset에 대한 설정 값 등을 저장하는 파일. 그림 1을 예로 들면 Deactive 오브..