
유니티에서의 스레드는 동시에 접근하지않고 한번에 하나만 접근하기 때문에 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()..

일반적인 복사로 복제하는게 아닌 프로젝트뷰로 복제하여 복제와 재사용을 할 수있는데 하이러키 뷰의 게임 오브젝트를 프로젝트 뷰로 드래그하면 Prefab이 생성될 것이다. Prefab 하이러키뷰는 객체 프로젝트뷰에 생성된 프리팹은 클래스와 비슷하다고 생각하면 좋다 Prefabs 하이러키 뷰의 게임 오브젝트를 프로젝트 뷰로 드래그하면 Prefab이 생성된다. 그리고 프로젝트 뷰에서 생성된 Prefab을 하이러키 뷰로 드래그하면 복제가 될 것이다. Instantiate [게임 오브젝트 인스턴스화] 화면을 클릭했을 때 게임 오브젝트를 생성하는 스크립트를 만들어보자. 먼저 생성될 위치에 FirePos라는 빈 오브젝트를 만들어 준다. 그리고 이 위치가 우리 눈에만 보이기 위해 파란 구모양의 기즈모를 생성했다. 기즈모..

카메라를 다루는데에는 여러 방법이 있는데 간단하게 해볼 수 있는 카메라의 활용을 해보겠습니다. 1인칭 가장 간단한 방법으로 Camera 오브젝트를 대상 게임 오브젝트의 자식으로 만들어주면 부모 오브젝트가 움직일때 따라 움직이게 된다. 3인칭과 Follow Camera Follow Camera using UnityEngine; public class SmoothFollow : MonoBehaviour { // The target we are following [SerializeField] private Transform target; // The distance in the x-z plane to the target [SerializeField] private float distance = 10.0f; /..