본문 바로가기

분류 전체보기

(346)
Unity - 싱글톤패턴 - 일반적으로 Java나 코틀린등 타언어들과 같이 C#에서 클래스객체를 생성할때는 프로그램이 실행되는 메인함수안에 new NewClass();을 코드로 작성하고 이를 실행하는 것으로 NewClass라는 클래스객체를 생성한다 하지만 유니티엔진에서 클래스객체를 생성할때는 위와 같은 방식으로 객체를 생성할 수 있는것은 당연하고 추가로 하이라키창에 임의의 오브젝트를 생성하고 해당 오브젝트의 컴포넌트에 NewClass라는 스크립트를 붙여주는 방식 으로도 객체생성이 가능하게 된다 즉, NewClass라는 C#스크립트를 컴포넌트로 가진 임의의 오브젝트는 우리가 유니티 엔진상에서 눈으로 볼 수 있는 메모리구조의 힙영역에 생성된 가시화된 객체인 것이다. C#에서는 new 클래스명();과 같은 코드상의 객체 생성외에는 달..
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를 찾아서 해당 인덱스에 해당하..
Unity - C# List정리 tenlie10.tistory.com/155 [C#] List 주요 함수 정리 출처 http://www.csharp-examples.net 생성자 var list = new List (); list : (empty) var listA = new List () {3, 2, 1}; listA : 3, 2, 1 var list = new List (listA); listB : 3, 2, 1 var list = new Lis.. tenlie10.tistory.com 참조
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..