본문 바로가기

Unity/Unity2D_Flat

(12)
Unity2D - Sound 1.오디오클립 변수 선언 각각의 행동마다 오디오클립을 바꿔주어서 오디오사운드가 실행되어야 하기때문에 각각 행동에 따른 오디오 클립 변수 생성 2.Player의 Script속성에 각 사운드클립에 해당하는 오디오파일들을 드래그앤 드랩 3. 매개변수로 행동에 대한 스트링을 받고 경우에 따라 오디오클립을 변경하고 오디오소스를 재생하여 사운드함수 구현 4. 행동에 따라 사운드함수 실행 5.점프를 하면 오디오소스 속성안에 있는 오디오클럽이 점프로 바뀌고 몬스터킬을 하면 오디오클럽이 몬스터킬로 바뀌는 방식으로 사운드 발생
Unity2D- UI 와 Scene 연동 *자식오브젝트의 컴포넌트 불러오기 : GetComponentInChildren(); *씬 새로 불러오기 : SceneManiger.LoadScene(); *시간 멈추기, 시간 진행시키기 : Time.timescale = 0;(시간 멈추기), Time.timescale = 1;(시간 진행시키기)
Unity2D - HP관리, 플레이어 죽음 및 위치재설정, 스테이지 이동 1.HP관리 (1) - 게임매니저에 health 변수 추가 기본 health =3 으로설정 (2) - 장애물, 몬스터 충돌시 HP 하락 (3) - 낙하시 HP하락 및 원래지점에서 재시작 *충돌체정보.attachedRigidbody는 충돌체의 rigidbody 컴포넌트를 바로 가져온다 2. 플레이어 죽음 (1) - 기본설정해놓은 health = 3 이 1보다 클때는 장애물 충돌 혹은 낙하시 -1 씩되도록 하고 (2) - health가 1이 됬을때는 장애물 충돌 혹은 낙하시 health가 0이 되면서 플레이어 Death() 함수를 호출 3. 플레이어 위치 재설정 함수화 4.스테이지 이동 (1) - GameObject[] stage로 빈 stage배열을 만들어 Public 하여 유니티 엔진 inspector창..
Unity2D - 몬스터공격 , 게임매니저 생성 및 점수획득 1.몬스터 공격(Player 스크립트) *다른 게임오브젝트에 있는 스크립트를 가져오는 방법이 Point 2.몬스터 공격(Monster 스크립트) 3.아이템먹기 (1) - item에 써클콜라이더2D를 추가하고 is trigger를 체크한 후 (2) - 스크립트 작성 4.게임메니저 생성 및 점수계산하기 4-1 : 게임메니저오브젝트를 생성하고 플레이어스크립트와 연동시키기 (1) - EmptyObject를 생성하고 GameManiger로 rename (2) - GameManigerScript 스크립트를 생성하고 GameManiger 오브젝트에 드래그 앤 드랍 (3) - PlayerMove 스크립트 안에서 public GameManigerScript로 gameManiger라는 변수를 선언하고 - 유니티엔진에 퍼블..
Unity2D - 장애물구현 1.몬스터와 장애물간 충돌 무시 (1) - 가시장애물에 Polygon Collider를 주고 Layer를 anemy로 설정 - monster오브젝트의 Layer도 anemy로 설정 (2) - Edit -> project settings 에서 Layer collision Matrix 의 anemy/anemy 체크해제 (Layer가 anemy인 오브젝트끼리는 충돌을 무시한다) 2.몬스터와 장애물에 플레이어가 충돌했을때 (1) - 몬스터와 장애물의 tag를 모두 anemy로 설정 (2) - Player가 tag가 anemy인 오브젝트와 충돌했을때 이벤트 함수를 player script에 작성 (넉백, Player 색 투명하게) (3) - player가 넉백 상태일때 무적상태로 만들어 anemy와 충돌무시 구현..
Unity2D - 몬스터 AI 1.몬스터에 x축벡터를 랜덤하게 부여하여 속력으로 주기 (1). Think 함수 선언 - Random.Range(-1.2)로 랜덤한 값을 추출하여 random변수에 초기화하고 - Invoke("Think",3) :자기 자신의 함수를 3초마다 실행하도록 자기자신 함수안에 작성(재귀함수) * - Ramdom.Range(int min , int max ) : 최솟값(min) ~ 최댓값 (max-1) 사이의 랜덤한 정수값 - Ramdom.Range(float min ,float max ) : 최솟값(min) ~ 최댓값 (max) 사이의 랜덤한 실수값 - Invoke("함수이름", x초) : x초마다 "함수이름"의 함수를 호출하도록하는 함수 (2) - 추출한 랜덤한 random 정수값을 해당 오브젝트(몬스터)의 ..
Unity2D - 디버그 및 2단점프 문제 발생 : 이전 포스팅에서 타일맵으로 오르막길을 구현한 이 후 캐릭터가 오르막길에서 점프애니메이션으로 바뀌는 버그 발생 문제 원인 : 점프애니메이션 변환을 구현하는 레이캐스트 코드에서 기존에는 타일바닥과의 거리가 0.5f보도 작을때 점프애니메이션이 false가 되도록 구현했는데 캐릭터와 오르막길 타일바닥과의 거리를 디버그로그해보니 약 0.7f정도가 나왔다 문제 해결 : 기존 rayHit.distance
Unity2D - 타일맵 1.타일맵 폴더 생성 2.Tile Palette 생성 : 타일을 사용하기위해 모아둔 프리팹 Window - 2D - Tile Palette 3.TileMap 폴더 안으로 create New Palette 4. 맵관련 sprites 들을 Tile Palette안으로 드래그앤 드랍 및 TileMap 폴더에 저장 5.Tile Palette의 팔레트 안에 있는 타일들을 정리 ( 팔레트 안에서 정리할땐 반드시 Edit을 활성화 시켜야 함) 6.계층구조창에서 Tilemap 오브젝트를 생성하면 Grid 오브젝트 아래 Tilemap 오브젝트가 생성됨 7.계층구조의 Tilemap을 클릭하면 Scene이 격자무늬로 바뀌는데 Tile Palette를 이용하여 맵을 그려준다 (*이때 Tile Palette의 Edit은 비활성..