}
Git 링크 https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git?path=/Packages/com.unity.multiplayer.samples.coop#main GitHub - Unity-Technologies/com.unity.multiplayer.samples.coop: A small-scale cooperative game sample built on the new, Unity ne A small-scale cooperative game sample built on the new, Unity networking framework to teach developers about creating a similar mu..
ID 캐싱하기애니메이터의 파라미터를 컨트롤 할 때는 가급적 ID를 캐싱해서 사용해야 한다고 합니다! ChatGPT의 말에 따르면 Unity에서 애니메이터 매개변수는 일반적으로 Animator 클래스의 SetFloat, SetBool 및 SetInteger 메서드를 사용하여 제어됩니다. 이러한 메서드는 설정 중인 매개 변수를 식별하기 위해 문자열 매개 변수 이름을 사용합니다. 그러나 문자열을 사용하여 매개변수를 식별하는 것은 느리고 오류가 발생하기 쉽습니다. 문자열은 메모리 할당 및 할당 해제가 필요한 참조 유형이고 문자열 비교는 정수 비교에 비해 느릴 수 있기 때문입니다. 이러한 잠재적인 성능 문제를 방지하기 위해 Unity는 정수 ID를 사용하여 애니메이터 매개변수를 식별하는 대체 메커니즘을 제공합니다..
Action이란? Action은 매개 변수와 반환 값이 없는 메서드를 나타내는 대리자 유형입니다. 주로 런타임(게임이 실행되는 동안)에 구독하고 발동시킬 수 있는 이벤트를 만드는 데 사용됩니다. 다음은 예시입니다. public class Button : MonoBehaviour { public Action onClick; private void OnMouseDown() { if (onClick != null) { onClick.Invoke(); } } } public class GameController : MonoBehaviour { private void Start() { // Get reference to MyButton component Button Button = FindObjectOfType(..
Canvas Setting World Space Canvas를 하나 생성해준 후 Background 설정 및 Text를 만들어줍니다! 스크립트 작성 public class ConsoleToText : MonoBehaviour { public TextMeshProUGUI DebugText; private string m_InfoText = ""; private void OnEnable() { Application.logMessageReceived += HandleLog; } private void OnDisable() { Application.logMessageReceived -= HandleLog; ClearLog(); } void HandleLog(string logString, string stack..
Haptic SDK 설치 Oculus Developer Center | Downloads developer.oculus.com 링크에 접속하셔서 SDK를 다운받아줍니다. Haptic SDK 실행방법 다운받은 폴더를 Assets폴더로 옮겨준 후 Single Haptic Test 스크립트를 하나 만들어줍니다. public class SingleHapticTest : MonoBehaviour { public HapticClip clip; private HapticClipPlayer player; void Awake() { player = new HapticClipPlayer(clip); } public void PlayHapticClip1() { player.Play(HapticInstance.Hand.Lef..
ADB란? Use ADB with Meta Quest: Native/android | Oculus Developers developer.oculus.com ADB는 Android Debug Brigde의 약자로 개발의 전 과정에서 Meta Quest 헤드셋과 소통하는 데 사용되는 주요한 툴인 Android SDK이 포함된 커맨드-라인 툴입니다. ADB는 컴퓨터에서 헤드셋으로 중요한 커맨드를 발행하거나 앱을 설치하는데 사용되는 툴입니다. 예를 들어, Wifi을 이용하여 USB없이 Meta Haptic Studio을 테스트할 수 있습니다. ADB를 이용해서 USB없이 Wifi로 Haptic Studio 실행시키기 Meta Quest Developer Hub (MQDH) 3.0 Meta Quest Develo..
Meta Haptic Studio이란? Meta에서 더 나은 햅틱 경험을 만들 수 있도록 도와주는 도구인 Meta Haptics Studio을 출시했습니다. Meta Haptics Studio을 통해 개발자는 고품질 햅틱을 더 쉽고 빠르게 설계 및 테스트할 수 있게 되었습니다. Meta Haptics Studio는 데스크톱 애플리케이션입니다. Experimental Features | Oculus Developers developer.oculus.com Meta Haptic Studio 실행 방법 Oculus Developer Center | Downloads developer.oculus.com 링크에 들어가셔서 Window용 Meta Haptics Studio을 다운로드하시면 됩니다. 다운을 받으시고..
에셋 링크 [Graphy] - Ultimate FPS Counter - Stats Monitor & Debugger | GUI Tools | Unity Asset Store Use the [Graphy] - Ultimate FPS Counter - Stats Monitor & Debugger from Tayx on your next project. Find this GUI tool & more on the Unity Asset Store. assetstore.unity.com 정말 좋은 에셋임에도 불구하고 무료입니다! 항상 FPS 측정하는 것을 만들어야 하나... 모바일 버전.. PC버전... 등 매번 만들기 귀찮았는데 때.마.침! 엄청나게 좋은 FPS 측정 에셋을 찾았습니다! 사용 방법 에셋을 임포트 ..
OnValidate란? 'OnValidate'는 Inspector 창에서 스크립트의 속성(프로퍼티 값)이 수정될 때마다 호출되는 함수입니다! 개발자가 인스펙터에서 속성을 수정하면 'OnValidate' 메서드를 자동으로 호출합니다. 이는 'OnValidate'를 사용하여 다른 속성을 업데이트하거나 속성이 수정될 때마다 유효성 검사를 수행할 수 있음을 의미합니다. 예를 들어 health와 maxHealth라는 두 가지 속성이 있는 스크립트가 있다고 가정해 보겠습니다!! health가 maxHealth보다 크지 않도록 해야 합니다. 다음과 같이 OnValidate를 사용하여 개발자가 health을 잘못 수정해도 maxHealth보다 커질 수 없게 적용할 수 있습니다. using UnityEngine; pub..
Meta Avatar SDK 설치하기 https://developer.oculus.com/downloads/package/meta-avatars-sdk/ 위 사이트에 가서 압축파일을 다운받은 후 패키지에 Import해주시면 됩니다! Meta Avatar 사용하기 임포트가 끝나면 Oculus 폴더내에 Avatar2폴더가 생긴것을 볼 수 있습니다! 검색창에 AvatarSDK를 검색해본 후 하이러키창에 AvatarSdkManagerHorizon을 드래그해서 배치해줍니다! 다음으로 빈오브젝트를 하나 생성 후 Entity라 이름을 지어준 후, Sample Avatar Enitiy 컴포넌트를 붙여줍니다! 그 후 실행을 해보면! Avatar가 불러와지는 것을 확인할 수 있습니다만! 머리가 없습니다! Sample Av..
"Resources" 폴더란? "Resources" 폴더는 Resources.Load 기능을 사용하여 런타임에 자산을 로드할 수 있는 특수 폴더입니다!! Resources.Load 함수를 사용하여 런타임에 로드하려는 모든 자산은 "Resources" 폴더에 배치해야 합니다.(아래참고) Resources폴더 내에 리소스들은 게임 빌드에 포함되어 있기 때문에 런타임 중에 언로드할 수 없으며 "Resources" 폴더에 큰 자산이 너무 많으면 게임 성능에 영향을 줄 수 있습니다!! DeadCamera = Resources.Load("HideAndSeek/DeadPlayer"); soundClips = Resources.LoadAll(folderName); 예시코드입니다!
InvokeRepeating란? InvokeRepeating 함수는 MonoBehaviour 클래스의 메서드로, 지정된 시간 간격으로 반복해서 메서드를 호출합니다. 일반적으로 주기적으로 실행되는 로직을 구현할 때 사용됩니다. InvokeRepeating은 총 3개의 매개변수를 받습니다! methodName: 호출할 메서드 이름 (string) time: 첫 번째 호출 이전의 대기 시간 (float) repeatRate: 반복 간격 (float) InvokeRepeating("UpdatePosition", 1f, 0.5f)는 "UpdatePosition" 메서드를 1초 후에 처음 호출하고, 그 후 0.5초마다 메서드를 호출합니다. 주의 해당 객체가 활성화되어 있어야 작동하며, 해당 객체가 비활성화되면 즉시..
유니티 OVR SDK가 버전50을 맞이해 새로운 기능들이 많이 생겨났는데요! 그 중 컨트롤러를 이용한 기능들이 한 층 더 업그레이드됐다는 소문을 들어 직접 경험해보았습니다! 경험해본 결과를 먼저 말해보자면, 햅틱(진동)기능이 가장 놀라웠습니다! 에게...진동이 거기서 거기지 뭐가 더 특별하고 차이가 있겠어? 라고 생각을 했었는데 사용해본 후에는 그 생각이 잘못되었음을 깨달았습니다..! Touch Pro Scene 먼저 OVR SDK를 다운받으면 Oculus 폴더가 생기는 것을 확인할 수 있습니다! 2022.07.13 - [Unity/VR(OVR SDK)] - OVR Project Setting 방법 OVR Project Setting 방법 💡 첫 번째, Asset Store에서 Oculus Integra..
유니티에서 unitask를 사용하기 앞서, 유니티에서 사용하는 코루틴이 무엇인지 알아야 진정한 unitask의 장점을 알 수 있습니다.지피지기 백전불태 그렇기에 유니티에 기본적으로 내장되어 있는 코루틴에 대해 자세히 알아본 다음, 유니티에서의 unitask 사용방법에 대해 알아보겠습니다! 코루틴이란?유니티에서 사용되는 코루틴은 비동기 프로그래밍을 수행하기 위한 기능 중 하나입니다. 코루틴은 일시 중지할 수 있는 함수의 실행을 가능하게 하며,특정 조건이 충족될 때까지 기다린 후(ex_ yield return)에 실행을 계속할 수 있도록 합니다. UniTask란?유니티에서 UniTask는 비동기 작업을 처리하기 위한 도구로, 유니티에 내장되어 있는 코루틴 기능을 대체하며 async/await 패턴을 지원합니..