Unity 47

[Unity Shader/테크니컬 아티스트를 위한 유니티 쉐이더 스타트업] 1일차 : 렌더링 파이프라인

쉐이더: 그래픽 데이터의 음영과 색상을 계산하여 다양한 재질을 표현하는 방법 렌더링 파이프라인 1) 오브젝트 데이터 받아오기 2) 정점(Vertex) Shader 3) Rasterizer 4) Pixel Shader / Fragment Shader 책보다 자세히 렌더링 파이프라인을 추가로 더 살펴보면, 3D 오브젝트를 배치하면 각 정점(vertex)을 계산해 CPU에서 정점 데이터를 GPU로 넘겨줌 -GPU- 1) local space 로컬 좌표계(오브젝트 좌표계)에 2) world space 월드 변환 행렬을 곱해주고 3) view space (카메라 공간) 카메라 행렬을 곱해준다. ↓ 4) backface culling 5) 조명(lighting) 6) 클리핑(clipping) 7) 투영(projec..

Unity/Shader 2023.03.15

[Unity] Android Manifest 찾기

진행하는 프로젝트에서 설정창 프로토타입을 만들던 중, 진동 관련하여 androidmanifest.xml 파일이 필요하게 되었다. 1. unity 버전이 설치된 경로 (보통 C:\Program Files\에디터버전\Editor\Data\PlaybackEngines\AndroidPlayer\Apk에 존재) 위의 경로에 존재하지 않아 다른 방법을 찾아보았다. 2. androidmanifest.xml파일 새로 만들어 붙여넣기 unity androidmanifest 검색하면 여러 블로그에서 볼 수 있다. 본인의 경우에는 unity와 연결이 잘 안되어 다른 방법을 찾아보았다. 3. android 플랫폼으로 설정 후, 빌드하기 (프로젝트\Temp\StagingArea에 존재) 하지만 없었다. 더 나아가 검색해보니 a..

Unity/문제 해결 2023.03.11

[Unity UI] 1일차 Menu

UI 배우기 전에도 전체적인 구조 잡는 부분이 중요하겠다고 생각했지만, UI는 특히나 구조가 매우 중요하다고 느꼈다. UITabMenu에서 UIMenu들을 관리하고, UIMenu는 각각의 메뉴에 들어가는 txt, image를 관리한다. 각각의 Menu button 클릭 - 클릭된 메뉴의 text색이 변하고 이미지 활성화 UITabMenu using System.Collections; using System.Collections.Generic; using UnityEngine; public class UItabMenu : MonoBehaviour { public UIMenu[] arrUIMenu; private UIMenu selectedUIMenu; void Start() { foreach (UIMenu..

Unity/수업내용 2023.02.06

[Unity] AddListener와 for문

2023.02.06 - [Unity/수업내용] - [Unity UI] 1일차 Button [Unity UI] 1일차 Button btnBlue는 Main에서 직접 이벤트를 관리, btnYellow와 btnGreen은 Button들을 관리하는 UIButtons에서 이벤트를 관리하는 방법으로 코드를 작성하였다. UIButtons using System.Collections; using System.Collections.Generic; usi narmhye.tistory.com 이전 글에서 있었던 문제의 원인을 찾아보았다. 문제가 발생한 코드 UIButtons의 Start private void Start() { for(int i = 0; i < arrBtns.Length; i++) { this.arrBtns..

Unity/수업과제 2023.02.06

[Unity UI] 1일차 Button

! UI는 순서대로 쌓여 화면에 출력됨( Hierachy 순서 중요) ! btnBlue는 Main에서 직접 이벤트를 관리, btnYellow와 btnGreen은 Button들을 관리하는 UIButtons에서 이벤트를 관리하는 방법으로 코드를 작성하였다. UIButtons using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UIButtons : MonoBehaviour { public enum eBtnTypes { Yellow, Green } public Button[] arrBtns; public Button btnBlue; public System.Ac..

Unity/수업내용 2023.02.06

[Unity] Object Pooling 오브젝트 풀링_최적화, Garbage Collector

반복해서 오브젝트를 생성하고 파괴하는 방법은 많은 Garbage Collector를 발생시키며, CPU의 순간적인 성능 소모 및 프레임 저하를 불러옴 이러한 문제를 해결하기 위하여 Object Pooling 기법을 사용! Object Pooling 오브젝트의 생성/파괴 대신 Pool을 만들어 오브젝트를 활성화/비활성화 하며 관리 이러한 오브젝트들은 메모리 내에 계속 남아있기 때문에, CPU 성능 소모 ↓ 메모리 사용량 ↑ Garbage Collertor? 메모리 관리 방법. Heap에서 객체의 위치를 기억하는 참조변수가 모두 사라지면 정리되지 않은 메모리 garbage 발생 garbage가 메모리 공간이 부족할 정도로 쌓이면 Garbage Collection( GC )기능에 의해 삭제(해제) ! 시스템에..

Unity/수업과제 2023.02.06

[Unity2D] Shooting Game 구조 만들기 연습

DontDestroyOnReoad : Scene이 바뀌어도 제거되지 않음 ! Scene 만들면 가장 먼저 Scene이름의 Empty, Script 만들기 ! lifetime transform.SetParent(transform) Camera.main.orthographicSize -> bullet.transform.position.y가 카메라 사이즈를 넘어가면 사라지게 활용 App using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class App : MonoBehaviour { private string version = "Version ..

Unity/수업내용 2023.02.03