본문 바로가기

Unity/Unity3D_Quater

(40)
Unity3D_Quater - 몬스터 처치시 아이템드랍, 점수획득 1.몬스터 사망시 아이템 드랍 및 점수획득 -몬스터 death함수에 랜덤한 코인(총3개)을 드랍하도록함 - > 배열에 3개의 코인을 담아서 랜덤한원소값 오브젝트 생성 -몬스터 각각 고유의 점수를 부여하고 사망시 플레이어에게 점수를 플러스 -이후 몬스터들을 프리팹화랍 및 점수획득 -몬스터 death함수에 랜덤한 코인(총3개)을 드랍하도록함 - > 배열에 3개의 코인을 담아서 랜덤한원소값 오브젝트 생성 -몬스터 각각 고유의 점수를 부여하고 사망시 플레이어에게 점수를 플러스  -이후 몬스터들을 프리팹화 * 버그 -> ontriggerEnter로 인한 코인 획득이 중첩되어 일어나는 현상 -> 코루틴 EatingItem() 으로 해결 *버그 -> 몬스터가 죽었는데 분신이 나타나느 버그 -> 컴포넌트에 실수로 자..
Unity3D_Quater - 스테이지 관리 1. 스테이지 관리 1)목적 : 스테이지존을 만들어서 해당 존에 플레이어가 들어가면 -> 상점오브젝트 및 스테이지존이 사라짐 -> 일정조건성립이 되면(일단 isBattle =true로 시간을 흐르게 한다음 5초 후 ) -> 상점오브젝트 및 스테이지존이 다시 나타남, Stage UI가 1증가(다음스테이지) -> 플레이어위치,회전값 초기화 ① 스테이지존 생성 - 스테이지존오브젝트를 생성(파티클시스템와 3D Text를 이용) - StageManiger스크립트 생성(플레이어와 onTriggerEnter 이벤트를 감지하여 스테이지시작관련 함수를 불러오는역할) ②스테이지존에 플레이어가 들어갔을때 배틀상황만들기 - ①에서 StageManiger의 OntriggerEnter이벤트에 의해 아래의 GameManiger스크..
Unity3D_Quater - UI로직 연결 *형변환 - int형 K-> string형으로 변환 = K.toString() - float형 K -> int형으로 변환 = (int)K [주의]: float K를 int K로 강제 변환하면 소수점 이하는 버려진다 - int형 K -> string형으로 변환하면서 1000의자리마다 ,찍기 = string.Format("{0:n0}",K) - int형 K -> string형으로 변환하면서 2자리형태로 숫자 보여주기 = string.Format("{0:00}",K) 1.메뉴 카메라 생성 및 애니메이션 만들어주기 - 기존 Game Camera를 복사하여 Menu Camera를 하나 생성하고 스크립트컴포넌트를 없앤다 - 비어있는 Animation을 생성하고 Menu Camera의 컴포넌트에 드래그 앤 드랍하면 ..
Unity3D_Quater - 상점만들기(2) - 원하는 기능 : 상점 UI의 아이템버튼을 클릭하면 해당 아이템이 바닥에서 생성되어 나타남 + 가격만큼 플레이어 골드 깍임 UI의 아이템버튼 클릭 = Button UI 오브젝트의 Onclick() 이벤트에 함수 실행토록 추가 해당 아이템이 바닥에서 생성되어 나타남 = Shop 스크립트에서 Buy()함수 구현 - 변수 1. 구매할 아이템 -> GameObject[] 2. 구매할 아이템에 1:1로 구매할 아이템의 가격이 매칭 -> Dictionary 3. 플레이어 보유 코인을 가져올 플레이어 스크립트 -> Player 4. NPC 텍스트 UI-> Text 5. NPC 대화내용(기본대사, 돈부족대사)이 담긴 string -> string[] - 함수 1. 해당아이템을 생성위치에 생성 2. 해당아이템 가격을 ..
Unity3D_Quater - 상점만들기(1) 1.아이템 샵, 장비 샵 오브젝트 생성 - 빈 오브젝트를 생성하여 Item Shop이름을 주고 - 하위에 테이블, 아이템그룹, NPC, 원형 파티클시스템 들을 만들어준다 *아래와 같은 파티클을 만드려면 모양을 도넛모양으로 주고 Mode를 Loop로 만들어준다 *추가로 shpere 콜라이더도 만들어준다 -> 그래야 플레이어가 상점에 들어왔는지를 Ontrigger이벤트함수로 체크해서 상점UI를 켜고 끄고 할 수 있다 2.아이템 상점, 장비 상점 오브젝트 생성 - Canvas 안에 있는 Game Panel 오브젝트 하위에 Item Shop Group이라는 빈 오브젝트를 생성하고 - 그 하위에 구매목록장비 버튼 3개와 닫기 버튼 1개 캐릭터이미지 1개와 캐릭터 텍스트 1개를 생성 - 구매목록장비 버튼 안에 장비..
Unity3D_Quater - UI 만들기 1. Canvas 컴포넌트 기본설정 - 계층구조창에서 우클릭 후 Canvas 생성 - Canvas 컴포넌트에서 우리는 도트이미지로 UI를 꾸밀 것이기 때문에 Pixel Perpect를 체크해준다 - 어느 해상도에서도 크기가 동일하게 출력이 되도록 UI Scale Mode를 기존 Constant Pixel Size에서 Scale with screen Size로 설정해준다 - 그리고 해상도인 Reference Resoultion은 1920x1080(FHD)으로 바꿔준다 2. 메뉴생성(1) - Canvas 하위에 Panel을 생성하여 투명한 검정바탕을 만들어준다 - panel(Menu Panle)하위에 Image 2개와 Text1개를 생성해준다 - Text 설정 tip) #1. Text오브젝트의 위치이동이 편..
Unity3D_Quater - 보스 공격 패턴 구현 1.Boss스크립트는 Enemy스크립트를 상속받게하고 *Awake()는 자식에게 상속되지 않으므로 자식클래스에서 사용하려면 중복으로 코드를 작성해주어야한다 - 부모스크립트가 된 Enemy 스크립트 안에서 Enum Type에 Boss를 추가하여 - isTracking(), Tracking(), isTrackingCancle(), Targeting()은 동작하지 않도록 하고 -> if(enemyType ==Type.Boss) return; - FreezingRotation()함수는 동작하도록 한다 2. 보스는 플레이어를 쫒진 않지만 플레이어를 항상 바라본다 3..보스 공격 패턴구현 - AllCoroutine구현 -1) Think()에서 래덤한 int를 뽑는 방식으로 swich문을 통하여 확률에 따른 3가지 ..
unity3D_Quater - 보스몬스터, 보스 미사일, 보스 바위공격 구현 1. 보스 프리팹 오브젝트화 -Enemy Boss 오브젝트 생성 : tag, Layer = Enemy : RigidBody, Box Collider, Nav Mesh Agent - 보스의 점프공격 범위가 될 빈 오브젝트 TauntArea 생성 후 Box Collider를 생성하여 범위를 지정 - 보스의 미사일공격이 시작될 위치가 될 Transform 정보만 들어있는 빈 오브젝트 2개(MissileportA, B) 생성 -Mesh Object 오브젝트 컴포넌트로 애니메이터를 추가하여 보스 애니메이션 생성 2.보스 미사일 오브젝트 - 보스미사일 오브젝트 생성 : rigidBody, boxCollider, Paticle System, Nav Mesh Agent(유도미사일), 스크립트를 상속받은 추가적으로 유도..