전체 글252 [Unity] Unity Render Streaming(유니티 스트리밍) 유니티의 화면을 외부에 스트리밍 하는 방법 1. PakageManager에서 좌측 상단의 + 버튼을 누르고 Add package by name을 누른 뒤 아래의 문자를 입력 후 Add 클릭 com.unity.renderstreaming 2. 다운받은 뒤 뜨는 Render Streaming Wizard에서 Fix All 클릭 3. 같은 창 하단의 WebApp에서 첫번째 버튼을 클릭하여 web app 다운 4. 다운받은 실행파일 실행 5. 실행 후 가장 하단의 경로를 인터넷 주소창에 복사하여 진입 http://127.0.0.1:80 6. Receiver Sample 클릭 7. 유니티로 다시 돌아와서 다운받은 Unity Render Streaming 패키지의 샘플을 프로젝트에 임포트 8. 외부로 스트리밍하고 .. 2024. 4. 18. [Gstreamer] Gstreamer 기본 튜토리얼 4 : 시간 관리 전체 소스코드 #include #ifdef __APPLE__ #include #endif /* Structure to contain all our information, so we can pass it around */ typedef struct _CustomData { GstElement *playbin; /* Our one and only element */ gboolean playing; /* Are we in the PLAYING state? */ gboolean terminate; /* Should we terminate execution? */ gboolean seek_enabled; /* Is seeking enabled for this media? */ gboolean seek_done; .. 2024. 3. 25. [Gstreamer] Gstreamer 기본 튜토리얼 3 전체 소스코드 #include #ifdef __APPLE__ #include #endif /* Structure to contain all our information, so we can pass it to callbacks */ typedef struct _CustomData { GstElement *pipeline; GstElement *source; GstElement *convert; GstElement *resample; GstElement *sink; } CustomData; /* Handler for the pad-added signal */ static void pad_added_handler (GstElement * src, GstPad * pad, CustomData * data); i.. 2024. 3. 22. [Gstreamer] Gstreamer 기본 튜토리얼 2 전체 소스코드 #include #ifdef __APPLE__ #include #endif int tutorial_main (int argc, char *argv[]) { GstElement *pipeline, *source, *sink; GstBus *bus; GstMessage *msg; GstStateChangeReturn ret; /* Initialize GStreamer */ gst_init (&argc, &argv); /* Create the elements */ source = gst_element_factory_make ("videotestsrc", "source"); sink = gst_element_factory_make ("autovideosink", "sink"); /* Create .. 2024. 3. 21. [Gstreamer] Gstreamer 기본 튜토리얼 1 전체 소스코드 #include #ifdef __APPLE__ #include #endif int tutorial_main (int argc, char *argv[]) { GstElement *pipeline; GstBus *bus; GstMessage *msg; /* Initialize GStreamer */ gst_init (&argc, &argv); /* Build the pipeline */ pipeline = gst_parse_launch ("playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm", NULL); /* Start playing */ gst_element_set_state (pipeline, .. 2024. 3. 19. [Gstreamer] Gstreamer 튜토리얼 준비 1. Gstreamer 설치 2. 코드 다운 subprojects/gst-docs · main · GStreamer / gstreamer · GitLab GStreamer multimedia framework gitlab.freedesktop.org 3. 압축해제 후 솔루션 파일 찾기 - gstreamer-main-subprojects-gst-docs > subprojects > gst-docs > examples > tutorials > vs2010 > tutorials.sln파일 실행 4. 속성관리자 설정 - visual studio 파일 실행 이후 vs 안에서 설정 보기 > 다른 창 > 속성관리자 > 파일목록 전체 선택 > 마우스 오른쪽버튼 클릭 > 기존 속성 시트 추가 선택 5. 기존 gstrea.. 2024. 3. 19. [Unity] ReadOnly 인스펙터 - 읽기전용으로 인스펙터에 보일 수 있게 만들어주는 Attribute 생성 코드 - 변수 앞에 [ReadOnly]를 붙여 사용가능(단, public 이거나 Serialized Field 를 이용해 인스펙터 상에서 보여야 함.) - [ReadOnly(false)] 또는 [ReadOnly]는 모든 경우에 읽기전용 - [ReadOnly(true)] 는 런타임 중에만 읽기전용으로 변경 #region ReadOnly 인스펙터 생성이 가능하도록 함. #if UNITY_EDITOR namespace UnityEditor { [CustomPropertyDrawer(typeof(ReadOnlyAttribute), true)] public class ReadOnlyAttributeDrawer : PropertyDrawer.. 2024. 3. 4. [Unity] 유니티 - UI 자동 바인딩 구현(Reflection 이용, enum) 인프런 루키스님의 강좌를 참고했습니다. - 드래그 앤 드롭을 매번 해주는 것을 대체하기 위해서 구현했다. - dictionary에 사용할 오브젝트를 담고, 드래그 앤 드롭 대신 enum을 이용했다. - enum의 원소이름은 사용할 오브젝트의 실제 이름과 동일해야 한다. // UI_Base using System; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class UI_Base : MonoBehaviour { // 컴포넌트 타입별 오브젝트들을 담아 관리할 딕셔너리 // Key : enum 이름, Value : 오브젝트 배열 Dictionary dict = new Dictiona.. 2024. 2. 4. [Unity][C#] 인터페이스(Interface) 인터페이스란? - 외부와 통신하는 공개 통로, 통로의 규격 - 통로의 규격은 강제하지만, 내부에서 어떤 일이 일어날지를 결정하지는 않음. 인터페이스의 특징 - 관례적으로 이름 앞에 I를 붙여 선언 - 인터페이스를 상속하는 클래스는 해당 인터페이스의 메서드를 반드시 구현해야함. - 인터페이스를 상속하는 클래스는 해당 인터페이스의 메서드를 반드시 public으로 선언해야함. - 세부적인 타입과 구체적인 구현을 따지지 않고 동작 - 느슨한 커플링(Loose Coupling) : 어떤 코드가 특정 클래스의 구현에 결합되지 않아 유연하게 변경 가능한 상태 예시 public interface IItem { void Use(GameObject target); } public class HpPotion : MonoBe.. 2024. 2. 1. [Unity] 싱글톤 - Managers(매니저 관리 담당 매니저) using UnityEngine; public class Managers : MonoBehaviour { #region 싱글톤 static Managers _instance = null; public static Managers Instance { get { Init(); return _instance; } } static void Init() { if (_instance == null) { // @Manager 라는 이름의 게임 오브젝트를 찾음 GameObject mgr = GameObject.Find("@Managers"); // 해당 게임 오브젝트를 찾지 못한 경우 -> 새로 생성 if (mgr == null) { Debug.Log("매니저 새로 생성"); // 게임 오브젝트 생성 mgr = Ins.. 2024. 1. 29. [자기계발][책] 매일매일 책 레버리지를 읽고 기록하기 1/18 목 (202p ~ 217p) - 구성원을 강제로 레버리지 하려고 하면 구성원은 나에게 반감을 가질 것이다. - 구성원에게 신뢰와 책임감을 부여하라. 그들 스스로 일정을 결정하게 하고, 시간적인 여유를 주면, 그들은 훨씬 분발해서 일할 것이다. - 기업을 운영하는데 많은 원칙이 필요하지만 유일한 상수는 변화와 혁신이다. 기업은 성장하기 위해 계속 변해야 한다. [변화의 전략] - 과감한 변화를 통해 성장하겠다는 마음가짐을 가지고, 성장을 위한 전략에 더 많은 시간을 투자하라. - 부정적인 결과를 수용하라. - 내가 하기 싫거나, 할 수 없거나, 하지 않아도 되는 일은 놓아줘야 한다. - 중요한 일은 신뢰할 수 있는 인재에게 맡겨야 한다. - 내가 먼저 구성원을 신뢰하라. - 너무 바빠서 자신을 도.. 2024. 1. 18. [Unity] NavMesh 동적 베이킹(feat. Static 체크박스) 게임 실행 중 NavMesh의 Map을 변경해야 될 일이 생겨서 NavMesh 동적 베이크에 대해 알아보았다. 기본적으로 unity 22버전 이후에는 NavMesh 전용 패키지가 생겨 해당 패키지를 다운받아 사용하면 이전 버전에서 깃허브에서 다운받아 사용하던 고급 NavMesh가 기본적으로 내장이 되었다. 아래와 같이 컴포넌트를 설정하고, 스크립트를 작성해 MapManager에 연결하면 끝! 인줄 알았지만 가장 밑의 이미지처럼 오류가 생겼다. 이것저것 해보다가 알아낸 결과, 왜인지는 잘 모르지만 GameObject 옆의 Static 체크박스를 모두 해제하니깐 되었다! using Unity.AI.Navigation; using UnityEngine; public class MapManager : MonoB.. 2024. 1. 9. 이전 1 2 3 4 ··· 21 다음