일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 몬스터
- githubdesktopmerge
- 유니티 해상도 변경
- 깃허브 데스크탑 합치기
- 깃허브 데스크탑 병합
- 유니티 해상도 설정
- nav오브젝트사이거리
- 오브젝트 깜빡임
- networkobject
- stateauthority
- navigation
- 유니티 브랜치 merge
- m585
- Unity
- NavMesh
- unity git
- Github DeskTop Merge
- 유니티 합치기
- networkobject.networkid
- M590
- m590 수리
- networkbehaviourid
- 유니티 해상도
- 유니티 머지
- unity 병합
- 유니티
- m585 수리
- nav거리
- unity merge
- Today
- Total
목록유니티 (28)
집게사장의 꿈

증상 : 아래 동영상과 같이 오브젝트들이 깜빡거리는 현상이 발생함 해결 : 렌더링 시 최대 연산 가능한 라이트 수를 제한을 해서 그렇다 메쉬들을 병합하였기 때문에 실제로 메쉬 하나에 그려지는 라이트의 개수가 제한된 범위를 뛰어넘었다. URP 세팅에서 최대 추가 라이트 수를 변경해 주었다.

문제점Batches 가 약 2만개CPU가 60ms 나오던 상황 최적화 이전 최적화 후 최적화 한 방법머티리얼의 렌더링 방식을 통일화하여 같은 머티리얼 키워드를 가진 오브젝트를 묶는다. 머티리얼의 Surface Type을 통일하거나, Specular Highlight를 끄는 식으로 머티리얼 호출 회수를[SetPassCall] 줄였다. 1의 과정으로 통일된 머티리얼을 코드 상으로 메쉬들을 통합시켜 하나의 Batches로 처리하게 한다.어두운 배경을 사용하기 때문에 사용하지 않는 그림자를 꺼서 그림자 그리는 비용을 아낀다.URP 옵션에서 끌 수 있다.오브젝트를 사용하지 않는 것은 제거한다. 위와 관련된 정보https://github.com/ImKrap/MeshCombineder
1.Canvas를 분리할 것 UI는 Canvas 단위로 Draw되며, 동적인 UI와 정적인 UI를 구분하여 분류해 놓으면 좋다. Canvas 안에 하위에 있는 UI들은 모두 하나의 버퍼로 처리 되며, 작은 것이 하나 바뀌더라도 모두 다시 그려진다 2. 사용하는 UI Image들의 Bacth를 줄여라 -각각의 이미지가 모두 분리되어 있으면 각각의 이미지에 대해 Bacth가 일어난다. -Project_Altras로 사용하는 이미지들을 분류하여 넣어서 사용한다. 3. Canvas의 Pixel Perfect는 작업이 무겁다. 동적인 오브젝트는 PixelPerfect가 무거운 연산이기에, 프레임 드랍이 일어난다. 티가 많이 나는 캔버스를 사용하는 쪽에는 사용하고, 동적인 오브젝트를 해제하는 것이 좋다...

Plane.GetDistanceToPoint 평면과 점의 최단 거리를 구한다. * Plane의 Nomal로부터의 점과 최단 거리를 도출 * 부호가 있는 값을 도출, 해당 Plane의 법선 방향에 있는 오브젝트는 +, 그렇지 않은 오브젝트는 -를 반환 코드 //노말과 거리 값을 저장 구조 Plane[] plane =null; void Start() { //카메라의 각 절두체를 얻어옵니다. plane = GeometryUtility.CalculateFrustumPlanes(Camera.main); } private void OnDrawGizmos() { //값이 존재할 경우 if(plane !=null && plane.Length > 0) { Gizmos.color = Color.red; Debug.Log(..
Ctrl + I : 하이러라키 창에서 선택한 오브젝트를 빼고 모두 선택 Ctrl + Shift + N : 하이라키 최상위 계층에 빈 게임 오브젝트 생성 Ctrl + Shift + F : 현재 Scene에서 보고 있는 방향과 위치로 선택한 오브젝트 위치 이 Alt + P : 하이어라키 창에서 선택한 오브젝트의 인스펙터창을 새로 띄우기 Alt + Shift + N : 하이라키 창에서 선택한 게임오브젝트의 하위에 빈오브젝트 생성

Screen.resolutions * 해당 값을 지원하는 해상도를 저장하고 있다. * 출력값 확인 주사율은? 주사율 = {resol.refreshRateRatio.numerator} / {resol.refreshRateRatio.denominator} numerator = 재생률의 분수 => [60]hz * 1000[60000mhz] denominator = 재생률의 분모 => 1초 * 1000[1000ms] 주사율 => {Mathf.CeilToInt(resol.refreshRateRatio.numerator * 0.001f)} 최종 드롭다운 해상도 변경 UI void SetResolution() { //해상도 값들을 저장 resolutions.Clear(); foreach (Resolution reso..

출처https://docs.unity3d.com/ScriptReference/AI.NavMesh.CalculatePath.html Unity - Scripting API: AI.NavMesh.CalculatePathUse this function to avoid gameplay delays by planning a path before it is needed. You can also use this function to check if a target position is reachable before moving the agent. This function is synchronous. It performs path finding immediately which cdocs.unity3d.com usi..

코드 출처 https://github.com/googleads/googleads-mobile-unity/blob/d629b7be42f93ff9efe4488b9d5ff7a2703571ac/samples/HelloWorld/Assets/Scripts/GoogleAdMobController.cs 구글 애드몹 버전 Google Mobile Ads Unity Plugin v7.4.0 전체코드 using GoogleMobileAds.Api; using UnityEngine.Events; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //AdmobManager.cs 플러그인이 6.0...