728x90
728x90
전역변수 & 지역변수 C# 스크립트 작성 시 클래스 안에 다양한 변수를 설정한다. 하지만 때때로 함수가 변수들을 읽지 못해 유니티 에디터에서 컴파일 에러가 뜨기도 하고, 이상한 버그들도 발생하곤 한다. 개발할 때 매우 기본이 되는 내용이지만 오히려 모르고 넘어가는 경우가 많기에 때문에, 전역변수와 지역변수에 대해 기본적인 개념을 꼼꼼히 짚어보도록 하겠다. 먼저, 한 클래스 안에서 동일한 이름의 지역/전역 변수가 존재한다면 지역 변수가 전역 변수보다 먼지 인지된다. 그리고 전역 변수는 지역 변수를 모르지만, 지역 변수는 전역 변수를 알고 있다. 이는 컴파일러 실행과 관련되어 설명할 수 있는데 우리가 유니티 에디터에서 플레이 버튼을 누르면 컴파일러는 "코드 -> static(정적 메모리 공간) -> stac..
Ocean Environment Pack | 3D 풍경 | Unity Asset Store Elevate your workflow with the Ocean Environment Pack asset from Davis3D. Find this & other 풍경 options on the Unity Asset Store. assetstore.unity.com
클래스 상속을 이용한 CameraShake 구현 방법 using System.Collections; using System.Collections.Generic; using UnityEngine; // 카메라 셰이크를 위한 설정 정보를 기억할 구조체 [System.Serializable] public struct CameraShakeInfo { // 진폭 public float amplitude; // 사인파 진동 빠르기 public float sinSpeed; } // 모든 카메라 셰이크 클래스의 부모 클래스 public class CameraShakeBase { // 카메라 초기 위치 기억변수 protected Vector3 originPos; // 카메라 셰이크 초기화 함수 public virtual..
유니티 애니메이션 실행 오류 유니티에서 애니메이션을 실행하다보면 몇가지 문제가 발생한다. 가장 대표적으로 Enemy가 Player를 공격하는 애니메이션이 실행되고, 피격 시 데미지UI(빨강) 코루틴이 반복 실행되는 상황에서 정확한 피격 타이밍과 코루틴 함수 호출 시점이 다를 수 있다. 다시 말해, Enemy가 발차기 모션을 실행하기도 전에 피격UI 코루틴이 엇박자 타이밍으로 실행되는 것이다. 우리는 정확하 발차기가 실행되었을 때 UI 코루틴을 실행해야 어색하지 않은 애니메이션 동작 상황이 완성될 것이다. 이런 경우, 애니메이션 실행 key frame에서 event 함수를 호출해줌으로서 문제를 해결할 수 있는데 다음 2가지 방법을 주로 사용한다. 원본 애니메이션 데이터를 활용하여 오류 해결하기 애니메이션 ..
피격 시 데미지UI 활성/비활성화 방법 Enemy로부터 타격을 받았을 때 체력이 깎이면서 빨강색 DamageUI가 호출되었다가 비활성화되는 효과를 구현하고자 한다. 이런 경우 보통 Coroutine을 사용하지만 기본적인 로직을 고민해보았을 때 다음과 같은 아이디어를 떠올려 보았다. HP가 감소되면서 Damage UI가 호출되어야 하기 때문에 Get / Set 프로퍼티를 사용해주었다. 그리고 PlayerHealth 클래스를 싱글턴으로 가져와 Enemy 스크립트의 OndamageProcess() 에 PlayerHealth.Instance.hp--; 해주었다. 체력 감소와 관련된 기본 코드를 구현해 놓고, 이제는 피격 시 Damage UI가 호출되도록 한다. [SerializeField] int hp = 3;..
유니티 애니메이션 이동 오류 유니티 애셋 스토어나 믹사모에서 받은 애니메이션을 사용할 때 우리가 흔히 겪는 문제 중 하나는 이동 애니메이션이 원하는 목적지에서 멈추는 것이 아닌, 끝까지 실행되면서 이동하는 것이다. 애니메이션 이동 오류 발생 원인 이는 기본적으로 받아 온 이동 애니메이션이 좌표값까지 적용되었기 때문에 목적지를 넘어 계속 이동하는 것이다. 인스펙터 창에서 플레이해보면 제자리에서 애니메이션이 실행되는 경우와, 실제 좌표값의 이동까지 적용되는 경우가 있다. 이동 애니메이션에 관한 오류는 대부분 좌표값까지 적용되었기 때문이다. 즉, A에서 B 지점까지 이동은 스크립트로 실행하고 있는데, 애니메이션 좌표이동까지 중복해서 적용되는 의미이다. 이를 해결하는 방법은 다음과 같다. 애니메이션 이동 오류 ..