본문 바로가기

Unity

(160)
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.플레이어 총알 프리팹을 복사해서 적기체 총알 ..
Unity2D_Shooting - 적 비행기 구현, 랜덤생성 1. enemy 구현 (1) - enemy 스프라이트를 아틀라스로 자른 후에 각 enemy 오브젝트에 맞는 콜라이더를 추가한다 *polygon collider는 phisics shape을 따라감 아래 예제는 삼각형 모양 enemy 오브젝트의 콜라이더를 스프라이트에디터에 들어가서 custom phisics shape -> Generate 클릭 -> 콜라이더경계를 수동지정해준다 (2) - 세개의 enemy 오브젝트에 이름을 가각주고 tag는 enemy로 통일하며 각각에 맞는 콜라이더를 주고 움직이도록 속력을 줘야하기때문에 rigidbody2D 속성도 추가해준다 - 그리고 이놈들의 bodyTpye이 Dynamic이기 때문에 각각 isTrigger도 체크해준다 그래야 서로 안부딫친다.. - 중력의 영향도 없앤다..
Unity2D_Shooting - 총알 발사 딜레이 및 총알 파워업 구현 1. 스페이스바를 눌러야 나가도록 하기 및 총알 발사 딜레이 구현 -상단에 public float delay; 를 주어 유니티 에디터에서 딜레이시간을 정해주고 -public float currentTime;을 주어 현재흐르는시간을 유니티 에디터에서 보여준다 2. 파워업 총알 구현 - 상단에 public int power;를 선언(차 후 아이템을 먹으면 power가 올라가도록 구현예정) -shootin()함수에서 총알프리팹을 생성하여 위로 힘을줘 발사하는 코드를 switch문을 이용하여 power에 따라 다른 갯수 다른 위치 다른 프리팹이 생성되도록 추가 구현하여 파워업 총알 구현
Unity2D_Shooting - 총알 발사 구현 1. 총알 발사 구현 (1). 총알 프리팹 만들기 - 총알 스프라이트를 드래그 앤 드랍으로 계층구조에 넣는다 - 만들어진 총알(BulletA 와 BulletB) 오브젝트에 collider와 rigidBody2D 속성을 추가한다 *rigidBody의 BodyType은 Dynamic으로 한다 움직임에 AddForce를 쓸 것이기 때문이다 - is Trigger도 체크해준다 - 이제 속성까지 갖춘 계층구조 안의 두 총알 오브젝트를 Project폴더의 Assets폴더로 드래그앤 드랍한다 - 그러면 Assets 폴더에 오브젝트가 들어가며 계층구조에 있던 총알 오브젝트들이 파란색으로 변한다 *프리팹을 사용하면 같은 오브젝트를 복제, 반복사용, 삭제등을 용이하게 할 수 있고 관리하기 편하다 (2). BulletBor..
Unity2D_Shooting - 이동애니메이션 1.애니메이터 및 애니메이션 생성 - 각 이름에 맞는 애니메이션을 생성하고 파라미터로 int Input을 생성함 - Input값은 코드 내의 플레이어의 움직임을 관리하는 Input.GetAxisRaw("Horizontal")의 값 -1, 0 , 1 로 관리함 - 따라서 각애니메이션마다 -1 일땐 Player_Left 애니메이션이 1일땐 Player_Right 애니메이션이 0일떈 Player_idle 애니 매이션이 작동하도록 트랜지션을 짜준다 *역시나 Has Exit Time 체크해제 및 겹치는 구간 없게 설정 2. 코드작성 // 나의 상태, 조건 -----> 그 상태로 인한 비교연산자가 사용가능한 코드 변화 //1. 내가 우측키를 누른다 ---> Input.getbuttondown("Horizontal"..