본문 바로가기

IT/유니티

(29)
13. 유니티 교육 (Sebastian Lague 강의3) 1. 벽돌피하기 게임 스크립트 위주로 설명하겠다.우선 5개의 스크립트가 필요하다. playercontroller: 플레이어를 컨트롤하기 위한 스크립트fallingBlock: 블럭제어를 위한 스크립트spawner: 블럭을 생성을 제어하는 스크립트difficulty: 난이도 조절을 위한 스크립트gameOver: 게임오버와 재시작을 위한 스크립트 설명과 팁은 스크립트 아래를 참조 playercontroller.cs using UnityEngine;using System.Collections;using System; public class PlayerController : MonoBehaviour { public float speed = 7; //하드코딩하는건 정말 좋지 않다. float screenHalfWi..
12. 유니티 교육 (Sebastian Lague 강의2) 1. Prefab, Instantiate 항상 느끼는 거지만, 잘하는것과 잘 가르키는것은 다른거 같다.아무리 많은 것을 알고 있어도, 가르치는것이 서툰 이가 있는가 하면, 자신이 아는 것보다도 더 잘 가르치는 이가 있기도 하다. 결국 누군가를 가르치는 것은 높은 수준의 커뮤니케이션 스킬이라고 할수 있지 않을까?쩝..왜 이런말을 하냐면, 이전 지미 강의가 끝나고 세바스찬 강의를 듣고 있는데, 어쩜 이렇게 귀에 쏙쏙 들어오게 잘 가르치는게 너무 이뻐죽겠다. 강의 하나만 들어도 정말 궁금하던것들이 싹다 풀리는 느낌이다.우리 세바스찬 최고! 오늘은 유니티의 가장 중요한 포인트라고 할수 있는Prefab이다. 몇년전부터 유니티에 관심이 있었을때, 유니티책이나 강의을 좀 보면 맨날 prefab...prefab하곤 했..
11. 유니티 교육 (Sebastian Lague 강의1) 1. 벡터 벡터를 모르고 게임을 만든다고 하면, 그건 거짓말이라고 할수 있다.물론 단순한 게임은 만들수 있겠지만, 아직가지 세계를 구성하는 힘이 무엇인지는 정확히 알수 없지만,게임에서 벡터란 모든 힘의 근원이다. 결국 이걸 모르면 안것도 안되는것이다.무생물을 생물로 바꿔줄수 있는 마법과 같은 힘! 바로 벡터이다. 학교때 배운 백터는 단순히 x와 y좌표를 가지고 있는거 처럼 보였다.하지만 단순히 좌표만을 의미하지 않는다.위치와 힘을 가질수 있다. 밑에 그림을 보면플레이어와 적의 위치를 표현했다. 게임에서 당연히 구현되는것이 적이 플레이어를 향해서 공격하는 것이다.그럼 과연 적은 플레이어가 어디에 있는지 알고, 어느 방향으로 쏴야 하는지 알수 있을까? 결국 벡터를 이용하면 된다.플레이어의 위치에서 적의 위치..
10. 유니티 교육 (유니티 기본5, Jimmy Vegas 끝) 1. Bloom과 SunShafts 지난번에시작퀘스트 완료까지 해보았다.이젠 기본적인것은 다 한거 같고, 게임을 더욱 멋지게 만들어주는 effect에 대해서 알아보자.애셋에서 Import Package->Effects를 클릭하면 유니티의 기본 이펙트를 받을수 있다.여기에서 Bloom을 검색해보면 여러개의 파일이 나오는데,단순히 bloom이라는 c#스크립트를 캐릭터에다가 드레그하면!바로 뽀샤시효과를 구현할수있다.inspector에보면 여러가지 조절할수 있으니까 만저보면된다.참 쉽게 된다..ㅠㅠ 그리고 이 bloom과 같이 하면 더 멋진 연출을 할수 있는 효과가 있다.그것은 바로 SunShafts로, 영어뜻 그대로 햇살효과를 준다.bloom으로 뽀샤시해지고, 그위로 해살이 반작반짝 비추게하면 참 따뜻한 느낌..
9. 유니티 교육 (유니티 기본4) 1. C#은 힘들어. 지난번 가지 퀘스트 시작과 활성 그리고 완료 까지 해보았는데, 문제는 퀘스트를 성공했을때 성공 메세지가 나와야 하는데 나오지 않았다.그이유는 WaitForSeconds였다.자바스크립트에서는 그냥 같다쓰면 바로 되는것이 C#에서는 따로 함수를 만들어서 해줘야했기때문이다.즉, 자바랑 c랑 문법이 달랐다는 이야기인데,문제는 유니티공홈에 있는 대로 따로 함수를 만들어서 해도 되지 않는것이 문제였다.아무리 해도 안되고, 구글링을 해도 결국 공홈이랑 똑같이 이야기만 하고...그러던 중 결국 구글링해서 답을 발견할수 있었다.C#에서 WaitForSeconds를 하기 위해서는 메소드를 따로 만들고, 그 메소드를 coroutine으로 호출해야 한다. 여기서 coroutine은 다중쓰레드를 이야기하는..
8. 유니티 교육 (유니티 기본3) 1. 무기를 만들고 공격하자 지난번까지는 환경을 만들어 보았다.동전도 먹고, 불도 만들어서 캠프파어도 만들고!그럼 이번에는 무기를 만들어서 공격동작을 만들어 보자.결국 몹들을 때려죽이는게 게임의 기본아니겠는가..ㅋㅋ 무기는 애셋스토어에서 다운받을수도 있겠지만, 우리는 간단하게 실런더를 이용해서작은 봉을 만들어 보았다.여기서 중요한것은 실린더로 봉을 만들고 이것을 반드시 FirstPersonCharater의 자식으로 넣어두어야 한다.나도 강의를 들으면서 알게됬지만, 각 객체의 좌표는 결국 부모를 기준으로 좌표를 잡는거 같다.봉이 1인칭캐릭터를 부모로 가지게되면, z값만 조금 조정하여서 무기가 앞에 있는거 처럼 나들수 있다.(보통의 일인칭게임처럼) 봉이 완성되면! 애니메이션을 만들면된다.애니메이션은 전에도 ..
7. 유니티 교육 (유니티 기본2) 1. 외부객체 사용하기 유니티를 하다보면, 외부 3D객체를 사용하고싶을때가 있는데,아주 간단하게 사용할수있다. 3DMax나 Maya로 만든 객체를 추출한후 그냥 유니티의 애셋에다가 카피하면 바로 사용할수 있다.하지만 객치를 그저 객체일뿐이니가 충동체크라든지 이외의 현상은 직접 수정해주어야 한다. 간단하게 만들어보면,우선 강을 만든다. 강은 지형을 전체적으로 높인후, 강이 갈 길만 shift를 누르고 클릭해서 낮쳐준다.그런후 기본 애셋에서 물을 선택히 추가해주면 마치 강처럼 보이게 만들수 있다. 그리고 그 강위에 3DMax로 만든 다리를 가져다 놓으면 보기에는 완벽해보이나,직접 캐릭터를 조정해서 움직여보면 물리현상이 들어가 있지 않다. 외부객체에 물리현상을 구현시키는방법은 아주 쉽다.외부객체를 클릭후 in..
6. 유니티 교육 (유니티 기본) 1. 유니티 기본정리 유니티뿐만이 아니라 어떤 툴이든지 편하게 사용하려고 가장 중요한것이 아마도 단축키라고 할수있다.예전에 군대에서 전산병으로 근무했을때 아직도 기억하는것이, 자대 배치받고 멍하니 있으니까선임병이 엑셀과 한글 단축키 목록을 가져오더니 이번주까지 다 못외오면 죽는다고 협박했던 기억이 떠오른다.하...정말 힘들었지만, 한 1년넘게 하다보니까 내스스로도 무슨 엑셀과 한글의 신이 된거 같은 느낌이 들었다..ㅋㅋ이와 같이 어떤 툴에 익숙해지는게 가장 중요한것은 바로 단축키! 유니티도 역시 많은 단축키가 있지만, 가장 중요한 단축키에 대해서 알아보자! 가장 중요한 단축키는 아마도 q,w,e,r이라고 할수 있다. q는 환면이동으로, 마우스 왼쪽클릭하고 화면을 이동시킬수 있다. w는 객체이동이라고 할수..