게임 등을 플레이 하면서 맵이 바뀌는 경험을 해보았을 것이다. 유니티에서 이 기능인 씬 이동/전환을 해보자. 코드 상단에 using UnityEngine.SceneManagement;라는 SceneManagement를 이용하여 씬 전환을 할 수 있다. 씬 전환 [SceneManager.LoadScene] ChangeScene using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class ChangeScene : MonoBehaviour { private void OnTriggerEnter(Collider other) { // Player 태그..
유니티에서도 메서드에 접근할 때 접근 지정자를 둘 수 있다. 여기서 알아볼 것은 public과 private, static 세가지이다. 그리고 데이터를 유니티에 저장하는 PlayerPrefs에 대해 알아보자. 간단한 요약 public : 스크립트와 하이러키 뷰에서 선택하여 인스펙터에서 값을 변경할 수 있다. 하지만 유니티 툴에서 값을 변경하면 스크립트보다 인스펙터에서 변경한 값이 우선시 되니 우선 순위를 알아두자. private : 스크립트에서 수정해야 하며 public처럼 인스펙터에서 값을 변경할 수 없다. 즉 감춰진다. UI 버튼에서는 SendMessage를 이용하여 메서드를 호출할 수 있다. static : 다른 클래스라도 클래스이름으로 바로 호출할 수 있다. using System.Collecti..
유니티에서의 스레드는 동시에 접근하지않고 한번에 하나만 접근하기 때문에 C#에서 멀티스레드를 할때와 조금 다르다. Update()함수가 아닌 곳에서 코드를 반복적으로 사용하고 싶을 때 코루틴을 사용할 수 있다. 그리고 Update()는 프레임마다 반복적으로 실행되기 때문에 몇초 동안 지연시키고 싶다면 60fps기준 초 * fps가 되어 엄청나게 실행될 것이다. 코루틴을 사용하면 일정 시간 원하는 만큼 실행할 수 있다. 게임 루프나 프레임 처리를 중단시키지 않으면서 긴 작업이나 반복적인 작업을 수행할 수도 있다 주로 애니메이션, 게임 로직, UI 업데이트 등을 처리하는 데 사용된다 코루틴 (Coroutine) Unity의 Coroutine은 C# 언어의 IEnumerator 인터페이스를 구현하는 함수와 y..
Collision으로 오브젝트가 충돌하는 것도 있지만 레이저(광선)을 쏴서 오브젝트에 충돌/인식 하는 Raycast라는 것이 있다. Raycast의 특징은 Game 화면에서는 보이지않고, Scene 화면에서만 볼 수 있다. RayCast Raycast (가장 가까운 1개 감지) 기본적인 Raycast는 가까운 1개의 오브젝트만 감지하고 물체에 닿으면 true를 반환한다. using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; public class Raycast : MonoBehaviour { public float lineSize = 16f; void Update()..