본문 바로가기
반응형

유니티245

유니티 - 쿼터니언과 회전의 덧셈 (How to Add Two Quaternions) Unity 전체 링크 유니티의 회전은 쿼터니언을 이용해야 한다. 인스펙터의 Rotation은 Vector3로 표현되지만 실제 타입은 Quaternion이다. 유니티가 사용자에게 보기 좋게 Vector3로 변환해 준 것이다. Rotation은 Vector3가 아니기 때문에 Quaternion.Euler(Vector3)로 변환해야 한다. 그리고 Rotation의 값을 얻기 위해서는 rotation의 eulerAngles로 접근한다. 먼저 QuaternionTest.cs를 추가해보자. 실제 Rotation은 Vector3가 아니기 때문에 Quaternion.Euler(Vector3)로 변환한다. using System.Collections; using System.Collections.Generic; usin.. 2022. 7. 2.
유니티 에셋 - 런타임 파일 브라우저로 파일 저장하기 (Save Files using Runtime File Browser) Unity 전체 링크 런타임 파일 브라우저로 파일 업로드하기 간단한 파일 브라우저(Simple File Browser)에서 파일을 저장해보자. 파일 업로드의 예시 코드에서 파일을 저장하는 코드는 아래와 같이 주석으로 처리되어 있다. // Show a save file dialog // onSuccess event: not registered (which means this dialog is pretty useless) // onCancel event: not registered // Save file/folder: file, Allow multiple selection: false // Initial path: "C:\", Initial filename: "Screenshot.png" // Title: .. 2022. 7. 2.
유니티 에셋 - 런타임 파일 브라우저로 파일 업로드하기 (Upload Files using Runtime File Browser) Unity 전체 링크 런타임 파일 브라우저로 파일 저장하기 유니티 PC 버전에서 런타임에 파일 브라우저를 이용해 파일을 불러오고 싶을 때가 있다. 만들어놓은 게임 맵(스테이지)을 불러오거나, SAVE 파일 등을 불러올 때 파일 브라우저가 있으면 편리하다. 간단한 파일 브라우저(Simple File Browser)를 이용해보자. 아래는 런타임에 파일 브라우저를 사용할 수 있는 무료 에셋이다. https://assetstore.unity.com/packages/tools/gui/runtime-file-browser-113006 Runtime File Browser | GUI 도구 | Unity Asset Store Use the Runtime File Browser from yasirkula on your .. 2022. 6. 29.
유니티 - SmoothDamp를 코루틴에서 사용하기 (SmoothDamp with Coroutine) Unity 전체 링크 오브젝트를 생성할 때, 위에서 아래로 빠르게 내려오는 효과를 만들어보자. 이때 Effect로 목표 지점에 가까워지면 감속하게 만들어보자. 현재 오브젝트를 기준으로 Y가 10 보다 큰 값에서 내려온다고 가정하자. SmoothDamp를 이용하여 간단한 예제를 만들어 볼 수 있다. https://docs.unity3d.com/kr/530/ScriptReference/Vector3.SmoothDamp.html Vector3-SmoothDamp - Unity 스크립팅 API Gradually changes a vector towards a desired goal over time. docs.unity3d.com SmoothDampUpdate.cs는 업데이트 문 SmoothDamp를 사용하였다.. 2022. 6. 28.
유니티 - 머티리얼 로드하고 바꾸기 (Load and Change Materials) Unity 전체 링크 Resources 폴더 아래에 있는 모든 머티리얼(Material)을 가져오고, 각 블럭의 index에 맞게 material을 교체해보자. 먼저 큐브를 넉넉히(10개) 만들고 보기 좋게 정렬해두자. 각 큐브는 ChangeMaterial.cs를 가지고 있다. index를 0 ~ 10으로 적절히 변경해둔다. Resources 폴더 아래에 Material/BlockColor에 변경하고 싶은 Material을 준비해둔다. Ctrl + Shift + N으로 빈 오브젝트를 만든 후 아래의 BlockCreator.cs를 추가한다. Resources.LoadAll로 Resources 폴더 아래의 "Material/BlockColor"에 있는 Material을 모두 가져왔다. using System.. 2022. 6. 26.
유니티 디버깅 - Error Pause를 활성화하여 에러 발생 시 게임 멈추기 Unity 전체 링크 스크립트로 게임을 멈추는 방법은 아래와 같다. - Time.timeScale을 변경하여 Time.deltaTime을 0으로 만들기 - EditorApplication.isPaused를 true로 변경하여 실제 게임을 멈추기 그러나 EditorApplication.isPaused를 true로 변경할 필요 없이 에러 로그를 남기면 강제로 게임을 멈추는 기능을 유니티 엔진이 제공한다. 큐브에 PauseTest.cs를 추가한다. PauseTest에 OnMouseDown을 아래와 같이 추가해보자. using System.Collections; using System.Collections.Generic; using UnityEngine; public class PauseTest : MonoBe.. 2022. 6. 26.
유니티 - JsonUtility로 Json 내보내기 : (4) Export Unity 전체 링크 JsonUtility로 Json 파싱하기 (1) Json Parsing (2) Json Array Parsing (배열 파싱) (3) Array of Objects in Json Array Parsing (배열 안에 있는 오브젝트 배열 파싱) (4) Json Export (파일 출력, 내보내기) 이제 class를 json으로 export 해보자. foreach에서 id를 각각 1씩 증가시킨 후, 값이 제대로 변경되었는지 확인한다. File 출력(WriteAllText)를 사용해가 위해 System.IO를 선언한다. using System.IO; ... void Start() { TextAsset textAsset = Resources.Load("Json/LottoWinningNumb.. 2022. 6. 25.
유니티 - JsonUtility로 Json 파싱하기 : (3) 오브젝트 배열 파싱 Unity 전체 링크 JsonUtility로 Json 파싱하기 (1) Json Parsing (2) Json Array Parsing (배열 파싱) (3) Array of Objects in Json Array Parsing (배열 안에 있는 오브젝트 배열 파싱) (4) Json Export (파일 출력, 내보내기) 이전 글에서 사용한 json 배열 중 오브젝트 1개는 아래와 같다. { "id": "0", "date": " 0-00-00", "number": [0,0,0,0,0,0], "bonus": 0 } 이 오브젝트에 다시 오브젝트 배열이 있는 경우를 생각해보자. test 내부에 { int, string, int[] } 오브젝트가 배열로 있다. { "id": "0", "date": " 0-00-00".. 2022. 6. 25.
유니티 - 벡터의 내적 / 외적 / 아다마르 곱 (Dot, Cross, Scale) Unity 전체 링크 유니티에서 자주 사용하는 벡터 연산은 내적과 외적이다. 내적의 결과는 스칼라다. (Vector3.Dot) 외적의 결과는 벡터이며, 삼각형의 넓이를 구하는 공식을 참고하자. (Vector3.Cross) 그렇다면 벡터의 각 성분만 곱하는 것은 뭐라고 할까? 행렬에서는 아다마르 곱(Hadamard Product)이라고 한다. 벡터는 1차원 행렬로 볼 수 있다. 두 벡터를 구성 요소별로 곱하기만 하므로 결과는 벡터다. (Multiplies Two Vectors Component-Wise / Element Wise Product) 유니티에서 Vector3.Scale을 이용하면 된다. 생각보다 많이 쓰이지만 함수 이름이 잘 생각 안 나거나 어떻게 표현해야 할지 모르는 경우가 많다. 성분 곱이라.. 2022. 6. 25.
반응형