본문 바로가기

Unity

(160)
Unity2D_Shooting - 보스공격패턴 5.보스 공격 패턴 (1) - 패턴틀 구현 *보스프리팹은 비활성화로 두어야함 활성화로 두면 두번씩 실행되는 버그발생 (2) - Fire1공격-샷건, Fire2공격-부채꼴 (3) - Fire3공격 - 원공격 (4) - 총알이 보는 방향 돌리기 *transform.Rotate(Vector3.forward*x) -> x도 만큼 회전시키기 -makeBullet.transform.Rotate(rotVec) 했을때(좌)와 -makeBullet.transform.Rotate(rotVec+rotVec2) 했을때(우) (5) - 부채꼴 패턴에서 보스총알 자동회전시키기
Unity2D_Shooting - 보스애니메이터 등록, 보스 등장 1.보스 애니메이터 등록 - 히트시의 하얗게 변하는 애니메이션은 처음엔 2개의 스프라이트를 드래그 앤 드랍하여 애니메이션을 만들었다가 다시 애니메이션 설정에서 하얗게 변하는 스프라이트 한개만 남겨두고 앞쪽으로 옮긴 후다른 한개는 지운다 - Any State -> Boss_Hit으로 가는 트랜지션은 BossHit이라는 트리거를 주고 Has Exit Time은 체크해제 - Boss_Hit에서 -> Boss_idle로 가는 트랜지션은 트리거를 공백으로 두고 Has Exit Time을 체크해준다 그래야 정상적인 애니메이션이 발동한다 2. 보스 오브젝트 관리 - Boss오브젝트를 만들어서 Direction을 Horizontal로하고 콜라이더를 조정해주며 리지드바디도 추가해준다 중력스케일 역시 0으로 - 보스 오브..
Unity2D_Shooting - 팔로워 구현 1. 팔로워 생성 및 총알발사 - 기본적으로 follower오브젝트가 총알을 발사하도록 followerBullet 프리팹을 만들어 createManiger에서 프리팹을 풀링하도록 추가하고 총알 발사 기본로직 구성 2. 팔로워가 플레이어를 따라오도록 만들기 - Queue를 사용하여 팔로워가 플레이어를 따라오도록 만들기 리펙토링 - 팔로워가 생김과 동시에는 플레이어 위치에 생성되었다가 따라다닐때는 플레이어와 겹치지 않도록 하기 3. 파워아이템을 먹으면 porwe가 4 이상부터 6까지 팔로워 생성하기 (1) - 플레이어 스크립트에 Followers[] follower 배열을 만들어 팔로워 오브젝트 3개를 배열안에 넣는다 *Follower(1) 오브젝트는 Follower오브젝트위치를 부모로 가지게 하고 Foll..
Unity2D_Shooting - 텍스트파일을 이용한 커스텀배치(중요) 1. 텍스트파일을 이용한 커스텀배치 (1) - Spawn스크립트를 생성하여 아래 3가지 변수가 담긴 Spawn Class를 생성한다 - 3가지 변수를 그대로 사용, 열거한 적기체생성딜레이,적기체타입,적기체생성위치 정보가 담긴 .txt파일을 작성한다 (2) - Assets폴더에 Resources폴더(런타임에서 불러오는 에셋이 저장된 폴더)를 만들고 그안에 우리가 작성한 .txt파일을 넣는다 *Resource 아니고 Resources이다 (3). 비어있는 SpawnList 리스트에 메모장 한줄의 정보가 들어가서 초기화된 Spawn Class인스턴스 1개를 넣어보자 - Spawn클래스의 인스턴스 안의 각각의 변수에 메모장의 여러줄 중 한 줄의 데이터를 삽입하고 그렇게 완성된 인스턴스가 메모장의 한 줄 한줄 마..
Unity2D_Shooting - 오브젝트풀링_적용 *풀링으로 활성화한 오브젝트에 무언가 물리적인명령을 내리려면 (1). void Onenable(){}을 활용하라 (2). Destroy(gameObject) 는 gameObject.SetActice(false);로 바꾼다 (3). rotation 기본값을 지정할땐 transform.rotation = Quaternion.identity 1.적기체 생성 풀링 2. 플레이어총알 풀링 3. 적기체 총알 풀링 4. 아이템 풀링 5.player의 Boom함수를 리펙토링 기존의 find함수를 대채하여 최적화
Unity2D_Shooting - 오브젝트풀링_CreateManiger생성 1. 오브젝트풀링_CreateManiger생성 (1) - CreateManiger라는 Empty오브젝트를 생성하고 CreateManiger라는 스크립트를 생성하여 아래와 같은 코드 구현 - 아래는 배열의 크기를 정해주고 그 크기만큼의 프리팹을 비활성화상태로 생성해두며 - MakeObj()이라는 함수를 다른 스크립트에서 사용함으로 인해 1회 사용시마다 타입에 따라 1개의 비활성화된 상태로 존재하고 있던 오브젝트를 활성화 시키는 형식으로 사용한다
Unity2D_Shooting - 무한배경(스크롤링), 패럴렉스 1. 배경화면 오브젝트생성 (1) - BackA 에는 BackGroundA 스프라이트 3개 - BackB 에는 BackGroundB 스프라이트 3개 - BackC 에는 BackGroundC 스프라이트 3개 - BackGroundA-2, BackGroundB-2, BackGroundC-2이 한 세트이고 (0,10,0)에 위치하고 - BackGroundA-1, BackGroundB-1, BackGroundC-1이 한 세트이고 (0,0,0)에 위치하고 - BackGroundA-0, BackGroundB-0, BackGroundC-0이 한 세트이고 (0,-10,0)에 위치한다 -public Transform[] sprites의 배열사이즈를 3으로 주고 각 스프라이트마다의 위치정보를 원소로 준다 2. 카메라사이즈..
Unity2D_Shooting - Item추가 및 폭탄 이펙트, UI 추가, 아이템 드랍 1.Item, BoomEffect 추가하기 (1) - 각 아이템 스프라이트에 드래그앤 드랍으로 기본 애니메이션을 지정해준다 (2) - Item들의 태그도 Item으로 해주고 각 아이템타입을 정해줄 String이 들어간 Item 스크립트도 만들어서 넣어준다 2. item을 먹었을때 파워업, 점수획득, 필살기 (1) - playerMove 스크립트 안의 Item 태그 오브젝트들과의 OntriggerEntered2D함수 작성 (2) - 필살기를 먹었을때 폭탄이 터지면서 필드에 존재하는 적기체와 적기체총알을 모두 없애는 로직 작성 *GameObject[] enemy = GameObject.FindGameObjectsWithTag("enemy")로 현재 계층구조에 존재하는 관련 태그를 가진 모든 오브젝트를 가져와..