일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Rider
- 유니티 해상도 고정
- monocraft
- 진수 변환기
- C#
- 엑셀 내보내기
- cmd키 변경
- 라이더
- Mac
- unity 받기
- 한달리뷰
- navmeshagent
- 엑셀 가져오기
- 알고리즘
- 다른 시트값
- ilcode
- git
- 스프레드 시트
- navmesh
- rider 설치
- 스프레드시트
- Mac 상단바 아이콘 이동
- 스프레드시트 사용법
- unity 구버전
- unity
- 유니티
- 다각형 중점
- ilviewer
- 테크스트림
- 백준
- Today
- Total
목록프로그래밍/Unity (20)
코스모스 공작소
안녕하세요! Unity를 항상 최신 버전으로 유지하는 것은 생각보다 비용이 많이 드는 일입니다. 작은 규모의 프로젝트인 경우엔 그나마 복잡하지 않지만 규모가 조금만 커져도 체크해야 할 것들이 많아집니다. 그래서 최근에 나온 LTS버전을 이용하여 개발을 시작하는 것이 가장 좋습니다. Unity에서 공식적으로 Long term Support를 지원해 주는 버전이기 때문입니다. 그리고 많은 유저들이 사용하는 버전은 버그가 발생하더라도 비교적 오류를 찾아내기도 쉽습니다. 따라서 우리는 원하는 버전의 유니티를 받는 방법을 알아야 합니다. 오늘은 이번 버전 Unity를 받는 방법에 대해 알아보겠습니다. Unity 구버전 다운받는 방법 UnityHub 이용하기 Unity Hub를 먼저 설치하고 실행한 화면입니다. I..
안녕하세요! 오늘은 튜플로 여러개 변수를 반환하는 방법에 대해 알아보겠습니다. 튜플 기능은 필요한 데이터의 묶음을 만들어 한줄에 선언할 수 있게 해줍니다. 제가 즐겨 쓰는 기능을 몇가지 소개하겠습니다. 1. 변수 선언 및 호출 (int a, float b) c = (1, 2.4f); (int, float, double) test_1 = (3, 8.6f, 8.77); Debug.Log($"{c.a} {c.b}"); Debug.Log($"{test_1.Item1} {test_1.Item2} {test_1.Item3}");//따로 이름이 설정되지 않은 경우엔 Item{번호}로 구분됩니다. 2. 함수에서 이용 public (int sum, float multi_float) GetTestValue() { int ..
반복적인 로직이나 큰 자료를 들고오는 로직을 구성하면 얼마나 걸리는지 궁금한데 Time으로 구할수도 있지만 한가지 더 있어 소개한다. 측정을 원하는 로직이 작동하는 시간을 구해보자 System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); // 시작 //시간을 측정할 로직 // // // 반환값 System.TimeSpan ts = stopwatch.Elapsed; long msTick = stopwatch.ElapsedMilliseconds; long tick = stopwatch.ElapsedTicks; stopwatch.Stop(); // 종료 실제 측정하고자 하는 부분의 구동 시간을 체..
Unity 작업중 이나 빌드에서 사운드 세팅 변경(ex 스피커 // changed : 장치 변경으로 인한 것이면 true { Debug.Log("Change!"); // 사운드 로직 구성 }; 관련 Unity IssueTraker https://issuetracker.unity3d.com/issues/android-audio-stops-playing-after-a-bluetooth-speaker-is-connected-to-the-device Unity IssueTracker - [Android] Audio stops playing after a bluetooth speaker is connected to the device Repro steps: 1. Open attached project 2. Bui..
3D 오브젝트 마우스 포인터 따라 이동하기 마우스 포인터에 따라 활성화된 3D오브젝트가 이동하는 부분이 필요하다. 요구 사항 NewInputSystem 위에서 작동해야한다. orthographic 카메라 위에서 작동하지 않고 perspective 카메라에서 작동해야한다. { Vector3 pos = Mouse.current.position.ReadValue(); pos.z = 200; pos = Camera.main.ScreenToWorldPoint(pos); pos.z = 0; // z 값을 수동으로 넣어주는 건 pos값이 그냥 그대로 변환하게 되면 정확한 값을 받아오지 않기 때문에 // pos좌표가 제대로 출력 안될때 각자 기준 축 상황에 맞추어 x,y로 변환해서 사용할것 objTrack.transf..
유니티에서 Instantiate , Destory는 가비지 컬랙터를 소환한다. 가비지 컬랙터란 자동 메모리 청소라고 생각하면 된다. 쓰이지 않거나 버려져서 메모리를 차지하고 있는 영역을 비워주어 공간을 확보한다. 하지만 가비지 컬랙터가 실행되는 순간에 cpu의 점유율이 높아지고 게임 환경에 지장을 준다. 따라서 효율적으로 사용하기 위해 가비지 컬렉션을 회피하여야 하는데 좋은 수단 중 하나가 오브젝트 풀을 이용하여 자원들을 관리하는 것 특히 같은 오브젝트를 여러번 사용하는 탄환 발사 등이 좋은 예시이다. •요구사항 1.오브젝트들이 필요한 씬에 공급 가능해야함 -> 싱글톤 패턴 이용 2.풀에서 꺼내는 기능(pop) 3.풀에 다시 반환하는 기능(push) 4.풀에 적재된 오브젝트가 없을 때는 새로 생성하여 꺼..
총을 쏘거나 반동이 있는 액션을 개발하다 보면 카메라의 진동이 필요한 순간이 있다. 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 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraShake : MonoBehaviour { Vector3 Start_Pos; void Start() { Start_Pos = transform.localPosition; } public IEnumerator Shake(float duration,float magnitude) { float timer = 0; while (timer
게임을 만들다 보면 자연스럽게 만들어야되는 부분이 다이얼로그(대화창)이다. 안드로이드 환경을 타겟으로 제작할 것이고 대화창이 떠있는 동안 게임의 일정 행동을 컨트롤하는 모듈도 추가하는 방식으로 진행하겠다. canvas에 각 obj배치 기본 코드 작성 데이터로 이용할 클래스 dialog를 출력하고 관리하는 클래스 text 연속출력 출력 도중 터치시 완성된 문장 출력 완성된 문장 출력시 next 메세지 구석에 출력 완성된 문장 출력 뒤 터치시 다음 문장 출력 다이얼로그 출력시 현재 진행중이 코루틴 정지 코드 적용 인터페이스 코드 테스트 1. Canvas에 배치 2. 코드 1) 데이터로 이용할 클래스 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [System.Serializabl..
게임 오브젝트를 화면 밖으로 못나가게 해야하는 경우에 사용하자123456Vector3 worldpos = Camera.main.WorldToViewportPoint(this.transform.position); if (worldpos.x 1f) worldpos.y = 1f; this.transform.position = Camera.main.ViewportToWorldPoint(worldpos);csz축은 카메라와의 거리 이므로 이번엔 무시한다.
Vector3는 x,y,z 좌표계에 위치한 어떤 좌표를 표시해주는 방식이다. Dot - 두 벡터가 수직인지 계산해주는 함수 Vector3.Dot(VectorA, VectorB); -0일경우 수직, 양의 값은 좁아짐, 음의 값은 수직 이상으로 벌어짐을 의미 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform other; void Update() { if (other) { Vector3 forward = transform.TransformDirection(Vector3.forward); Vector3 toOt..