유니티 [Unity] 타게팅 락온 저번 포스트에서는 마우스를 적 위에 올렸을 때 평소와는 다른 커서가 나오도록 설정했다. 이번 포스트에서는 적을 클릭했을 때의 행동을 정하도록 한다. 땅을 처음 클릭하고 마우스를 누르고 있는 상태에서 포인터를 움직이면 캐릭터가 포인터를 따라 움직여야 한다. 하지만 적을 처음 클릭했다면 마우스를 누르며 포인터를 움직여도 플레이어는 적에게 가도록 하고 싶다. 그러기 위해 먼저 코드를 수정해야 한다... 유니티MMO_UnityMMO_Unity [Unity] 적 생성 및 스탯, 마우스 커서 위 에셋을 적으로 사용했다. 위 에셋을 커서로 사용했다. 적과 플레이어의 전투를 위해 스탯을 관리하는 스크립트를 생성하도록 한다. 이제는 게임 내에서 적군을 클릭하거나 적군 위에 마우스를 올렸을 때의 경우를 따로 처리하고 싶다. 이를 위해 적군의 Layer를 Monster로 설정해준다. 그리고 기존의 Wall 레이어를 편의를 위해 이름을 Ground로 변경해 주었다. 코드 수정에 앞서, 에셋... 유니티MMO_UnityMMO_Unity [Unity] 플레이어 이동에 애니메이션 적용 마우스 클릭을 통해서만 플레이어가 이동을 하도록 변경하였다. 동시에 마우스 버튼을 누르고 있을 때도 플레이어 이동이 가능하도록 if (evt == press) 문을 삭제하였다. 기존 PlayerController의 Update()에서 사용되던 코드를 세부적으로 나눠서 UpdateMoving, UpdateIdle, UpdateDie에서 실행되도록 하였다. (State 패턴) 따라서 _movet... MMO_Unity유니티MMO_Unity [Unity] PoolManager 유니티에서 성능 향상을 위해 게임 내에 객체를 생성할 때 일일히 프리팹을 가져와 인스턴스화 하는것은 성능에 부하가 심하게 된다. 따라서 처음에 게임을 시작할 때 여러 개의 객체를 생성한 뒤, 그 객체들을 비활성화 했다가 필요시에 활성화를 하는 방법으로 성능 부하를 줄일 수 있다. 스택을 사용해서 풀링할 오브젝트를 관리한다. 먼저 Pool이라는 클래스를 생성, 풀링과 관련된 함수들을 정의한 뒤... MMO_Unity유니티MMO_Unity [Unity] UI 자동화 앞선 게시글에서 말했듯이 UI를 툴 상에서 드래그&드롭으로 설정한다면 프로젝트 규모가 커질수록 단점이 많아지게 된다. 그렇기 때문에 UI를 코드 상에서 자동화 할 필요성이 있다. UI의 클릭과 드래그를 구분하기 위해 Define.cs에 UIEvent라는 enum을 추가했다. Bind()를 통해 UI의 정보를 저장, Get()을 통해 정보를 가져온다. AddUIEvent()를 통해 UI 이벤트... MMO_Unity유니티MMO_Unity [Unity] 인벤토리 만들기 UI_Base를 상속받아 사용하면서 override 된 init()을 사용한다. 기존 UI_Base에는 init()함수가 없었기 때문에 UI_Base 클래스를 추상 클래스로 변경하고 abstract init() 함수를 추가했다.... MMO_Unity유니티MMO_Unity [Unity] DataManager 게임 내에서 사용되는 데이터를 코드 안에 정의한다면 유지보수 측면에서 매우 불리해진다. (게임 내 수치를 변화하는 패치를 할 때마다 스토어에 새로 올려야 한다.) 따라서 수치 등을 Xml 혹은 Json 파일로 저장하고 코드로 불러오는 방식으로 게임 내 데이터를 관리하는 것이 유리하다. [Serializable]는 외부 파일에서 데이터를 가져올 때 작성해야한다. MakeDict() 함수 내에서... 유니티MMO_UnityMMO_Unity Unity 2D 2. Number Wizard 이름만 듣고 이게 뭐지 싶겠지만, 범위내의 숫자를 예측하고 그 값을 바탕으로 큰지, 작은지를 판단하여 맞추는 게임이다. Scripts 는 Scene을 불러오기위한 SceneLoader 스크립트와 게임플레이를 위한 NumberWizard 스크립트 2개가 존재하고 나머지 UI및 텍스트 디자인은 무료폰트 및 TextMeshPro를 통해 해결하였다. Higer, Lower 버튼이 눌러졌을 때, 그 ... 게임개발유니티게임개발 2D 플레이어 점프 구현 플레이어의 점프를 구현해보자 에셋은 골드메탈 에셋을 사용했다. 먼저 Update문에서 jumpCheck함수를 돌린다. jumpCount 변수를 이용해서(값 2) 2단 점프 이상은 하지 못하게 막을 것 이다. Raycast로 땅 체크 AddForce 특성상 힘을 가하면 계속 쭉쭉쭉쭉 가해지기 때문에 중간에 진정(?) 시키지 않으면 총알보다 빠른 속도로 슝 지붕 킥 할 수 있다. 이를 막기 위해... 유니티유니티 [Unity] 유니티 Life Cycle에 대해 알아보자! Awake() 게임 오브젝트 생성할때, 최초 실행 Start() 업데이트 시작 직전, 최초 실행 OnEnable() 게임 오브젝트가 활성화 되었을때, 최초 1회 실행이 아닌 켜고 끄고 할때마다 실행 FixedUpdate() 물리 연산 업데이트, 유니티 엔진이 물리연산을 하기전에 실행되는 함수, CPU 많이 사용, 1초에약 50회 호출 Update() 게임 로직 업데이트, 물리연산에 관련된 로... 유니티유니티
[Unity] 타게팅 락온 저번 포스트에서는 마우스를 적 위에 올렸을 때 평소와는 다른 커서가 나오도록 설정했다. 이번 포스트에서는 적을 클릭했을 때의 행동을 정하도록 한다. 땅을 처음 클릭하고 마우스를 누르고 있는 상태에서 포인터를 움직이면 캐릭터가 포인터를 따라 움직여야 한다. 하지만 적을 처음 클릭했다면 마우스를 누르며 포인터를 움직여도 플레이어는 적에게 가도록 하고 싶다. 그러기 위해 먼저 코드를 수정해야 한다... 유니티MMO_UnityMMO_Unity [Unity] 적 생성 및 스탯, 마우스 커서 위 에셋을 적으로 사용했다. 위 에셋을 커서로 사용했다. 적과 플레이어의 전투를 위해 스탯을 관리하는 스크립트를 생성하도록 한다. 이제는 게임 내에서 적군을 클릭하거나 적군 위에 마우스를 올렸을 때의 경우를 따로 처리하고 싶다. 이를 위해 적군의 Layer를 Monster로 설정해준다. 그리고 기존의 Wall 레이어를 편의를 위해 이름을 Ground로 변경해 주었다. 코드 수정에 앞서, 에셋... 유니티MMO_UnityMMO_Unity [Unity] 플레이어 이동에 애니메이션 적용 마우스 클릭을 통해서만 플레이어가 이동을 하도록 변경하였다. 동시에 마우스 버튼을 누르고 있을 때도 플레이어 이동이 가능하도록 if (evt == press) 문을 삭제하였다. 기존 PlayerController의 Update()에서 사용되던 코드를 세부적으로 나눠서 UpdateMoving, UpdateIdle, UpdateDie에서 실행되도록 하였다. (State 패턴) 따라서 _movet... MMO_Unity유니티MMO_Unity [Unity] PoolManager 유니티에서 성능 향상을 위해 게임 내에 객체를 생성할 때 일일히 프리팹을 가져와 인스턴스화 하는것은 성능에 부하가 심하게 된다. 따라서 처음에 게임을 시작할 때 여러 개의 객체를 생성한 뒤, 그 객체들을 비활성화 했다가 필요시에 활성화를 하는 방법으로 성능 부하를 줄일 수 있다. 스택을 사용해서 풀링할 오브젝트를 관리한다. 먼저 Pool이라는 클래스를 생성, 풀링과 관련된 함수들을 정의한 뒤... MMO_Unity유니티MMO_Unity [Unity] UI 자동화 앞선 게시글에서 말했듯이 UI를 툴 상에서 드래그&드롭으로 설정한다면 프로젝트 규모가 커질수록 단점이 많아지게 된다. 그렇기 때문에 UI를 코드 상에서 자동화 할 필요성이 있다. UI의 클릭과 드래그를 구분하기 위해 Define.cs에 UIEvent라는 enum을 추가했다. Bind()를 통해 UI의 정보를 저장, Get()을 통해 정보를 가져온다. AddUIEvent()를 통해 UI 이벤트... MMO_Unity유니티MMO_Unity [Unity] 인벤토리 만들기 UI_Base를 상속받아 사용하면서 override 된 init()을 사용한다. 기존 UI_Base에는 init()함수가 없었기 때문에 UI_Base 클래스를 추상 클래스로 변경하고 abstract init() 함수를 추가했다.... MMO_Unity유니티MMO_Unity [Unity] DataManager 게임 내에서 사용되는 데이터를 코드 안에 정의한다면 유지보수 측면에서 매우 불리해진다. (게임 내 수치를 변화하는 패치를 할 때마다 스토어에 새로 올려야 한다.) 따라서 수치 등을 Xml 혹은 Json 파일로 저장하고 코드로 불러오는 방식으로 게임 내 데이터를 관리하는 것이 유리하다. [Serializable]는 외부 파일에서 데이터를 가져올 때 작성해야한다. MakeDict() 함수 내에서... 유니티MMO_UnityMMO_Unity Unity 2D 2. Number Wizard 이름만 듣고 이게 뭐지 싶겠지만, 범위내의 숫자를 예측하고 그 값을 바탕으로 큰지, 작은지를 판단하여 맞추는 게임이다. Scripts 는 Scene을 불러오기위한 SceneLoader 스크립트와 게임플레이를 위한 NumberWizard 스크립트 2개가 존재하고 나머지 UI및 텍스트 디자인은 무료폰트 및 TextMeshPro를 통해 해결하였다. Higer, Lower 버튼이 눌러졌을 때, 그 ... 게임개발유니티게임개발 2D 플레이어 점프 구현 플레이어의 점프를 구현해보자 에셋은 골드메탈 에셋을 사용했다. 먼저 Update문에서 jumpCheck함수를 돌린다. jumpCount 변수를 이용해서(값 2) 2단 점프 이상은 하지 못하게 막을 것 이다. Raycast로 땅 체크 AddForce 특성상 힘을 가하면 계속 쭉쭉쭉쭉 가해지기 때문에 중간에 진정(?) 시키지 않으면 총알보다 빠른 속도로 슝 지붕 킥 할 수 있다. 이를 막기 위해... 유니티유니티 [Unity] 유니티 Life Cycle에 대해 알아보자! Awake() 게임 오브젝트 생성할때, 최초 실행 Start() 업데이트 시작 직전, 최초 실행 OnEnable() 게임 오브젝트가 활성화 되었을때, 최초 1회 실행이 아닌 켜고 끄고 할때마다 실행 FixedUpdate() 물리 연산 업데이트, 유니티 엔진이 물리연산을 하기전에 실행되는 함수, CPU 많이 사용, 1초에약 50회 호출 Update() 게임 로직 업데이트, 물리연산에 관련된 로... 유니티유니티