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을 다운로드하시면 됩니다. 다운을 받으시고..
내용 https://youtu.be/2MLYj9rvtp4 이 게임은 꼭 트레일러를 봐야 할 것 같아서 영상을 가져와봤습니다..! 사이드퀘스트에서 다운받을 수 있으면 Free입니다! 팬게임...퀄리티가 장난이 아니네요! 무려, 멀티플레이가 가능합니다!! 별점 (9/10) 진격의 거인을 좋아하는 팬으로써 높은 별점을 줄 수 밖에 없었습니다...는 농담이고 맵의 웅장함 게임 최적화가 잘되어 있어서 멀미가 안느껴지는 것(물론 텍스쳐 해상도는 많이 Low하다..!) 멀티가 가능하다 거인의 매력을 잘 살렸다 입체기동장 타는 것이 생각보다 재밌다! 정도 뽑아봤습니다! 게임 난이도가 높다는 점에서 별이 1개 까였지만, 훌륭한 팬아트 게임이였습니다! 게임 플레이 방법 왼쪽 컨트롤러 메뉴버튼을 눌러서 UI Panel을 띄..
AnimateHandOnInput using UnityEngine; using UnityEngine.InputSystem; public class AnimateHandOnInput : MonoBehaviour { public InputActionProperty pinchAnimationAction; public InputActionProperty gripAnimationAction; public Animator handAnimator; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { float triggerValue = pinchAnimation..
에셋 링크 [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 측정 에셋을 찾았습니다! 사용 방법 에셋을 임포트 ..
using EzySlice; void FixedUpdate() { RaycastHit hit; var position = StartSlicingPoint.position; Vector3 dir = EndSlicingPoint.position - position; bool hasHit = Physics.Raycast(position, dir, out hit, dir.magnitude, Sliciable); if (hasHit && VelocityEstimator.GetVelocityEstimate().magnitude > NeedVelocityPower) { if (hit.transform.gameObject.layer == LayerMask.NameToLayer("Bomb")) { // Play game..
OnValidate란? 'OnValidate'는 Inspector 창에서 스크립트의 속성(프로퍼티 값)이 수정될 때마다 호출되는 함수입니다! 개발자가 인스펙터에서 속성을 수정하면 'OnValidate' 메서드를 자동으로 호출합니다. 이는 'OnValidate'를 사용하여 다른 속성을 업데이트하거나 속성이 수정될 때마다 유효성 검사를 수행할 수 있음을 의미합니다. 예를 들어 health와 maxHealth라는 두 가지 속성이 있는 스크립트가 있다고 가정해 보겠습니다!! health가 maxHealth보다 크지 않도록 해야 합니다. 다음과 같이 OnValidate를 사용하여 개발자가 health을 잘못 수정해도 maxHealth보다 커질 수 없게 적용할 수 있습니다. using UnityEngine; pub..
이 게임은 무슨게임?Kill It With fire의 VR 버전에서는 인류의 가장 오래되고 치명적인 숙적을 자유롭게 사냥하고 처치할 수 있다고 합니다! 다리 여덟 개 달린 괴물(?)을 다양한 방법으로 쓰러뜨릴 수 있다고 합니다! 단... 거미를 무찌르기 위해서는.... VR 속에서 거미를 마주해야 한다는 점이죠... 게임 스토리마을에 ‘거미 문제’가 발생했고, Kill It With Fire 공인 해충구제업자인 당신이 유일한 해결책입니다. 거미 박멸 임무에 도움을 주는 다양한 무기와 기술이 준비되어 있습니다!! 작업 중에 부수적 피해가 발생하면 어떻게 하냐고요? 가장 중요한 건 거미를 죽이는 거니까 그런 건 신경 쓰지 마세요. 별점(8.5/10) 1.5점이 마이너스 된 이유는.....거미가 너무 징그러웠..
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..
using UnityEngine; using System.Collections; //------------------------------------------------------------------------- public class VelocityEstimator : MonoBehaviour { [Tooltip( "How many frames to average over for computing velocity" )] public int velocityAverageFrames = 5; [Tooltip( "How many frames to average over for computing angular velocity" )] public int angularVelocityAverageFrames = ..
"Resources" 폴더란? "Resources" 폴더는 Resources.Load 기능을 사용하여 런타임에 자산을 로드할 수 있는 특수 폴더입니다!! Resources.Load 함수를 사용하여 런타임에 로드하려는 모든 자산은 "Resources" 폴더에 배치해야 합니다.(아래참고) Resources폴더 내에 리소스들은 게임 빌드에 포함되어 있기 때문에 런타임 중에 언로드할 수 없으며 "Resources" 폴더에 큰 자산이 너무 많으면 게임 성능에 영향을 줄 수 있습니다!! DeadCamera = Resources.Load("HideAndSeek/DeadPlayer"); soundClips = Resources.LoadAll(folderName); 예시코드입니다!
public NetworkVariable Ready = new NetworkVariable(); 위와 같이 NetworkVariable을 클라이언트에서 바꾸고 싶다면 ReadyToServerRpc(); 함수를 하나 만들어서 [ServerRpc(RequireOwnership = true)] void ReadyToServerRpc() { Ready.Value = true; } 위와 같이 RequireOwnership을 true로 하면 됩니다!
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..