본문 바로가기

IT/유니티

(29)
19. 유니티 교육 (Sebastian Lague 강의-2DRunner #1) 1. 2D Platform을 만들어 보자 한2주를 공부하고 유니티로 2D겜을 만들라고 해보니까 아무래도 내맘 대로 잘 안됐다.왜 이렇게 어렵지? 라고 생각한후 다시 우리의 선상님 세바스찬의 강의를 보기로 했다. 딱 2개의 강의만 듣고 역시 난 코딩은 안하는게 낫다라는 자괴감이 들정도로 잘못된 길을 가고 있었고,세바스찬의 방식은 정말 멋지다고 느껴질정도로 깨끗하고 빈틈없는 코드을 보여주었다. 충돌체크를 단순히 유니티의 rigidBody를 이용하는게 아니라 조금더 정밀하게 따로 설정해주었다.수직과 수평으로 여러개의 레이저로 충돌체크하고,점프높이과 최고점 도달시간을 이용해서 중력과 점프속도를 계산하는 것이 너무 인상적이였다. 이번에도 수학의 힘은 위대하다라는 당연한 결과에 도달했다. 소스코드는 다음과 같다. ..
18. 유니티 교육 (Sebastian Lague 강의-3DShooter #5) 1. Particle Death Effect 적이 죽을때 그냥 띵! 하고 사라지면 재미있을까?엄청 별루 일것이다.밑의 그림처럼 파티클들이 분산하면서 없어진다면 엄청 멋있을거 같다.첨에는 뭔가 엄청난 코딩이 필요할줄 알았는데, 그냥 파티클 시스템을 이용하면 간단히 만들수 있다. 게임 오브젝트의 파티클시스템을 선택하고 인스펙터를 확인하면 다음과 같다. Renderer항목에서 모드는 메쉬, 메쉬는 큐브로 그리고 메터리얼은 적당한것으로 바꾼다.그리고 이 파티클들이 방해물이나 주위환경에 반응하기 위해서 Collision항목을 선택후World로 선택, 그리고 Collides With항목에서 바닥과 방해물만 레이어를 만든후 추가시켜준다.만약 everything을 선택하면 코스트가 높아질 우려가 있기때문에 필요한것들하..
17. 유니티 교육 (Sebastian Lague 강의-3DShooter #4) 1. Map Navigation 지난번까지는 타일도 만들고 방해물도 만들어 보았다.이제는 거의 맵의 형태를 가지고 있다고 할수 있다. 하지만 겉모습은 맵처럼 보이지만문제는 실제로 이 맵이 맵으로써 역활을 할수 있냐라는 것이다.맵으로써의 역활이란, 갈수 있는 곳과 가지 못하는 곳을 나누는 것이 가장 기본이라고 할수 있을것이다.만약 유니티나 게임 엔진을 이용하지 않는다면, 아마도 귀찮고 번거러운 작업이 될거라고 생각하지만,게임엔진들은 기본적으로 이런 기능을 제공한다. 지난시간에 사용해본 Navigation과 NavMeshAgent를 이용하면 쉽게 해결할수 있다. 지금까지 만든 맵위에 Quad를 하나 만들고 Box Collider를 삭제해준다.우리는 어짜피 Mesh Renderer를 이용해서 Navigatio..
16. 유니티 교육 (Sebastian Lague 강의-3DShooter #3) 1. Tile Map 오늘은 타일 맵을 만들어 보자.우선 타일이 될 Quad를 하나 준비한다. Quad는 얼핏보면 Plane과 비슷하지만 Quad는 한쪽 면만 보이기 때문에 코스트가 적다.아무튼 이 Quad를 Prefab으로 저장해 놓는다. 그리고 빈객체를 만들고 Map이라고 정한다. 이 Map객체에 MapGenerator스크립트는 넣어준다.스크립트 소스를 보자. MapGenerater.csusing UnityEngine;using System.Collections; public class MapGenerator : MonoBehaviour { //Prefab를 지정하기 위해서 Public으로 public Transform tilePrefab; //지도의 크기를 결정 public Vector2 mapSi..
팁. Visual studio 2015 단축키 (C# 개발자 모드) F9 : Break Point 추가 / 제거F10 : Line breakF10 + CTRL : 모두 Break.F11 : method 안으로 들어감. CTRL + K + K : Bookmark 추가 / 제거CTRL + N : 다음 Bookmark로 이동CTRL + L : Bookmark 초기화 CTRL + K + F : 들여쓰기 맞추기. F7 (Form에서) : Form의 cs로 이동. F12 : 해당 코드의 구현부로 이동. CTRL + R + E : Create porperty (매우 더럽게 생성됨. WPF처럼 DataBinding에 사용할게 아니라면 개인적으로 쓰진 않음.)CTRL + R + M : Extract MethodCTRL + R + O : Modify Signature (순서, 삭제 가능)
유니티 기본 문법 설명 1. MonoBehaviour 모든 스크립트가 상속받는 기본 클래스입니다. (Javascript 는 무조건 MonoBehaviour 를 상속받고 C#, Boo 의 경우 명시적으로 상속받아야 합니다. C#, Boo 에서 단순 데이터 보관용 클래스, 전역으로 동작하는 매니저 클래스같은 건 상속받지 않고 쓸 수 있습니다.) MonoBehaviour 는 Behaviour 클래스를 상속받고 Behaviour 는 Component 를 상속받습니다. 즉 MonoBehaviour 를 상속받은 클래스는 게임 오브젝트에 component 로 붙일 수 있다는 뜻입니다.(붙일 수 있다는 건 모두 알고 계시죠? ㅎㅎ) Behaviour 클래스는 enable/disable 가능합니다. 때문에 MonoBehaviour 도 역시 켜..
15. 유니티 교육 (Sebastian Lague 강의-3DShooter #2) 1. Damage System 플레이어, 적, 총, 총알등을 만들었다.총으로 총알을 쏘았고, 그 총알이 적들과 충돌체크를 하기도 했다.그럼 그다음은 무엇일까?그렇다 바로 피해 즉 데이지 시스템을 적용해보도록 하자. 베토벤의 재능을 시기한 살리에르의 기분처럼 세바스찬의 강의를 들으면 한없이 작아지는 스스로를 느낄수 있다.RPG겜도 액션겜도 만들어 보았는데, 역시나 인디이고 혼자만들어서 그런지, 만드는데만 급급했고, 답답함을 느꼈는데, 세바스찬의 강의를 들으면서 뭔가 뻥뚤린 기분을 느낄수 있었다. 적이나 플레이어는 무생물이기 보다는 생물에 가깝다. 게임이라는 세계에서는!예전에 DB설계했을대 배웠던게 많이 생각난다. 비슷한 속성을 가진 이들을 묶는것이 어쩌면 객체지향의 기본이라고 할수 있을것이다.프로그래밍적으..
14. 유니티 교육 (Sebastian Lague 강의-3DShooter #1) 1. 총쌈겜 만들기 시작 지난번에 2D로 단순한 피하기 게임을 만들었다.이번에는 3D를 이용한 총싸움 게임을 만들어 보자.다음 이미지와 같은 식으로~~ 2. 플레이어 우리의 주인공을 만들어 보자.어떻게 보면 이겜은 좀비박멸겜과 같을수 있을것이다.다만 메트리얼이나 모델링이 없어서 단순해 보일수도 있지만.. 플레이어는 간단히 캡슐로 만들어 놓는다.그리고 플레이어에 관한 스크립트 2개를 만들어 보자. Player.csusing UnityEngine;using System.Collections; //이 스립트를 오브젝트에 붙이면 playerController스립트도 같이 가서 붙는다.//이 스크립트가 지우지 않는한 playerController는 지울수 없다.[RequireComponent (typeof(Pla..