본문 바로가기

Unity/Unity3D_Quater

(40)
Unity3D_Quater - 777슬롯머신 만들기 1. 777룰렛이 될 UI 오브젝트 생성 및 정렬 - Button UI를 생성하여 Mask컴포넌트를 주고 일단은 비활성화 시켜둔다 - Button UI 아래 빈 오브젝트인 SlotObjGroup아래 4개의 Image를 만들고 Vertical Layout Group 컴포넌트를 주어 이미지들을 세로정리 - 같은 방식으로 2개의 Button UI를 더 만들고 - 3개의 Button들을 그 부모 빈오브젝트인 SlotMachine 오브젝트에서 컴포넌트로 Horizontal LayOut Group을 주어 가로로 정렬시킴 - 선택된 스킬이미지가 담길 ResultSkill 이미지 오브젝트까지 생성 2.변수 생성 및 할당 *** 리스트를 원소로 가지는 배열인 배열리스트 생성하는 법 *** 1). class를 원소로하는 ..
Unity3D_Quater - 룰렛만들기 참조 : 유투브 설후개 1. Canvas에 룰렛UI 오브젝트 만들기, 변수생성 및 할당 2. 룰렛속의 비어있는 6개의 스킬슬롯에 스킬 채우기 - 스킬이미지 갯수만큼의 인덱스가 들어있는 indexList를 만들고 해당 리스트에서 인덱스에 해당하는 숫자를 랜덤하게 뽑아서 selectedIndextList에 넣어주고 뽑은 숫자는 indexList에서 지워주는 로직 - 스킬슬롯에 스킬이미지를 랜덤하게 다 채운 후 룰렛을 회전시킴 3.룰렛 회전시키기 &&룰렛바늘에 가장 가까운 스킬이미지를 찾고 상단 결과슬롯에 띄우기 - 랜덤한 초기 회전속도를 주어 Mathf.Lerp()로 회전속도를 점차 0에 수렴하게 만들면서 룰렛 회전시키기 - 회전이 끝난 이 후 룰렛 바늘과 가장 가까운 인덱스i를 찾아서 해당 인덱스에 해당하..
Unity3D_Quater - 보스몬스터 레이져공격 만들기 1.보스F 프리팹 만들기 - 기존의 보스 프리팹의 텍스쳐만 바꿔주어 보스F프리팹을 생성 2.Enemy 스크립트 수정 - 보스F 인경우 Enemy 스크립트에서 기존의 보스인경우만 제외했던 로직들에 보스F인 경우도 추가하기 위해 일반 몬스터 타입과 보스타입 2개로 나눔(이 과정에서 NONE 타입을 추가 해야했던 이유) - 기존에 보스타입인 경우를 제외하고 실행되어야 했던 함수(return)는 ||를 써서 보스F타입을 추가해주면 되었고 기존에 보스탑입인 경우에만 발동시켜야 했던 함수는 &&를 써서 보스F타입을 추가해주어야 했다 3. Boss스크립트 수정 - 보스패턴을 생각하는 Think()함수에 기존의 돌굴리기 공격에 보스F타입인 경우 레이져 공격을 하도록 하였고 4. 레이저오브젝트 생성 - 레이저오브젝트의 ..
Unity3D_Quater - 몬스터공경 경고라인, 3쿠션 공격 만들기 1.돌격형 몬스터인 EnemyB의 돌격 경고라인 만들기 - Trail Renderer 컴포넌트를 가질 빈 오브젝트를 생성하고 꼬리가 생성될 시간인 Time과 꼬리의 색상을 조절해주고 - Aligment를 기존 View에서 Transform Z로 해주어야 카메라 시선에 따라 꼬리가 회전하는 현상을 막을 수 있다 - Transform Z 방향으로 꼬리가 생성되기 때문에 해당 오브젝트의 z축이 forward가 되도록 회전시켜주고 - 이 후 해당 오브젝트를 생성 후 transform.forward 방향으로 날리기 위해서 빈 부모 오브젝트를 하나 더 만들어서 그 자식오브젝트로 넣고 프리팹화 시킨다 - 기존 Enemy 스크립트의 Attack()함수안에서 Type.B의 공격에 대한 코드에 위에서 만든 트레일랜더러 프..
Unity3D_Quater - 몬스터HP 부드럽게 감소시키기, HP감소 잔상 만들기 1. 몬스터HP UI이미지 프리팹 수정 - HP감소 잔상을 만들기 위해 기존 체력바UI에서 현재체력이미지 뒤에 잔상체력이미지를 생성한다 2. Enemy 스크립트 - 먼저 Vector.Lerp()를 활용하여 부드럽게 HP가 감소시키도록 만들어주고 - backHpHit이라는 플래그 변수를 만들어 해당 변수가 true일때만 BackHp UI이미지가 선형보간으로 감소하도록 코드 구현 - backHpHit플래그변수는 몬스터가 피격당할때 0.5초 후에 true바꿔주고 바로 false로 복원시키는 방식으로 몬스터 피격시 1회성으로 호출되도록 구현 3.Enemy스크립트 OnDamged() - 몬스터 피격시 0.5초후에 BackHpHit 플래그변수를 true로 만들어주고 바로 다시 false로 바꾸도록 구현 4.결과
Unity3D_Quater - 플레이어 단위체력바 만들기 1. HP바를 품을 Canvas 바탕 생성 - 새로운 Canvas오브젝트를 만들어 HPCanvas로 Rename해준다 - 해당 Canvas의 Render Mode를 World Space로 변경해준다 - Scale을 0.002로 작게 만들어주고, Rotation을 x축 -90도로 회전시켜준다 - 아래 Scene뷰의 플레이어 아래 바닥부분의 하얀색네모가 보이는데 이것이 방금 우리가 만든 Canvas이다 2.HP바 만들기 - BackGround가 될 이미지를 하나 만들고 - HPbar 초록색 이미지를 BackGround에 맞게 채워준다 - HPLine이 단위HP바가 되는데 컴포넌트로 Horizontal Layout Group컴포넌트를 추가해준다 - 그리고 해당 컴포넌트의 control Child Size와 C..
Unity3D_Quater - 몬스터 시야, 위험도이미지, 체력바 적용 - 적 체력바 이미지가 적 오브젝트 머리 위에서 따라다니도록하기 - 체력바가 체력에 따라 달라지도록 하기 - 몬스터가 플레이어를 인지단계에 있으면 위험도 이미지가 노란색으로, 확인단계에 있으면 빨강색으로 변하게 만들기
Unity3D_Quater - 몬스터 위험수치 구현(1) 현재 몬스터가 플레이어를 공격하는 단계는 아래와 같다 viewDistance반경내에 있는 플레이어 감지,(angleView.targetNear = true) -> AngleView시야각에 플레이어가 들어오면 플레이어 발견(recognizePalyer =true), (angleView.targetConfirm = true) -> 플레이어 추적(isPlayerTrack =true) ->공격타겟팅 -> 공격 목표 : 몬스터의 시야각 내에 플레이어가 들어와서 플레이어를 발견하기 전 단계인 플레이어가 몬스터 감지반경내에 있는 단계에서 플레이어를 2초당 1위험도로 몬스터가 감지를 하고 4위험도가 되면 플레이어를 발견한걸로 하고 추적하도록 만들고 싶다 1. 스크립트구현 몬스터 머리위에 위험도 이미지를 띄우고 해당 이..