본문 바로가기

Programming

Coroutin -1- 코루틴이 좋다는건 모두 아는데... 왜 좋은지????어떤게 동작하는지?????궁금하다가 결국 공부공부~~ 유니티에도 예약함수라는게 있다. Awake,Start,Update,OnEnable,OnDisable,LateUpdate,FixedUpdate,OnRenderObject..등등 이중에 Update,OnEnable에서는 사용 불가능. 일반적인 의미로는 진입 지점이 여러개인 함수 서브루틴(SubRoutine) - 진입 지점이 하나인 함수,함수 선언 부분에서 진입함. - return구문으로 반환되면 다시 처음부터 집입해야함. 코루틴 - 진입 지점이 여러개인 함수 - yield return 구문으로 반환되고 다시 들어올수있음. 이라고는 되어있지만 뭔말인지???? 이해만 된다면 난 신이 될수도..... 유니티에.. 더보기
[팀 프로젝트]Ani,Effect,AttackCollider연동 Mecanim을 이용하여 애니메이션을 구현했을경우 최대 장점으로 생각되는건 애니메이션 동작중간에 함수를 호출이 가능하다는 점이다. 공격 애니메이션도중 타격확정을 지을수있는 부분을 내가 설정하기 편하다. 가격 모션에서 Events로 함수 호출을 추가할수있다. 이렇게되면 동작의 똑같은 부분에서 문제없이 함수를 호출할수있다. 이렇게 호출된 함수는 다음과 같이 사용할수있다. Player에서 던진 Data값을 받아 공격이 일어난 곳의 좌표와 데미지 이펙트등을 호출할수잇게 구현 이곳도 마찮가지로 이미 콜리더를 maxCount만큼 생성해놓고 재활용하자. 참고로 이미 생성해놓고 사용하는 Full Memory Stack방식과 사용할때마다 Instance해서 사용하는 방법이 있는데 FullMemoryStack은 Stack.. 더보기
[팀 프로젝트]EffectManager제작 이펙트의 타입과,좌표값을 Data화 시킴 이펙트 종류를 enum으로 설정 MakeEffect로 받아온 매개변수의 값을 이용하여 생성할수있게 참고로 재활용할수있게 이펙트는 처음에 각각 20개씩 만들어놓고난다음 SetActive를 이용하여 켰다 껐다할수있게 제작 더보기
[팀 프로젝트]캐릭터 애니메이션 연동 캐릭터에서 선언된 값들 초기화 시켜준다. 추후 더 많은 기능을 추가해야될곳을 미리 주석처리해서 넣을수있도록 확보한다. 캐릭터에서 NavMeshAgent를 사용할수잇게 선언해준다. 기본상태는 Idle로 해준다. stateMove는 평소에는 모두 이동가능하지만 공격,스킬활용시 이동불가 상태로 만들기 위한 값 기본적으로 Navi랑 이동상태,키입력은 계속 업뎃 시켜줍니다. 키 입력에 따라 캐릭터 애니메이션을 동작시켜줍니다. Anicontrol스크립에 SetAni()함수에 Sendmessage로 던져줍니다. 참고로 gameObject로 받아와서 함수에 직접접근하는 방법도 있지만 SendMessage가 비용이 쌉니다 적극 활용합시다. 앞에 anicontrol스크립에서 볼수있듯이 enum으로 선언되어잇는 이름을 던져.. 더보기
[팀 프로젝트]AniMation 클래스화 일단 여러 경우를 생각하여 계획에 나와있는 모든걸 함수로 만들어놓는것이 좋습니다. 애니메이션의 동작 유무 상태를 확인하기위해 Bool Change 생성 전 애니메이션을 알기위해 string PrevAniState 동작시킬 Animator Ani생성 ResetAni()는 애니메이션을 초기화 시키고 AniState상태를Idle로 바꾸기 위한 함수. CounterAttackAni() 는 공격 받고있는상황이라도 동작을 끊고 공격하기위한 함수 Change_of_Down()은 그로기 상태를 만들기위한 한수 MakeCollider()추후 타격관련 판정을 내리기 위한 함수.~ 더보기
[팀 프로젝트]Mecanim 원래는 다운받은 캐릭터의 Animation을 사용할려고 했으나. 유니티 5부터는 Animation이 없어지고 Animator로 통일되었습니다. 그래서 우리도 Animation이 아닌 Animator로 작업하기로 결정하고 Mecanim을 제작하기로~~ 일단 구분은 한번만 실행 반복 실행 한번 실행하고 끝 기준으로 작업. Factory를 이용하여 쉽게 구분 Attack경우 위와같이 Mecanim을 구성하였습니다. 우리의경우 모델러나 애니메이터가 없는관계로 동작수정을 할수는 없지만 최대한 있는걸 활용하여 제작하였을을 알려드립니다. 기본적으로 모든 동작후에 Idle상태로 대기하는걸 기준으로 Run 같은경우는 Bool값이 false로 바뀌기전에는 Loop시켰습니다. 그리고 애니메이터가 잘못 작업한지는 모르겠지만... 더보기
[팀 프로젝트]Nav Mesh Agent 2 어제의 실패를 뒤로 하고 새로운 방법으로.ㅎ.. 귀찮지만 Navi Mesh 에 적용할 콜리더 박스를 만들어주는것.. 일단 모두 Static을 해지후 collider Box를 만들어줍니다. 충돌이아닌 단순 이동 가능한 길을 만들어주기위하여. 그냥 박스와원통을 이용하여 이동 못하게 할 부분만 감싸 줬습니다..무식하지만. 그리고 다시 Navi Mesh를 굽습니다... 두둥~~~~~~~~~~~~~~~ 깔끔히 뽑혔고... 휴대폰 테스트결과 70FPS를 유지했습니다..... 성공~~~~~ 더보기
[팀 프로젝트]Nav Mesh Agent 원래 계획은 Rotate와 Gravity 함수를 구현하여 캐릭터를 이동시킬 계획이였으나, 공부를 하던중 중력값 구현을위해 끊임없이 캐릭터들이 Raycast를 쏘는것이 비효율적이라는걸 알게 된후 회의끝에 Nav Mesh Agent를 이용하기로했습니다. Nav Mesh Agent란.. 최단거리 이동을 위해 A*알고리즘을 구현하여 사용해야하고 이동속도 회전값 가속도등을 다 구현해줘야하지만... Nav Mesh Agent를 이용하면 이것들을 아주 손쉽게 구현할수있습니다. 사용할 캐릭터에 Add Component에서 Nav Mesh Agent를 추가하면. 이런게 뜹니다. Agent radius 에이전트의 반지름 (pathfinding을 목적으로만 사용되며, 실제 오브젝트와는 다를 수 있고 일반적으로 더 큽니다)... 더보기
[팀 프로젝트]지형 만들기2 캐릭터가 기본적인 물약이나 장비들을 사고팔수있게 원형 마을 제작 Potal을 이용하여 필드로 드나들수있게 Potal제작 마을 전체 화면. 필드역시 Potal로 마을을 드나들수있는 Potal제작 필드에 상징적인 지역제작은 쎈쓰~ 간단한 무덤 제작 필드 하쪽에 던전으로 이동가능한 무덤 제작 무덤으로 이동가능한 Potal제작 다음 필드로 이동가능한 Potal제작 작업기간이 짧은만큼 최대한 주요기능구현을 위한 터레인 제작 작업하면서 느꼈지만 에셋스토어에있는 에셋들을 잘 활용하기만 하면되지만.... 문제는 에셋을 제작하여 올리는 사람중에 모바일에 최적화가 안된 PC기반의 모델링이 다수 존재한다는걸 알게됨.. 하지만 난 모델러가 아니여서 이것저것 가릴여유없이 사용하였지만 현직에서는 주의를 당부해야될 사항이다. 하이.. 더보기
[팀 프로젝트]지형 만들기 Terrain 을 이용하여 지형만들기. Map Size 512*512 마을 1 필드 1 -일반 사냥터 - 던전으로 이동하기위한 포털 - 마을로 이동하기 위한 포털 최대한 퀄리티높은 마을과 필드를 만드는 대신 가볍게.....(먼 개솔??) 모바일 기기기종 갤럭시 노트3 - 지금 당장은 고사양의 휴대폰이지만 완성될때는 보편화된 모델이 될꺼라는 믿음?? FPS 는 55이상을 유지 - 그럼 어떻게 퍼포먼스를 배분할것인가??? - 어쩔수없음...그동안 실무에서 쌓아온 경험으로 때려잡기...ㅜㅜ이것또한 경험일수있으니... -DrawCall은 배경 50.캐릭,20,UI,Effect 각각 15%정도.유지할수있게. Camera Fov값은 45,30 중 선택 리소스는 DDS DTX버젼으로 작업 Terrain작업시 타일 텍.. 더보기