진우의 혼잣말하는 블로그
close
프로필 배경
프로필 로고

진우의 혼잣말하는 블로그

  • 분류 전체보기 (636)
    • Unity (450)
      • Study (224)
      • VR (75)
      • AR (6)
      • Assets (39)
      • Fusion2 (9)
      • Shader (22)
      • 디자인패턴 (7)
      • Animations (7)
      • Editor (9)
      • Attribute (7)
      • VContainer (8)
      • Netcode for GameObjects (21)
      • Relay (5)
      • Lobby (11)
    • 진우의 포트폴리오 (23)
    • 나만의 꿀팁 (37)
    • Git 사용방법 (22)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (8)
    • 웹 개발 (27)
    • 정리 안 됨 (16)
    • 뉴스레터 (0)
  • 홈
  • 태그
  • 방명록
유니티 Door(문) 스크립트

유니티 Door(문) 스크립트

using UnityEngine;using System.Collections;[RequireComponent(typeof(Collider))]public class Door : MonoBehaviour { public enum rotOrient { Y_Axis_Up, Z_Axis_Up, X_Axis_Up } public enum rotFixAxis { Y, Z } public rotOrient rotationOrientation; public bool applyRotationFix = false; public rotFixAxis rotationAxisFix; public float doorOpenAngle = -90.0f; [Range(1,5)] public float speed = 3.0f;..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 17.
  • textsms
유니티 PlayerPrefs 초기화하는 방법

유니티 PlayerPrefs 초기화하는 방법

using UnityEngine;using UnityEditor;public class ResetPlayerPrefs : MonoBehaviour{ [MenuItem("Window/PlayerPrefs 초기화")] private static void ResetPrefs() { PlayerPrefs.DeleteAll(); Debug.Log("PlayerPrefs has been reset."); }} 유니티 에디터 상단에서 버튼을 통해 PlayerPrefs 데이터를 초기화하는 코드입니다. 코드는 에디터 폴더에 만드셔야 합니다.코드를 만들고 나면 위 사진처럼 윈도우 탭에서 PlayerPrefs 데이터를 초기화할 수 있게 됩니다.

  • format_list_bulleted Unity/Study
  • · 2024. 5. 16.
  • textsms
유니티 Sprite Altas 만들기 #최적화

유니티 Sprite Altas 만들기 #최적화

위와 같이 여러개의 Image를 사용하는 캔버스가 있다고 가정하겠습니다.이런 경우, 우측 사진처럼 각 이미지마다 Draw Call을 발생하게 됩니다. 하나의 Image를 여러개의 이미지처럼 사용하는 Altas기법을 사용해서 최적화를 해보겠습니다.Sprite Altas 사용하기 Sprite Altas를 사용하기 위해서는 사전 세팅이 필요합니다.프로젝트 세팅에 가서 에디터 탭, Sprite Altas 모드를 Sprite Altas V1 - Always Enabled로 설정해줍니다. 만약 보이지 않는다면 2D Sprite 패지키를 다운받아줍니다.  그 후, Sprite Atlas를 생성해줍니다. 생성해준 다음 사용할 Sprite들을 집어넣어줍니다.Preview를 하면 아틀라스가 생성된 것을 확인할 수 있습니다..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 9.
  • textsms
유니티 UI 최적화하는 방법에 대해서

유니티 UI 최적화하는 방법에 대해서

해당 글은 아래 유니티 블로그에 나온 글을 정리한 것입니다. Optimize your mobile game performance: Get expert tips on physics, UI, and audio settings | Unity BlogYou might have UI elements that only appear sporadically in the game (e.g., a health bar that appears when a character takes damage). If your invisible UI element is active, it might still be using draw calls. Explicitly disable any invisible UI componentsblog.u..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 8.
  • textsms
유니티 Scene이 로드(Load)됐음을 알 수 있는 콜백 함수

유니티 Scene이 로드(Load)됐음을 알 수 있는 콜백 함수

씬이 로드됨을 알아야 할 때가 종종 있습니다. 예를 들어, 멀티플레이어 게임이라든지, 로딩화면에서 대기하고 있으며 로딩이 다 된 경우에 클릭하면 넘어갈 수 있는 상황 등에 사용할 수 있습니다. 유니티에서는 씬(Scene)이 로드될 때 호출되는 콜백 함수는 SceneManager<span style="background-color: #ffffff; color: #111111; text-align: start;"..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 2.
  • textsms
유니티 Day Night System #밤 낮을 바꿔보자

유니티 Day Night System #밤 낮을 바꿔보자

Day Night System 시간을 세팅하자 아침을 몇시로 세팅 할 지, 저녁은 몇 시로 할 것인지, 흐르는 시간의 배율 등을 세팅할 수 있게 도와주는 SO를 만들어보겠습니다. using UnityEngine; [CreateAssetMenu(fileName = "TimeSettings", menuName = "TimeSettings")] public class TimeSettings : ScriptableObject { public float timeMultiplier = 2000; public float startHour = 12; public float sunriseHour = 6; public float sunsetHour = 18; } 시간의 흐름과 낮/밤의 변화를 관리하자 using Syste..

  • format_list_bulleted Unity/Study
  • · 2024. 4. 22.
  • textsms
유니티 GPU Instancing에 대해서 #동적 객체 최적화 방법

유니티 GPU Instancing에 대해서 #동적 객체 최적화 방법

Instancing이란? Instancing은 주로 '복제' 또는 '반복 생성'의 개념을 뜻합니다. 특정 객체, 데이터, 또는 구조의 여러 인스턴스를 생성하고 관리하는 과정을 포함됩니다. 유니티에서 Instancing이라는 개념은 GPU Instancing과 Instantiate라는 2가지 의미로 사용되곤 합니다. 이 포스팅에서는 GPU Instancing에 대해서만 말해보고자 합니다. GPU Instancing이란? GPU Instancing은 그래픽 처리 단계에서 사용되는 "최적화 기법"입니다. GPU Instancing을 사용하면 '동일한 메시'의 여러 복제본을 한 번에 그리거나 렌더링할 수 있습니다. 좀비 게임을 예로 들어보겠습니다. 좀비 게임을 할 때 좀비가 한 두마리만 생성되는 경우가 있을까요..

  • format_list_bulleted Unity/Study
  • · 2024. 4. 18.
  • textsms
유니티 Naming and Code Style Tips For C# scripting

유니티 Naming and Code Style Tips For C# scripting

작성된 글은 아래 내용을 정리한 내용입니다. Naming and Code Style Tips for C# Scripting in Unity Pick up best practices for styling your C# code in Unity. These tips can help you and your team create a cleaner, more readable and scalable codebase. unity.com Casing terminology Case Type Description Example Pascal Case 첫 글자와 각 단어의 첫 글자를 대문자로 표기합니다. MyExampleText Camel Case 첫 단어의 첫 글자는 소문자로, 그 이후의 단어의 첫 글자는 대문자로 표기합니..

  • format_list_bulleted Unity/Study
  • · 2024. 4. 10.
  • textsms
유니티 프로젝트 해상도 옵션 설정하기 #Screen Resolutions

유니티 프로젝트 해상도 옵션 설정하기 #Screen Resolutions

코드 using UnityEngine; using UnityEngine.UI; public class ResolutionManager : MonoBehaviour { public TMP_Dropdown resolutionDropdown; private Resolution[] resolutions; private void Start() { resolutions = Screen.resolutions; resolutionDropdown.ClearOptions(); HashSet options = new HashSet(); int currentResolutionIndex = 0; for (int i = 0; i < resolutions.Length; i++) { string option = resolutions..

  • format_list_bulleted Unity/Study
  • · 2024. 4. 2.
  • textsms
유니티 프로젝트 그래픽 퀄리티 옵션 설정하기 #High, Middle, Low

유니티 프로젝트 그래픽 퀄리티 옵션 설정하기 #High, Middle, Low

프로젝트 그래픽 퀄리티 옵션 설정 기능 만드는 방법 중 드롭다운(UI)를 이용한 방식에 대해 설명해보겠습니다. 드롭다운 UI를 생성해주고 Option에 High, Middle, Low를 적어줍니다. Option에 적은 순서대로 드롭다운 박스에 나타납니다. 스크립트 작성 public class GameManager : MonoBehaviour { [SerializeField] private List RenderPipelineAssets; [SerializeField] private TMP_Dropdown Dropdown; public void SetPipeline(int value) { if (value = RenderPipelineAssets.Count) { Debug.LogEr..

  • format_list_bulleted Unity/Study
  • · 2024. 4. 1.
  • textsms
유니티 Time.deltaTime에 대해서

유니티 Time.deltaTime에 대해서

중요 클래스 - Time - Unity 매뉴얼 Unity의 Time 클래스가 제공하는 중요한 기본 프로퍼티를 사용하여 프로젝트에서 시간과 관련된 값으로 작업할 수 있습니다. docs.unity3d.com 좋은 컴퓨터는 1초에 2프레임 진행된다고 가정해보겠습니다. 플레이어의 속도가 1m라고 가정했을 때 1초에 2프레임이 진행되는 컴퓨터에의 플레이어는 2m를 가게됩니다. 나쁜 컴퓨터는 1초에 1프레임 진행된다고 가정해보겠습니다. 플레이어의 속도가 1m라고 가정했을 때 1초에 1프레임이 진행되는 컴퓨터에의 플레이어는 1m를 가게됩니다. 나쁜 컴퓨터는 억울하겠죠...? 게임이 공평해야지! 컴퓨터가 좋다고 1m더 멀리 가다니.. 그럴 순 없습니다. 이럴 때 사용하는 것이 Time.deltaTime입니다. Time..

  • format_list_bulleted Unity/Study
  • · 2024. 3. 29.
  • textsms
유니티 Audio Spectrum에서 얻은 데이터에 Buffer를 사용하여 급격하게 변화하는 값 제어하기 #기초

유니티 Audio Spectrum에서 얻은 데이터에 Buffer를 사용하여 급격하게 변화하는 값 제어하기 #기초

이전 글에서 이어지는 내용이므로 이전 글을 보고 와주세요. 2024.03.26 - [Unity/Study] - 유니티 Audio Spectrum에서 얻은 데이터들을 대역 별로 나누기 #기초 Buffer를 사용하면 위 파란색 큐브처럼 값이 급격하게 변화하는 것을 막을 수 있습니다. 값이 갑자기 튀는 현상을 '약간 해결'해줄 수 있다고 생각하시면 됩니다. Buffer란? 'Buffer’는 일반적으로 데이터를 일시적으로 저장하는 임시 저장소를 의미합니다. 데이터를 처리하는 두 개의 프로세스 사이에서 임시 데이터로 사용된다고 생각하시면 됩니다. 아래 코드에서 사용되는 'Buffer’는 FrequencyBands[i]의 값들을 일시적으로 저장하고, 이전의 값들을 기반으로 새로운 값을 계산하는 데 사용됩니다. 버퍼..

  • format_list_bulleted Unity/Study
  • · 2024. 3. 28.
  • textsms
유니티 LoadScene  vs  LoadSceneAsync

유니티 LoadScene vs LoadSceneAsync

유니티에는 씬을 불러오는 두 가지 방법이 있습니다. 동기 방식 - LoadScene LoadScene (동기 방식): LoadScene은 동기 방식으로, 씬을 불러오는 동안 다른 작업을 수행하지 못합니다. 즉, 씬의 모든 데이터를 메모리로 가져오기 전까지 다른 작업이 중지됩니다. 불러오려는 씬의 규모가 크다면, 게임이 멈춰있는 상황이 더 지속될 수 있습니다. 씬의 크기가 작은 경우 LoadScene 방식을 사용하면 됩니다. using UnityEngine; using UnityEngine.SceneManagement; public class Example : MonoBehaviour { public void LoadSceneExample() { SceneManager.LoadScene("SceneName..

  • format_list_bulleted Unity/Study
  • · 2024. 3. 27.
  • textsms
유니티 Audio Spectrum에서 얻은 데이터들을 대역 별로 나누기 #기초

유니티 Audio Spectrum에서 얻은 데이터들을 대역 별로 나누기 #기초

아래 스펙트럼 대역에 대한 내용을 보고 와주세요! 유니티 Audio Spectrum 이론에 대해서 #기초 오디오 스펙트럼이란 악기나 음악에 포함된 음향에너지를 주파수별로 나타낸 것을 뜻합니다. 오디오 스펙트럼을 가지고 무엇을 할 수 있냐? 오디오 스펙트럼을 분석해서 아래 사진처럼 비쥬얼 wlsdn629.tistory.com 움짤을 보면 아시겠지만 서브 베이스랑 베이스, 미드 레인지(하)가 가장 강하네요! AudioPeer 수정 이전 Audio Peer 코드는 이전 글을 참고해주세요. 2024.03.25 - [Unity/Study] - 유니티 Audio Spectrum을 이용한 큐브 스케일 변화 시키기 #기초 using UnityEngine; public class AudioPeer : MonoBehavi..

  • format_list_bulleted Unity/Study
  • · 2024. 3. 26.
  • textsms
유니티 Audio Spectrum을 이용한 큐브 스케일 변화 시키기 #기초

유니티 Audio Spectrum을 이용한 큐브 스케일 변화 시키기 #기초

GetSpectrumData 함수 만들기 using UnityEngine; public class AudioPeer : MonoBehaviour { public static AudioPeer Instance; public enum AudioChannel { Left = 0, Right = 1, Center = 2, LFE = 3, RearLeft = 4, RearRight = 5 } [Header("[Ref]")] [SerializeField] private AudioSource audioSource; [Space(3)] [Header("[Value]")] [SerializeField, Tooltip("첫 번째 (왼쪽) 스테레오 채널 또는 모노 채널 \n두 번째 (오른쪽) 스테레오 채널 \n센터 채널 \..

  • format_list_bulleted Unity/Study
  • · 2024. 3. 25.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ···
  • 15
  • navigate_next
인기 글
태그
  • #VR
  • #유니티 VR
  • #자바스크립트
  • #Unity
  • #유니티 꿀팁
  • #Meta SDK
  • #웹 개발
  • #오블완
  • #유니티
  • #티스토리챌린지
최근 댓글
10-22 04:24
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바