프로그래밍 160

씬 변경하기, 타이틀

2015.08.24. 21:34 게임 시작 씬을 추가해볼거다! 만들고 있는 게임의 project 내에서 new Scene으로 씬을 추가한다. 이후 save Scene으로 저장. 이름은 Start 로 해야지. 이제 시작 씬을 만들어보자. 카메라의 옵션을 아래와같이 바꾼다. 버튼에 들어갈 스크립트.LoadLevel(" ") 의 괄호 안에는 버튼을 눌렀을때 불러올 씬 이름을 넣으면 된다.LoadLevel("불러올 씬 이름"); 크립트 작성후 스크립트를 버튼에 넣어주고 이후는 2_1과 같다. 위처럼 괄호 안에 씬 이름을 쓰거나,Build Setting의 오른쪽에 있는 각 씬의 번호를 써주어도 된다. 튼의 OnClick 까지 마쳤으면,File - BuildSetting 에 들어가서 Add Current를 누른다...

3D 캐릭터를 가져올 때 알아야 할 기본지식(Legacy / Humanoid)

2016.01.27. 18:24 유니티에서 3D캐릭터를 사용하려면 3ds Max나 Maya 등의 3D 프로그램을 통해서 제작된 FBX 파일을 사용. 이 FBX파일은 3D캐릭터의 외형을 만드는 모델링(Modelling)과 맵핑(Mapping), 완성된 모델링에 관절을 심는 리깅(Rigging), 리깅된 캐릭터를 이용해서 다양한 애니메이션을 제작하는 애니메틱(Animatic) 작업의 데이터 가 들어있는 파일이라고 할수 있다. 유니티에서는 FBX포맷의 캐릭터를 불러올 때 리깅 과정에서 세팅한 관절을 읽어온다. 관절을 읽어오는 방식에서 2가지로 나누어 사용하는데요, Legacy와 Humanoid 방식. Legacy 방식 캐릭터를 제작할 때 사용했던 기본적인 관절구조를 그대로 사용하는 가장 기본적인 방식. 메카님..

일시정지버튼

2015.08.24. 21:20 먼저 GameObject - Ui - Button 으로 버튼을 추가! 버튼 이름은 Pause로 해주었다. 약 버튼 이미지를 바꾸고 싶으면Image - Source Image 옆의 동그란 버튼을 누르면 선택할수 있는 이미지들이 나온다.단, 이미지는 sprite로 바꿔주어야 한다! Time.timeScale = 1 정상속도 플레이Time.timeScale = 0 정지Time.timeScale = 0.5 느리게Time.timeScale =2 2배속도 스크립트는 아래와같다.한번 누르면 timeScale 을 0으로 주어 정지, 한번 더 누르면 1로 주고 다시 플레이 하도록 했다. 작성한 스크립트를 버튼 pause에 넣어주고, +를 눌러 추가후 object에는 pause를 드래그해서..

defence2_1) tower 범위 지정, 공격, raycast 이용한 타워 설치하기

2015.08.19. 20:16 타워대신 슬라임!.. 뭔가 이게더 마음에들어서 ㅋㅋ 타워에 add component - physics - Sphere Collider를 추가해주면 위에 슬라임처럼주위에 구체가 생긴다. 사각형의 collider와 기능은 같음.Rigidbody도 추가추가. IEnumerator ..코루틴을 반복하기 위해 쓰는 Ienumerator 인터페이스 라고 알고있는데나중에 따로 포스팅해야겠다. Trigger범위 안에 들어가면 Fire.클릭시 RayCast로 마우스클릭 위치를 지정하고raycast범위면서 자식오브젝트가 0개일때 타워가 세워진다.

defence2_0) terrain_map, wayPoint, enemy 이동

2015.08.19. 15:31 terrain을 이용해서 설원 지형을 만들었다. defence게임이라 길은 대충 구불구불 파줬음 ;ㅅ; 빨간색 tag는 빈 오브젝트로 만들어준 wayPoint로 커브일수록 좀더 촘촘히 놓으면된다. 맨 처음 target을 wayPoint 0로 바꿔준 후, LookAt으로 타겟 방향을 바라보게하고 이동.타겟과 enemy의 거리가 일정 이하로 떨어지면 다음 타겟을 찾는데, wayPoint에 index를 올려 다음 wayPoint 1을 찾는다 이하반복!

myRPG_8) monster 죽는 동작, 죽게하기

2015.09.14. 15:09 몬스터 hp바도 있고 피도 까이니까 이제 죽게하자. 그냥 SetState만 넣으면 죽는동작이 계속 실행되어서 벌떡 일어났다가 다시죽고를 반복한다. 한번 죽는 동작하고 그냥 죽어있게끔, 죽은상태일때 때린다고 공격하는 일이 생기지 않게 해야지. state에 DEAD를 추가해주었다. setState에도 DEAD를 추가한후 DeadState라는 함수로 연결을 해주었다. 그리고 죽은 도중에 공격하거나 걸어다니는 다른 동작을 하지 않게 현재 상태인 current가 DEAD면 return. update에는 hp가 0이하로 떨어졌을때 setState로 죽은상태로 만들어주었다. ... 저 death라는 시간은 왜넣은지 모르겠넹. 안쓴거같은데. Exp도 무시해도된다. characterAni..

myRPG_7) monster animation정리

2015.09.14. 14:52 이전에 animation 동작을 바로 ani.Crossfade로 넣어주었는데 동작들이 엉키더라. 움직이고 가만히 있는 두 동작이면 괜찮지만, 공격하고 죽고, 맞는 동작까지 넣으면 엉켜서 움직이지 않는 동작들이 꽤 있었다 ㅜㅜ enum State에 일단 사용할 상태들을 모조리 적어주고,현재상태인 current의 초기값으로 Wait상태를 넣어주었다 aniCrossFade대신 SetState로 상태를 바꾸어준다.기다리는 상태가 아니면 StartCoroutine. 코루틴에선 다른 동작들이 끝난후 wait상태로 바꾸게 했다.걷던 공격하던 그 후엔 가만히 있으니까. 그래서 각각의 State 안에는 코루틴TransState가 있음. 싹바뀌긴 했지만 달라진거라곤CrossFade를 Set..

일주일간 한 내용 정리

2015.09.12. 21:10 애초에 일주일 중 4일을 대강대강 해서- 3일간 밤새고 빡세게 하면서 내가 왜 4일을 대충했지 후회함 ;ㅅ;...... 3일 밤새고 2일 푹 쉬고 주말동안 지금까지 한 내용 정리후 월요일부터 빠르게 다시만들어볼꺼다. 모바일로 돌리려니 맵을 꾸미고 싶은대로 못꾸며서 아쉽아쉽..ㅜㅠ 뭐 해봤자 파는 맵의 반에반에반에반에반도 못쫓아가니까 그냥 큐브로 대강해놓고 나중에 맵 사서 바꾸는게 나을지두? *일단 한부분 -씬: 게임시작, 마을(메인), 사냥터별, 죽었을때 - UI : 옵션(일시정지, 음량조절, 메인으로), 게임종료버튼, 사냥터연결버튼, 캐릭터상태창), Hp바 - 조이스틱 -player: 조이스틱으로 동작/ani, 버튼눌렀을때 일반공격, skill버튼(힐, 강타), 속성(능..