본문 바로가기

Unity/Unity2D_Shooting

(21)
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")로 현재 계층구조에 존재하는 관련 태그를 가진 모든 오브젝트를 가져와..
Unity2D_Shooting - 플레이어 체력 관리UI, 다시하기, 버그수정 1.플레이어 피격시 체력UI 줄어들게 하기 (1). PlayerMovesc - int health 를 3으로 초기화 - 피격시마다 health가 1씩 줄어들도록 코드 작성 (2). GameManigercs *for문을 두번돌려서 첫번째 for문에서 미리 UI를 다 꺼버리고 시작하는게 point 2. 다시하기 GameLoad 3. 한번에 총알2개를 맞아 2목숨이 깎이지 않도록 맞은상태임을 나타내는 플래그변수 활용
Unity2D_Shooting - UI기본셋팅 및 스코어 Text에 표시하기 1. UI 기본 셋팅 (1) - UI오브젝트 생성 후 Canvas오브젝트 속성에서 Canvas Scaler의 UI Scale Mode를 Scale With Screen Size(어떤 해상도에서든지 UI크기를 똑같이 유지한다)로 바꿔준다 *왠만하면 Scale With Screen Size으로 설정하는 것이 좋다 (2) - Reference Resolution은 1080x1920으로 해준다 (3) - UI 이미징 2. 적기체를 잡을때마다 점수를 누적해서 Text에 표시하기 (1). GameManiger.sc - 적기체를 생성할때 게임매니져 오브젝트를 적기체의 스크립트로 넘김(계층구조창에 존재하는 오브젝트의 정보를 생성할 프리팹오브젝트로 넘기는 방법!) (2). Enemy.cs Enemy스크립트에서 (1)로 ..
Unity2D_Shooting - 적기체에 맞았을때 리스폰, 리스폰 무적효과 1. 적기체 or 적기체 총알에 플레이어가 피격 당했을때 리스폰 2. 리스폰되었을때 2초간 무적시간을 주고 그동안 플레이어가 깜빡거리는 이펙트 주기 *coroutine(코루틴)사용!!! 3. 리스폰시에 화면아래에서 플레이어가 올라오도록 구현
Unity2D_Shooting - 적기체 spawn위치 추가 , 기존 프리팹 수정하여 새로운 프리팹생성, 적기체 총알발사 플레이어방향으로 총알발사 1. 적기체 스폰위치 추가 (1) - 적기체 스폰위치가 담겨있는 배열의 사이즈를 4개 늘리고 좌측 2개 우측2개 총 4개(spawnPos6 ~ 9)의 오브젝트 를 생성하고 위치정보를 담은 배열에 추가로 드래그 앤 드랍 해준다 (2) - 추가된 위치에서 기체가 생성되며 대각선방향으로 날아오도록 코드를 구현한다 *Random.Range(0,9)를 변수에 담으면 int 0 부터 8을 반환한다 *instantiate로 생성된 프리팹을 변수에 담으면 생성된 GameObject가 반환된다 *transform.rotation = Quaternion.Euler(x축 rotation각도, y축 rotation각도, z축 rotation각도)는 해당오브젝트를 회전 시켜준다 2.플레이어 총알 프리팹을 복사해서 적기체 총알 ..