본문 바로가기

Unity/Unity3D_Quater

(40)
Unity3D_Quater - 총알 발사 구현 #1. 원거리무기로 공격하기 - 총알 및 탄피 프리팹을 instate 및 destroy하는 방식으로 구현 1) 총알 만들기 - Trail Renderer 오브젝트(구 콜라이더, 리지드바디) - 프리팹 생성 2) 탄피 만들기 - 모델프리팹 오브젝트(박스콜라이더, 리지드바디) - 프리팹생성 3) 플레이어가 z키로 공격했을때 총알이 발사되고 탄피가 튕겨 나가서 아래로 떨어지고 탄피는 사라짐 - z키로 공격 : 플레이어 어택함수 - 오른팔을 들어올림 : shot애니메이션 실행 - 총알이 발사 : 총알 프리팹 생성 instate , 총알 프리팹 생성될 위치, 리지드바디 속력 또는 힘을 주어 일정방향으로 나아감 - 탄피가 튕겨 나가 : 탄피 프리팹 생성 instate, 탄피 프리팹 생성될 위치, 리지드 바디 랜덤속..
Unity3D_Quater - 근접공격이펙트, 근접공격 구현 1.Weapon 스크립트 작성(변수) *TrailRenderer 무기이펙트 스킬 - Weapon 스크립트 작성 후 플레이어의 오른팔에 비활성화 상태로 들어있는 무기오브젝트에 스크립트를 넣어주고 - 타입, 공격속도, 근접공격범위, 근접공격이펙트 변수를 public으로 선언하여 무기오브젝트중 망치 오브젝트의 인스펙터창에서 할당해준다 - 망치오브젝트에 박스콜라이더를 생성하여 자기 자신오브젝트를 public BoxCollider 변수에 드래그 앤 드랍한다 - 망치오브젝트 안에 자식 오브젝트로 *TrailRenderer(우클릭 ->create ->effect)를 생성하고 위치를 망치머리부분으 로 조정해준다 - width 그래프에서 우클릭으로 point를 생성하여 시간이 지날수록 이펙트가 좁아지도록 드래그하여 그래..
Unity3D_Quater - 아이템획득(체력, 코인 등) 및 폭탄소유 이펙트 1. 아이템을 획득 - 아이템을 획득하면 각 아이템이 가진 value만큼 아이템수량이 올라가고 최대아이템수량까지 정해주도록 코드 구현 *스위치문에서 item.tpye에 따른 case변화를 나타낼때 ITem.Type.Ammo 와 같은 방식으로 이넘클래스를 가져오는 스킬 2. 폭탄이 움직일때만 파티클 이벤트 주기 *1.파티클시스템 인스펙터의 Emission에서 기존 Rate Over Time을 0으로 하고 Rate Over Distance의 값을 늘려줌 2. simulation space를 기존 Local에서 World로 바꿔줌 (각 오브젝트의 매쉬하나 하나 설정해주어야함... 한번에 전체선택해서 바꾸면 한개만 바꿔짐 ㅠ) *스킬 : transform.RotateAround(기준위치, 회전축, 회전속도*Ti..
Unity3D_Quater - 애니메이션 동시재생(애니메이션 레이어) 1.아바타마스크 생성 Project 뷰에서 Asset폴더 안에 우클릭으로 create - > Avata Mask 클릭 아바타 마스크는 애니메이션레이어를 사용할때 위에 덮어쓴 애니메이션이 적용될 본을 지정하는 것으로 해당레이어에서는 선택한 곳만 애니메이션을 따라서 움직이게하고 그 외의 본은 그보다 아래레이어의 애니메이션을 작동하도록 만드는 것이다 2.아바타 뼈대 등록 - FBX 캐릭터 모델의 인스펙터창에서 Rig를 클릭하고 Avatar Definition을 Create From This Model 로 해주면 모델 안에 아바타가 생성되는데 이 아바타를 1에서만든 아바타의 Transform에 드래그 앤 드롭해준다 - 나는 달리는 도중에 장전애니메이션을 동시에 재생시킬 것이기 때문에 아바타마스크의 인스펙터창에서..
Unity3D_Quater - 아이템 먹기 및 장착 1.아이템 먹기 - InterAction()함수는 당연히 Update()안에서 돌림 - *세부적으로 생각하여 OnTriggerStay나 Exit 이벤트 함수를 충돌체 게임오브젝트 정보를 저장하는 용도로만 쓰는것이 포인트 스킬! 2.아이템 장착 기본셋팅 weapons 배열에 장비템 드래그앤 드랍 먹은 장비템을 눌렀을때 장착 장착애니메이션 예외처리 (이미 장착중인 아이템을 또 장착하면 애니메이션 발생하지 않도록) 리펙토링 기존무기를 장비해제하고 다시 해제한무기를 끼는로직
Unity3D_Quater - 아이템 만들기 1.아이템 빛 효과 주기 - Light 속성이용 - Range : 빛의 범위, Intensity : 빛의 민감도(세기) 2. 아이템 파티클 - Particle System 속성 이용 - Start Delay : 파티클 생존 시간, Start Speed 파티클 속도 조절해주고 - 아래 옵션들중에 체크한 옵션들을 손봐주면 간단히 파티클 완성 3. 아이템들을 만들고 리지드바디와 2개의 구체콜라이더를 준다 - 2개의 구체콜라이더중 한개는 크게 만들어서 isTrigger를 체크해준다 - 무기 3개는 Weapon 태그를 지정해주고 나머지 6개는 Item 태그를 지정해준다 4. enum 을 사용하여 아이템 타입 정해주기 및 아이템 회전시키기 - *enum스킬 중요! 4.프리팹화 하기 - 생성한 오브젝트들을 프리팹화 ..
Unity3D_Quater - 점프 및 회피구현, 카메라 떨림방지, 벽바닥속성변경 1.점프애니메이션 - 1회성인 점프 애니메이션과 회피애니메이션은 아래와 같이 애니메이터를 구성 파라미터3개 추가 -> bool isJump, Trigger doDodgh, Trigger doJump - Any State -> Dodge 조건 : doDodge(Trigger) Dodge -> Exit 조건 : x, Has Exit Time 체크 Any State -> Jump 조건 : doJump(Trigger), isJump(True) Jump -> Land 조건 : isJump(false) Land -> Exit 조건 : x. Has Exit Time 체크 2.점프코드 3.중력조절 Edit- projectSetting -> Physics에서 gravity값을 기존 -9.81에서 -40정도로 중력의 영향..
Unity3D_Quarter - 플레이어 이동, 벽충돌 방지 구현 *칙칙한 오브젝트 색 하얗게 만들기 -> Window - Rendering -> Lighting -> Generate Lighting 클릭 1.바닥 및 벽 생성 2.플레이어 이동구현 *Freeze Rotation x와 z와 체크를 해주어야 관성에 의한 넘어짐이 없어짐 3.애니메이션 FBX : 각종 정보들이 구분되어 저장되는 3D 포맷 - 빈 애니메이터를 만들어서 Player오브젝트 자식으로 들어있는 Mesh Object 오브젝트에 드래그 앤 드랍하고 - 우리가 가져온 Model 에셋안의 FBX중에 Player의 것안에 들어있는 idle, walk, run 애니메이션을 애니메이터에 넣어서 아래와 같은 트랜지션을 만들어 준다 - 이후 isRun과 isWalk라는 bool값의 파라미터를 만들어 관계에 따라 적..