본문 바로가기

Unity_C#/Unity

(9)
[Unity] Unity 게임 화면 녹화하는 방법: Unity Recorder 팀 프로젝트를 하다보면 내가 어디까지 개발했는지를 팀원들하고 공유해야할 때가 있다. 이전 프로젝트에서는 맥북 화면 녹화를 사용했는데, 이전에는 로우폴리로 작업을 했어서 큰 불편함을 못느끼고 있다가 이번에 이펙트가 많이 들어가는 프로젝트를 진행하게 되면서 프레임이 끊기는 현상을 발견했다. 처음에는 녹화때문에 그런지 모르고, 그냥 이펙트가 많고 기기 사양의 문제라고 생각하고 있었는데 URP로 작업한 프로젝트 화면이 너무하다 싶을 정도로 프레임이 뚝뚝 끊겼고, 유니티 자체에서 녹화하는 기능이 있을 것이란 생각에 찾아보았다. 예상대로 유니티에선 녹화기능을 제공하고 있었다. 이 글에서는 2021.1.18 버전으로 했는데, 2020 버전에서도 잘 작동되는 것 같다. 2020.3부터는 되는 것 같은데, 그 이전에는 ..
[Unity] Unity 세팅 실시간 생성 플랫폼 실시간 생성 플랫폼: 게임 엔진이라고도 하는 Unity 플랫폼을 사용하면 누구나 강력한 비디오 게임이나 기타 실시간 2D 또는 3D 애플리케이션을 만들 수 있다. Unity를 사용하는 것은 수 백명의 엔지니어 팀이 여러분을 백업하고 대부분의 게임이 공유하는 시스템(물리, 그래픽 렌더링, 컨트롤러 입력 등)에서 작업하는 것과 같다. 따라서 응용 프로그램에서 독특하고 표현력이 풍부한 부분에 집중할 수 있다. "실시간" 플랫폼이라고 하는 이유는? - 비디오 게임은 플레이어 입력에 즉시 반응하기 때문에 실시간 경험이다. 모니터 또는 VR 헤드셋에 표시되는 모든 이미지는 컴퓨터에 의해 만들어지며, 1초도 걸리지 않으며, 때로는 1초에 수백 번 디스플레이에 표시된다. - 반대로 컴퓨터 애니메이션..
[Unity/C#] Steam VR teleport할 깜빡거리는 문제 Steam VR을 이용해서, 텔레포트(teleport)를 구현했을 때 한번 이동할 때마다, 화면이 검정 화면으로 잠시 바뀌었다가 이동하는 상황이 생긴다. 물론 이걸로 VR 환경 내 어지러움이 해소될 수도 있을 것 같기는 했지만 개인적으로는 이게 너무 반복되다 보니까 더 어지러운 느낌이 들었다. 검은 화면이 안나타나게 하기 위해서는 씬의 teleporting 게임 오브젝트의 Teleport(Script)에서 Teleport Fade Time을 0으로 해주면 된다.
[Unity/C#] Pooling시 Audio 관리 using System.Collections; using System.Collections.Generic; using UnityEngine; public class SoundManager : MonoBehaviour { private Dictionary audioVolume = new Dictionary(); private Dictionary clipPool = new Dictionary(); private float mainVolume = 1; private List soundObjectPool = new List(); private Transform poolParent = null; private bool isInit = false; private static SoundManager _current;..
[Unity/C#] Audio 관리 코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Cube : MonoBehaviour { public AudioClip bulletSound = null; private void Start() { CreateSoundObject(); } private void CreateSoundObject() { //게임 오브젝트 생성 (사운드 오브젝트) GameObject soundObject = new GameObject("SoundObject"); //생성된 사운드 오브젝트를 자식으로... -> 총알이 멀어지면 소리도 함께 멀어져야하니까 soundObject.transform.SetParent(th..
[Unity/C#] Unity와 Visual Studio가 연결이 안되어 있을 때 ‼️ Unity와 Visual Studio 연결 안될 때 ‼️ Visual Studio 글자 색이 안바뀔 때 정상적으로 Unity와 Visual Studio가 연결이 되어 있다면, 이렇게 MonoBehaviour와 Debug 부분의 색이 바뀌어 있어야 한다. 그러나 이렇게 색이 바뀌지 않는 경우가 있다. 이렇게 색이 바뀌지 않는 건, Visual Studio와 Unity가 연결이 되어있지 않다는 뜻이다. 💡이에 대한 해결책을 알아보겠다. Preference에 들어간 후, External Tools로 들어간다. 👇Preference 위치 Windows: 상단 Edit 탭 하단 MacOS: 상단 Unity 탭 하단 그 다음에 External Scripts 부분에 뭐가 있는지 확인해봐야 한다. 현재는 Open..
[Unity] Steam VR / Vive Input Utility 컨트롤러 진동 주는 법 * 덧글은 공개 덧글로 부탁드립니다. (개인정보가 담겨있다면 비밀 덧글로 :) ) Unity를 이용하여 Vive 기반의 VR 개발을 할 때, Steam VR 또는 Vive Input Utility(앞으로는 VIU라 하겠습니다.)를 사용할 수 있습니다. 작년에 콘텐츠를 만들 때에는 VIU를 사용했었는데, 올해엔 Steam VR 을 사용해보았는데요, 두 에셋을 이용했을 때 진동을 주는 방법에 대해 기록해보겠습니다. 1. STEAM VR using System.Collections; using System.Collections.Generic; using UnityEngine; using Valve.VR; public class Haptic : MonoBehaviour { public SteamVR_Action..
[Unity] Steam VR teleport 버튼 시선 이동 문제 Steam VR 내 teleport 기능을 썼을 때, 트랙패드의 오른쪽이나 왼쪽 부분을 누르면 사용자의 시선이 이동하는 기능이 들어있다. 문제는 다른 장소로 이동하는 텔레포트를 쓸 때, 오른쪽이나 왼쪽 부분을 같이 누르면 이동하면서 시선도 이동하는 원치 않는 상황이 발생하게 된다. 처음엔 코드를 통해 수정해야하나 싶었는데, 코드를 통해 수정하는 것이 아니라 Steam VR Input을 통해 수정해야 하는 것이었다. 이렇게 어디를 눌러도 텔레포트 되게 하였다. 중앙만 설정해도 상관없을 듯 하다.