목록창고/게임 제작 [시즌2] (12)
도드넷
게임 개발 일지#11 - 유니티 마우스 화면 카메라 움직임 시스템 #1 유니티 마우스 스크롤시 카메라 화면 확대 줌 하는 방법 if (Input.GetAxis("Mouse ScrollWheel") > 0f) // forward { Debug.Log("Scroll Push"); Current_Cam_Zoom_Speed = 0.10f; } else if (Input.GetAxis("Mouse ScrollWheel") < 0f) // backwards { Debug.Log("Scroll Drag"); Current_Cam_Zoom_Speed = -0.10f; } if (Current_Cam_Zoom_Speed != 0) { Current_Cam_Zoom_Speed = Current_Cam_Zoom_Speed ..
김프로 풀, 흙 그리는 팁필드 그리는 법 흙이나 풀 기본 색을 깐다. (녹색, 갈색..) 팬 도구 : 스폰지(Sponge 01)를 선택한다. [종횡비 -0.50] [각도 3.0] 이후 닷지-번으 혹은 직접 색을 좀 추가한다. 이후 문지르기 도구로 합쳐준다. 문지르기를 적게한경우 지저분한 모래형 흙지형을 만들수있었다. 약간 고운 느낌의 흙 필드 흙필드위에 연두색-녹색을 깔고 비벼준 잔디 풀 필드
You are my pony waifu :3 게임 개발 일지#10 - 유니티 체력바를 만들어보자 #1 체력바 만들기 체력바는 총 2개의 스프라이트로 구성된다 하나는 비어있는 체력바 하나는 차있는 체력바. 차있는 체력바의 크기를 조절함으로 체력 상태를 표시한다. 차있는 체력바는 세부적으로 1) 일반 2) 팔로우 3) 쉴드 로 나뉜다. 팔로우는 체력이 빠진것을 비주얼적으로 표시하는걸로 리그오브레전드에서 발견할 수 있다. 3D 공간에서 보면 이런모양이다. 차있는 체력바는 크기조절이 오른쪽에서 왼쪽으로 줄어들어야하므로 피봇이 왼쪽끝에 오도록 만든다. 스프라이트 피봇 설정은 부모 요소안에 넣고 위치를 조절하는 방법으로 만든다. #2 체력바가 캐릭터 머리위에 떠다니게 하기 사실상 자식요소로 만드는게 가장 쉬운 방법..
게임 개발 일지#9 - 유니티 2D 미사일 투사체 원거리 공격! #1 두점을 기준으로 스프라이트 회전시키기 float AngleRad = Mathf.Atan2(Shoot_Point.y - This_Projectile.transform.position.y, Shoot_Point.x - This_Projectile.transform.position.x); float AngleDeg = (180 / Mathf.PI) * AngleRad; this.transform.rotation = Quaternion.Euler(0, 0, AngleDeg); 두점 Shoot_Point 와 프로젝타일의 현재위치(This_Projectile.transform.position)를 기준으로 미사일 스프라이트를 회전시킴. 막 투사체가..
내사랑 애플잭 아처 ♥ 게임 개발 노트#8 - 유니티 공격 시스템 음 이제 공격할수있게 만들고싶다. #1 센서 스크립트 - 콜라이더 범위안에 유닛 레이어에 해당하는 다른 콜라이더가 들어가서 "충돌"을 일으키는 경우 범위안에 들어왔음을 알리는 센서 스크립트를 만들어보자. void OnTriggerEnter2D(Collider2D thiscoll) { if (thiscoll.gameObject.tag == "Unit") { This_Controller.Units_In_AttackRange.Add(thiscoll.gameObject); } } void OnTriggerExit2D(Collider2D thiscoll) { if (thiscoll.gameObject.tag == "Unit") { This_Cont..
게임 제작 일지#7 - 유니티 네비게이션 2D 패스 파인딩 길찾기!! Wunderbar! 드디어 해냈다! 네비게이션, 베이킹 맵핑, 유료 애드온이나 스크립트 없이 나만의 2D 패스파인딩 시스템 만들기! (물론 앞으로 버그등도 있을수 있겠지만 지금으로썬 완벽 그자체!) 애플잭 하고 결혼하게 해주세요!! >ㅂ 0) { // 현재 가상위치 설정! Vector3 CP = This_Transform.position; // 첫번째 충돌 물체 정의! The_First_OBS = Raycasted_Info[0].collider.gameObject; // 해당 콜라이더의 대체(Alternative) 위치 모두 가져오기! for (int N = 0; N < The_First_OBS.GetComponent().Alterna..
게임 제작 일지#6 - 유니티 네비게이션 길찾기 이동시스템! 공격 시스템을 만들려고 했는데 그전에 이동 시스템을 좀 바꿔야할것 같았다. 무언가에 막히면 그 자리에 걸려서 벽에 꼴아박고 이동하지를 못한다. 현재 유니티2D 특성상 패스파인딩에 네비를 사용할수도 없고 그렇다고 프로젝트를 엎고 3D를 적용할순없는 일이니 나름 야매로 만들어보자. 유니티 2D 네비게이션 :: Dod's 프로젝트 패스파인더 1부 - 유니티 Raycast 레이 케이트 Scope, cleaned and mounted! #1 레이캐스트 만드는 방법 Vector3 dir = (Destination - This_Transform.position).normalized; float distance = Vector3.Distance(This_Tr..
게임 제작 일지#5 - 유니티 캐릭터 재설계 스프라이트 랜더러는 함정이야. 공격 시스템 구상중 스프라이트 캐릭터에 치명적인 결함을 발견함. 바로 유니티 스프라이트 랜더러가 사용하는 Sorting Layer 인데 이걸 이용해서 바디파트 캐릭터를 제작할경우 다른 캐릭터와 레이어가 겹치거나 같은 레이어를 사용하는 캐릭터가 둘이상 존재할 경우 둘을 겹치거나 포개면 바디파트가 서로 관통되는 치명적인 비주얼 버그가 생김. 해결법은 현재 내가 알기로는 캐릭터 설계시 절대 Sorting Layer 를 사용하지않고 모두 같은 디폴트에 놓고 바디파트의 앞뒤는 포지션의 Z값을 수정함으로써 맞춰줌. Z값은 클수록 뒤로 가고 작을수록 앞으로 옴. 이런걸 도큐맨트에서는 standard depth-based sorting 하는것 ..
게임 제작 일지#4 - 유니티 애니메이션 만들기! 유닛을 선택하고 이동시킬 수 있으니 애니메이션을 만들차례다. #1 유니티 애니메이션 만들기 일단 캐릭터를 완벽히 구성해야한다. 중간에 수정할경우 애니메이션 위치등이 망가질수있기 때문이다. 애니메이션은 제작은 정말간단한데 게임 오브젝트를 누른뒤 애니메이션 패널에가서 Create 를 눌러주면된다. 그리고 녹음 버튼이 눌린 상태에서 만들어진 바디파트를 이동하고 돌리고 늘이고 줄여서 애니메이션을 만들면된다. #2 유니티 아이들 애니메이션 뛰는 애니메이션을 만들기전에 간단한 Idle 애니메이션부터 만들어야한다. 아이들은 보통 단순한 숨쉬는 애니메이션이면 되는데 그냥 몸이 아래로 내려갔다가 위로 올라오게만 해도 된다. 아이들 애니메이션은 3 키프레임 으로 구성된다...
게임 제작 일지#3 - 유니티 유닛을 이동시켜 보자! 유닛 선택은 했으니 이제 유닛을 이동시켜 보자! 유닛 명령은 플레이어 컨트롤 스크립트에서 우클릭 명령을 받으면 선택된 유닛에게 목적지와 이동명령을 하달하는 방식으로 작동된다. #1 유닛에 이동속도 넣기 This_Rigidbody.velocity = new Vector2(This_Stats.X_Speed, This_Stats.Y_Speed); 당연한 이야기지만 물리(속도)처리를 위한 리지드 바디 필요! #2 유닛 이동속도 설정하기 특별한 메소드는 필요없고 만약 목적지가 현재 유닛 위치보다 앞에있으면 + 속도를 뒤에있으면 - 속도를 넣어준다. 일부핵심만 보면, if (This_Transform.position.x - Destination.x 0.05) {..