728x90
728x90
유니티 애니메이션 실행 오류 유니티에서 애니메이션을 실행하다보면 몇가지 문제가 발생한다. 가장 대표적으로 Enemy가 Player를 공격하는 애니메이션이 실행되고, 피격 시 데미지UI(빨강) 코루틴이 반복 실행되는 상황에서 정확한 피격 타이밍과 코루틴 함수 호출 시점이 다를 수 있다. 다시 말해, Enemy가 발차기 모션을 실행하기도 전에 피격UI 코루틴이 엇박자 타이밍으로 실행되는 것이다. 우리는 정확하 발차기가 실행되었을 때 UI 코루틴을 실행해야 어색하지 않은 애니메이션 동작 상황이 완성될 것이다. 이런 경우, 애니메이션 실행 key frame에서 event 함수를 호출해줌으로서 문제를 해결할 수 있는데 다음 2가지 방법을 주로 사용한다. 원본 애니메이션 데이터를 활용하여 오류 해결하기 애니메이션 ..
유니티 애니메이션 이동 오류 유니티 애셋 스토어나 믹사모에서 받은 애니메이션을 사용할 때 우리가 흔히 겪는 문제 중 하나는 이동 애니메이션이 원하는 목적지에서 멈추는 것이 아닌, 끝까지 실행되면서 이동하는 것이다. 애니메이션 이동 오류 발생 원인 이는 기본적으로 받아 온 이동 애니메이션이 좌표값까지 적용되었기 때문에 목적지를 넘어 계속 이동하는 것이다. 인스펙터 창에서 플레이해보면 제자리에서 애니메이션이 실행되는 경우와, 실제 좌표값의 이동까지 적용되는 경우가 있다. 이동 애니메이션에 관한 오류는 대부분 좌표값까지 적용되었기 때문이다. 즉, A에서 B 지점까지 이동은 스크립트로 실행하고 있는데, 애니메이션 좌표이동까지 중복해서 적용되는 의미이다. 이를 해결하는 방법은 다음과 같다. 애니메이션 이동 오류 ..
애니메이터를 사용하여 Fade in/out 기법을 구현해보려고 한다. 먼저 애니메이터를 적용할 오브젝트(이미지)에 Animation을 생성해주고 Create - Image - Color를 Add Property해준다. 화면이 투명한 상태에서 애니메이션이 1초 간 적용된다고 가정했을 때, Fade in은 Color.a 알파값을 1에서 0으로 설정하고 Fadeout은 알파값을 0에서 1로 설정한다. 생성된 Animation Clip에 Loop Time 체크를 해제해 주었다.(한 번만 구현,반복 없게 하기 위해) Animator Controller에서 다음과 같이 Fade in과 Fade out을 Make Transition해준다. 그리고 Parameter에 Bool 타입 변수를 생성해주고 Fadeflg라고 ..
카메라 이동 애니메이션 구현 씬 상에 가상의 위치값을 정해놓은 후 오브젝트가 해당 값으로 이동하면서 카메라가 따라가는 애니메이션을 구현했다. Create Empty(positions)를 생성 후 자식 Create Empty(pos1 ~ pos8)까지 생성해주었다. 그리고 각각의 pos 오브젝트의 인스펙터 창에서 cube 모양을 클릭 후 가상의 초록색 점을 매핑해주었다. 이는 씬 상에서만 보이지 플레이하면 보이지 않는다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class movPath : MonoBehaviour { public bool bDebug = true; public float Rad..
오락실에 가면 항상 인기 게임 순위 안에 들어 있는 갤러그는 아군 비행기가 적비행기를 격추하면서 점수를 얻는 게임이다. 앞,뒤,좌,우를 움직이며 미사일을 발사하여 적기를 격추하는 단순한 게임이지만 쉬운 조작법과 간단한 인터페이스로 많은 사람들의 인기를 끌었다. 그래서 갤러그와 같은 2D 비행기 Shooting 게임을 만들어보고 싶었다. 2D 게임을 만들기 위해서는 먼저 Package manager에서 2D SPRITE를 다운로드(또는 업데이트) 해야된다. 임포트한 이미지 파일을 SPRITE (2D AND UI)로 설정한 후 SPRITE RENDRER에 이미지 삽입하면 된다. 모바일 버전으로 엑스포트해보기 위해 전체적인 게임 뷰를 6:10으로 맞춰놓고 제작을 시작했다. 2D SPRITE 이미지를 수정하기 ..