본문 바로가기
반응형

유니티245

유니티 - JsonUtility로 Json 파싱하기 : (1) 기본 Unity 전체 링크 JsonUtility로 Json 파싱하기 (1) Json Parsing (2) Json Array Parsing (배열 파싱) (3) Array of Objects in Json Array Parsing (배열 안에 있는 오브젝트 배열 파싱) (4) Json Export (파일 출력, 내보내기) *.json 파일을 파싱하여 출력해보자. 먼저 이번에 파싱할 파일(Lotto1.json)은 아래와 같다. { "id":"1", "date":"2002-12-07", "number":[10,23,29,33,37,40], "bonus":16 } 대한민국에서 로또는 2002년 12월 07일(date)에 1회(id)를 시작하였고, 당첨 번호(number)는 10, 23, 29, 33, 37, 40이.. 2022. 5. 29.
유니티 - 런타임 시 프리팹에 스크립트 추가하기 (Attach Script when Instantiate a Prefab) Unity 전체 링크 런타임 때 프리팹을 생성하는 경우, 필요한 스크립트를 동적으로 추가해야하는 경우가 있다. 빈 오브젝트를 만들고 MakePrefab.cs를 추가한다. MakePrefab.cs은 Raycast로 아무 오브젝트나 찾은 후, 그 지점에 프리팹을 생성한다. 생성할 프리팹은 적당한 게임 오브젝트를 Resources에 추가해서 사용한다. (또는 public으로 선언해도 된다.) MakePrefab.cs는 아래와 같다. prefab을 Resources.Load로 불러온 후, Update에서 카메라 시점에서 Raycast를 쏜다. 그리고 Instantiate로 프리팹을 생성한 후, EmptyScript.cs를 추가하였다. (스크립트는 미리 만들어둔다.) 여기서는 간단하게 평면에다가 테스트를 하였다... 2022. 5. 29.
유니티 - 스크립트로 레이어(Layer) 관리하기 Unity 전체 링크 Layer를 스크립트로 관리해보자. 먼저 큐브에 LayerTest.cs 스크립트를 추가하자. 레이어는 gameObject에서 바로 변경할 수 있다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class LayerTest : MonoBehaviour { void Start() { this.gameObject.layer = 8; } } 플레이 버튼을 눌러서 코드를 실행해보자. layer = 8; 을 실행하면 Layer가 Block으로 변경된 것을 알 수 있다. Layer에서 8번의 정의가 Block이기 때문에 위와 같은 결과가 나오게 된다. Add Layer를 눌러서 레이어를 .. 2022. 5. 23.
프로퍼티로 readonly 변수 만들기 (get; private set;) Unity 전체 링크 프로퍼티로 외부에서는 접근 불가능한 readonly 변수를 만들어보자. 이 변수는 다른 스크립트에서 읽을 수는 있지만 변경할 수는 없다. 빈 오브젝트를 만들고 TestScript1.cs와 TestScript2.cs를 추가한다. TestScript1.cs 는 아래와 같다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestScript1 : MonoBehaviour { public int readOnlyInteger { get; set; } static TestScript1 instance = null; public static TestScript1 Instance .. 2022. 5. 17.
유니티 - 오브젝트를 선택된 상태로 만들기 : (4) 오브젝트 하나만 선택하기 Unity 전체 링크 오브젝트를 선택된 상태로 만들기 : (1) bool 오브젝트를 선택된 상태로 만들기 : (2) 이미지로 만들기 오브젝트를 선택된 상태로 만들기 : (3) Shader Outline 오브젝트를 선택된 상태로 만들기 : (4) 오브젝트를 하나만 선택하기 여러 오브젝트(블럭, Block) 중 하나만 선택하도록 해보자. 선택된 오브젝트는 outline이 나타나도록 한다. 먼저 카메라에 SelectBlock.cs를 추가한다. 카메라를 기준으로 Raycast를 이용해 블럭을 선택한다. SelectBlock은 카메라에만 존재하므로 싱글턴으로 만들면 좋다. static SelectBlock instance = null; public static SelectBlock Instance { get { .. 2022. 5. 17.
유니티 - 마우스 스크롤로 카메라 줌 인 / 아웃 (Camera Zoom in / out with a Mouse Scroll) Unity 전체 링크 참고 → 시네머신 튜토리얼 링크 (시네머신을 이용하여 카메라 간편하게 조작하기) - 멀티 터치 드래그를 이용하여 카메라 줌 인 / 아웃 카메라를 Rotate하고 Zoom in / out도 할 수 있도록 해보자. (시네머신 FreeLook Camera Zoom in / out) 카메라를 줌 인/아웃 하는 방법은 크게 두 가지가 있다. - fieldOfView - 카메라가 향한 방향으로 앞/뒤 이동 fieldOfView Field Of View는 카메라의 시야각이다. Input.GetAxis("Mouse ScrollWheel")을 이용해 Camera의 fieildOfView를 변경하면 된다. public float scrollSpeed = 2000.0f; void Update() { i.. 2022. 5. 14.
유니티 Plane, 평면의 길이 Unity 전체 링크 유니티에서 제공되는 Plane의 길이 / 크기에 대해서 알아보자. 큐브는 X, Y, Z의 Scale이 1일 때, 실제 크기도 1이다. 하지만 Plane의 경우는 10x10 unit mesh를 사용하기 때문에 Scale이 1일 때 10의 길이를 가진다. 이 사실을 확인해보자. 먼저 큐브의 크기를 알아보기 위해 빈 오브젝트(SizeOfCube)를 생성한 후, 아래의 스크립트를 추가한다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class LengthTest : MonoBehaviour { public GameObject go1, go2; void Start() { Debug... 2022. 5. 14.
유니티 - 간단한 투명 Material 만들기 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) Unity 전체 링크 기본 Material을 생성해서 Albedo의 Alpha 값을 변경해도 오브젝트는 투명해지지 않는다. 오브젝트의 alpha값을 수정할 수 있도록 바꿔보자.먼저 Material을 생성한다. Material의 Shader에서 Transparent를 검색하면 (UI/Unlit/Transparent)가 나오므로, 변경한다. Shader가 변경되면 아래와 같은 옵션을 변경할 수 있다. Tint를 선택한다. 원하는 색과 Alpha 값을 설정한다. 만들어진 오브젝트를 큐브에 Drag and Drop으로 추가하면 아래와 같이 투명해지는 것을 볼 수 있다. Unity Plus: Easy 2D, 3D, VR, & AR softwa.. 2022. 5. 14.
유니티 - 드래그로 평면 위의 오브젝트 움직이기 (Drag and Move on the Plane) Unity 전체 링크 드래그로 오브젝트 Y축 회전하기 (Drag to Rotate Object in Y-axis) 드래그로 오브젝트 위, 아래로 움직이기 (Drag Object in Y-Axis) 드래그로 오브젝트 움직이기 (Move GameObject with Drag) 드래그로 땅 위의 오브젝트 움직이기 (Drag and Move on the Ground) 드래그로 평면 위의 오브젝트 움직이기 (Drag and Move on the Plane) 드래그로 블럭 옆으로 한 칸 움직이기 (Drag GameObject Snapped to a Grid) 이전 글에서는 땅 위에서 닮음을 이용해 오브젝트를 움직였다. 이번에는 오브젝트를 평면 위에 붙여서 움직이도록 해보자. 최종 결과를 미리보면 아래와 같다. 먼저.. 2022. 5. 14.
반응형