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

진우의 혼잣말하는 블로그

  • 분류 전체보기 (636) N
    • Unity (450) N
      • Study (224) N
      • 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)
  • 홈
  • 태그
  • 방명록
Unity Profiler를 이용해 최적화(성능 개선하기)

Unity Profiler를 이용해 최적화(성능 개선하기)

❓ Profiler란? 성능 분석을 위한 도구이다. 프로그램의 시간 복잡도 및 공간 상태(Memory), 함수 호출 주기와 빈도를 알아낼 수 있다 즉, Profiler를 이용하여 어떤 이유로 프로그램의 성능에 악영향을 미쳤는지 확인할 수 있다 Profiler는 Frame의 변화를 알아볼 수 있으며, 스크립트를 실행하거나 렌더링 작업을 수행하는데 걸리는 시간 등을 볼 수 있다 종류, 작업별로 시간을 모두 분석할 수 있으며 가장 시간이 많이 소요되는 작업부터 순서대로 정렬해서 보여준다 ❓성능 분석을 왜 해야하냐? 최적화가 잘 이루어지지 않은 게임을 하면 쉽게 말해 이른바 "렉"이 심하게 걸린다 성능 분석을 통해 게임의 최적화를 도울 수 있다 ❓ Profiler를 사용하는 방법 상단 [Window] - [An..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 20.
  • textsms

Unity C#의 ref / out 복습

ref란? 참조에 의한 매개 변수 전달, 값이 할당된 변수를 사용해야 한다 void Swap(int x, int y) { int temp = y; int y = x; int x = temp; } void main() { int x = 3; int y = 4; Swap(x,y); print(x,y); //결과 x : 3, y : 4 } Swap메서드를 통해 x,y값이 바꾸길 바랬지만 바뀌지 않는다 ref키워드를 매개 변수 앞에 붙여주기만 하면 된다 void Swap(ref int x, ref int y) { int temp = y; int y = x; int x = temp; } void main() { int x = 3; int y = 4; Swap(ref x, ref y); print(x, y); //..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 19.
  • textsms

C# var 키워드

var 키워드란? var 키워드의 기능은 자료형을 자동으로 저장하는 것이다 var 키워드는 지역변수로 사용되어야 하며, 선언과 동시에 초기화 작업을 해야한다 var 100; print("Type : "+ var.GetType()); // 결과 Type : int32 var은 컴파일러가 변수를 생성할 때, 값을 보고 타입을 추론해서 stack 영역에 지정하고 값을 삽입한다 ex) var = 5; 이면 5라는 값을 통해 Type이 int라고 추론함 따라서, int형일 경우 4byte를 stack에 할당받게된다 var a = 5; //4byte var b = 6.6f;//8byte 따라서, int형인 a에 double형인 b의 값으로 덮어쓰려고 하면, a는 4byte의 영역을 할당받았기에 8byte의 영역을 ..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 19.
  • textsms
Unity 포물선으로 Bomb 던지기

Unity 포물선으로 Bomb 던지기

애니메이션 이벤트를 이용해서 원하는 위치에 폭탄이 날라가게끔 구현했다 포물선 방정식은 저번 NavMesh에서 사용한 코드를 재활용했다 애니메이션 이벤트는 이렇게 사용했다 오늘 전시회를 다녀와서 너무 졸려 미치겠지만 그래도 하루에 30분이라도 공부하자는 마인드로 구현해봤다... 일단 던지는 세기와 각도가 맘에들지 않으므로 수정해봐야겠다 + 폭탄이 터졌을 때의 이펙트와 피격 이펙트 등을 구현해야겠다

  • format_list_bulleted Unity/Study
  • · 2022. 9. 18.
  • textsms
Unity 포물선 방정식을 대입한 Off Mesh Link

Unity 포물선 방정식을 대입한 Off Mesh Link

IEnumerator Start() { while (true) { yield return new WaitUntil(() => IsOnJump()); yield return StartCoroutine(JumpTo()); } } private bool IsOnJump() { if (agent.isOnOffMeshLink) { OffMeshLinkData linkData = agent.currentOffMeshLinkData; //OffMeshLinkType Manula = 0, Drop = 1, Jump = 2 if (linkData.linkType == OffMeshLinkType.LinkTypeJumpAcross || linkData.linkType == OffMeshLinkType.LinkTypeDro..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 17.
  • textsms
Unity AI Off Mesh Link

Unity AI Off Mesh Link

❓ Off Mesh Link란 사다리, 암벽과 같이 수직으로 올라가거나 내려오는 길 절벽 사이를 뛰어서 넘어가거나 낭떠러지 아래로 떨어지는 길과 같이 Mesh가 끊어져 있는 곳을 이동할 수 있께 설정하는 것이다 📖 자동으로 Off Mesh Link 설정하는 방법 Navigation View에서 Object 탭을 선택하고 Genertate OffMeshLinks를 체크한다 그 후 Bake탭에 가서 Drop Height와 Jump Distance 값을 설정한 후 Bake를 눌러 데이터를 저장해주면 된다 📌자동 Off Mesh Link 장단점 더보기 장점 : 게임월드에 배치된 많은 오브젝트의 Off Mesh Link를 한꺼번에 설정 할 수 있다 단점 : 낙하 높이와 점프거리를 하나만 설정할 수 있어 다양한 지..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 17.
  • textsms

Unity namespace

💡namespace namespace는 클래스들의 묶음이다 namespace를 쓰는 이유는 프로젝트의 규모가 커질수록 각종 이름들의 충돌 발생 가능성을 막아주기 위함이다 namespace 네임스페이스-이름 { class A{} class B{} ... } 💡namespace 사용방법 네임스페이스를 사용하는 방법은 2가지 있다 전체 네임스페이스를 다 적는 방식 using 지시문을 사용하는 방식 UnityEngine.Debug.Log("네임스페이스 호출"); 위와 같이 UnityEngine라는 namespace을 선언해준다음 사용하거나 using UnityEngine; public class Namespaces : MonoBehaviour { void Start() { Debug.Log("네임스페이스 호출"..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 16.
  • textsms

Unity Physics.OverlapShere을 이용한 주변 오브젝트들 수집

폭탄이 폭발했을 때 주변 오브젝트들과 상호작용할 때 사용하면 유용하다 Collider[] colliders = Physics.OverlapShere(폭발위치, 반지름); foreach(Collider col in colliders)을 이용하여 조리하면 된다 물론, 주변 오브젝트에 콜라이더가 달려있어야한다

  • format_list_bulleted Unity/Study
  • · 2022. 9. 15.
  • textsms

Unity Collider On/Off

콜라이더 끄는 방법은 쉽다 BoxCollider를 예시로 들묜 GetComponent().enable = true; //켜기 GetComponent().enable = false; //끄기 enable로 끄고 킬 수 있다!

  • format_list_bulleted Unity/Study
  • · 2022. 9. 14.
  • textsms
Unity ScreenToWorldPoint & WorldToScreenPoint  & ViewportToWorldPoint & WorldToV

Unity ScreenToWorldPoint & WorldToScreenPoint & ViewportToWorldPoint & WorldToV

ViewportToWorldPoint & WorldToViewportPoint 활용법 오브젝트가 화면(보여지고 있는 화면)에서 벗어나게 하지 않게 하고 싶을 때 사용하면 된다 이렇게 Cube오브젝트는 화면밖으로 나가지 않는다전 시간에도 말했다시피 ViewPort는 비율이므로 0~1사이 값으로 컨트롤한다Cube의 World Transform Position을 ViewPort 좌표계의 값으로 변환한다 그러면 ViewPort좌표계에 0~1비율 사이에 존재하게 되는데 이때 x좌표가 0 or 1을 벗어나려고 하면 최대치를 0과 1로 하여 화면에 고정시킨다 그다음으로 ViewPort좌표계의 위치를 다시 3차원의 좌표계 World 좌표계로 변환해준다 그거를 transform에 대입한다 ScreenToWorldPoin..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 13.
  • textsms
Unity ScreenPointToRay

Unity ScreenPointToRay

ScreenPointToRay에 대해 알아보자 우리는 모니터를 통해 3차원 게임을 바라본다 모니터는 2차원 (쉽게 설명하면 가로, 세로로만 이루어진)으로 되어 있는데 어떻게 2차원 모니터의 한 지점을 눌렀을 때 게임 환경인 3차원에서의 Point지점으로 갈 수 있을까? 일단 원리는 이러하다 카메라로부터 플레이어가 클릭한 위치로 Ray(광선)을 쏜다 현재 카메라에 보이는 화면을 관통해 뻗어나가는 광선은 지정한 길이에 도달하거나 오브젝트에 부딪히면 멈춘다 오브젝트에 부딪혀 멈추게 되면 오브젝트의 정보를 얻는다 내용이 이해가 가지 않으면 그냥 이렇게 생각하자 Mouse를 클릭한 곳에 뭔가의 Interaction을 취하고 싶으면 ScreenPointToRay이 녀석을 이용하면 된다~! (해석하면 카메라로부터의 ..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 13.
  • textsms
Unity Shake Camaera

Unity Shake Camaera

뭔가 특수한 상황에서 카메라를 흔들고 싶은 연출이 필요할 때가 있지 않음? 그럴때를 위한 방법을 가져왔음! 먼저 싱글톤 패턴을 이용하여 다른 코드에서 손쉽게 접근할 수 있도록 해줘! 그리고 OnShakeCamera가 호출될 때마다 카메라가 흔들리게 할거야! 첫 번째 방법은 Camera의 Position자체를 움직이는거고! 두 번째 방법은 Camera의 Rotation을 바꿔주는거임! 나 같은 경우에는 칼같은 무기에 상대 Enemy가 닿으면 카메라가 흔들리게끔 설정했음! CameraShake.Instance아래 코드는 무시하셈~

  • format_list_bulleted Unity/Study
  • · 2022. 9. 12.
  • textsms
Unity Camera Projection

Unity Camera Projection

유니티 카메라를 눌러보면 Projection(투영방식) 탭에 2가지 선택지가 있다 1. Perspective 2. Orthographic persepctive멀리 있는 물체는 작게, 가까이 있는 물체는 크게 즉, 원근감과 공간감이 표현된 화면을 렌더링해서 보여줍니다 투영선(Field Of View)가 존재합니다(빨간색선) Orthographic투영선이 평행을 이루고 있다 따라서,멀리 있든 가까이 있든 실제 게임오브젝트의 사이즈로 보인다 즉, 원근감과 공간감이 따로 표현되지 않는다 투영선을 작게하면 화면이 좁아지지만 오브젝트는 커지고, 투영선을 크게하면 화면은 넓어지지만 오브젝트는 작아집니다. 즉 Zoom In / Zoom Out 개념을 생각하면 됩니다 정리Perspective : 원근법이 적용되는 3D ..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 6.
  • textsms
Unity Mixamo에서 받아온 캐릭터의 재질이 안입혀져있을 때

Unity Mixamo에서 받아온 캐릭터의 재질이 안입혀져있을 때

캐릭터 재질이 안입혀져있을 때 Extract Textures를 누르고 Materials를 클릭하고 폴더선택하면 끝!

  • format_list_bulleted Unity/Study
  • · 2022. 9. 6.
  • textsms
Unity New Input System

Unity New Input System

New Input System은 기존 유니티 Input System의 단점을 보완한 시스템이다 다양한 플랫폼에서 빠르게 컨트롤 설정을 변경할 수 있다! 기존 Inpuy System은 하나하나 코드로 수정해야했다.. 패키지 시스템에서 인풋 시스템을 임포트하자.그럼 이런 무시무시한 워닝 문구가 뜨는데 그냥 Yes누르면 된다. 그다음 프로젝트 세팅에 가보면 [Player] 창에 아래로 내려가다보면 Active Input Handling이라는 칸이 있는데 거기에 Input System Package(New)로 체크되어있을 것이다. 나는 Old버전의 인풋 시스템도 사용중이라 Both를 체크했다.그다음 프로젝트 폴더 아래 [+]버튼을 누르고 아래로 내려가다 보면 Input Actions가 생겼을거다. 눌러보자!이런..

  • format_list_bulleted Unity/Study
  • · 2022. 9. 5.
  • textsms
  • navigate_before
  • 1
  • ···
  • 11
  • 12
  • 13
  • 14
  • 15
  • navigate_next
진우의 혼잣말 하는 블로그👱‍♀️
📂전체 카테고리
  • 분류 전체보기 (636) N
    • Unity (450) N
      • Study (224) N
      • 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)
인기 글
최근 글
태그
  • #Meta SDK
  • #오블완
  • #Unity
  • #유니티
  • #유니티 VR
  • #웹 개발
  • #티스토리챌린지
  • #자바스크립트
  • #유니티 꿀팁
  • #VR
10-15 01:00
전체 방문자
오늘
어제
전체
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바