유니티 Random 클래스 랜덤 수(Random.Range, Random.value) 사용 예시Random.Range최소값과 최대값 사이의 무작위 수를 반환합니다. 무작위 위치 생성 GameObject prefab; float x = Random.Range(-5.0f, 5.0f); float z = Random.Range(-5.0f, 5.0f); Debug.Log("X,Z:" + x.ToString("F2") + ","+ z.ToString("F2")); Vector3 randomPosition = new Vector3(x, 0.0f, z); Instantiate(prefab, randomPosition, Quaternion.identity); float x=Random.Range(-5.0f, 5.0f)..
유니티(Unity) 오디오 소스(AudioSource) 플레이 함수 Play()와 PlayOneShot() 차이유니티에서 오디오를 재생하는 데 사용되는 두함수 AudioSource.Play()와 AudioSource.PlayOneShot() 차이AudioSource.Play()오디오 소스에 지정된 오디오 클립(AudioClip)을 재생합니다. 새로운 Play() 호출은 이미 재생중인 클립을 취소하고 새로운 재생을 시작합니다. AudioSource는 모든 Play 함수 호출에 재생할 새 오디오 클립이 있다고 가정합니다. https://docs.unity3d.com/ScriptReference/AudioSource.Play.html Play함수를 새로 호출하면 클립이 다시 시작된 것처럼 들립니다. Audio..
유니티(Unity) 트랜스폼(Transform) 위치 및 방향 변환 함수 모음TransformPoint(Vector3 localPosition)객체의 로컬 공간 좌표를 월드 공간 좌표로 변환 Vector3 localPos = new Vector3(1, 0, 0); Vector3 worldPos = transform.TransformPoint(localPos); https://docs.unity3d.com/ScriptReference/Transform.TransformPoint.htmlInverseTransformPoint(Vector3 worldPosition)객체의 월드 공간 좌표를 로컬 공간 좌표로 변환 Vector3 worldPos = new Vector3(10, 0, 5); Vector3 lo..
유니티(Unity) 보간(interpolation)함수 종류 및 예시Mathf.Lerp 주어진 두 값 사이를 선형적으로 보간(interpolate)하는 데 사용됩니다. t는 0과 1 사이의 값을 가지며 t가 0이면 a를 반환하고 t가 1이면 b를 반환합니다. t가 0과 1 사이에 있으면 a와 b 사이에서 보간한 값을 반환합니다. float a = 0f; float b = 10f; float t = 0.5f; float result = Mathf.Lerp(a, b, t); //result는 5f입니다. https://docs.unity3d.com/ScriptReference/Mathf.Lerp.html Mathf.SmoothStep Mathf.Lerp와 유사하게 주어진 값 사이를 보간하지만 부드러운 단계적..
유니티(Unity) 비동기 씬 로드 구현(LoadSceneAscync, AsyncOperation)1)씬 로드 작업 진행률을 표시할 UI(이미지와 텍스트)를 구성합니다. 2)이미지의 이미지 타입을 Filled로 설정합니다. 3)비동기 씬 로드를 위한 스크립트를 추가합니다. 4)비동기 씬 로드를 시작합니다. 씬이 완전히 로드될때까지 작업진행률(progress)을 업데이트하고 이미지와 텍스트에서 이것을 표시합니다. 진행률이 1.0에 도달하고 isDone이 호출되면 작업이 완료되어 씬을 활성화합니다. 5)작업진행률을 표시할 이미지와 텍스트를 참조합니다. 6)빌드 설정에서 씬을 추가합니다. 7)게임을 플레이하면 비동기 씬 로드를 시작하고 완료하면 대상 씬을 활성화합니다.(씬에 로드할 내용이 많지 않으면 진행률..
유니티(Unity)에서 카메라 뷰 오브젝트 확인 함수 및 속성 모음(프러스텀, 렌더러, Bounds, 기타) Renderer.isVisible객체 및 렌더러가 카메라의 뷰 프러스트럼(시야 범위) 안에 있는지 확인합니다. 렌더러가 카메라에 의해 보일 때 true를 반환하고 그렇지 않으면 false를 반환합니다. 게임 오브젝트가 화면에 보일 때만 작업을 실행하고 싶을 때 사용 https://docs.unity3d.com/ScriptReference/Renderer-isVisible.html void Start() { m_Renderer = GetComponent(); } void Update() { if (m_Renderer.isVisible) ..
유니티(Unity) 리소스 클래스(Resources) 함수 예시 모음(Resources.Load, Resources.LoadAll)자산을 포함한 오브젝트를 찾고 접근하는데 사용할수있습니다. Assets 폴더 하위의 Resources 폴더에 있는 모든 자산(Assets)은 Resources.Load 함수를 사용하여 접근할수있습니다. Resources 폴더에 있는 모든 자산은 빌드에 포함됩니다. https://docs.unity3d.com/ScriptReference/Resources.html Resources.Load 함수 예시프리팹을 로드하여 씬에서 인스턴스화합니다.GameObject prefab = Resources.Load("MyPrefab"); Instantiate(prefab, Vector3.ze..
유니티 자주 사용하는 에디터 스크립트 함수 모음UnityEditor 네임스페이스 추가 using UnityEditor; EditorWindow 클래스 상속public class NewBehaviourScript: EditorWindow 에디터 메뉴 항목 추가MenuItem 속성을 사용하여 정적 함수를 메뉴 명령으로 설정(static 한정자를 사용하여 정적 메서드로 선언)[MenuItem("MyMenu/Do Something")] static void DoSomething() { Debug.Log("Doing Something..."); } https://docs.unity3d.com/ScriptReference/MenuItem.html 씬에 새로운 게임 오브젝트 생성GameObject obj = n..
유니티(unity)에서 마우스 커서에 사용자 이미지 사용하기 1)마우스 커서에 사용할 이미지 파일을 유니티 프로젝트로 가져오기합니다. 2)해당 텍스처의 texture type을 cursor로 변경하고 적용합니다(apply) 3)새로운 스크립트를 작성합니다. 마우스 커서에 사용할 텍스처를 지정하여 Cursor.SetCursor함수를 사용합니다. 4)게임
유니티(unity)에서 마우스 커서 표시 비활성화하기(Cursor.visible) 1)유니티 게임을 실행하면 기본적으로 마우스 커서가 표시되는것을 확인할수있습니다. 2)유니티에서 새로운 스크립트를 작성합니다. 시작함수에서 커서 표시를 비활성화합니다. Cursor.visible = false; 3)유니티 게임을 실행하면 마우스 커서를 표시하지않는것을 확인할수있습니다. https://docs.unity3d.com/ScriptReference/Cursor.html
유니티에서 윈도우 폴더의 파일을 복사하기, 삭제하기(File.Copy, File.Delete) File.Copy함수를 사용하여 파일 복사하기 1)윈도우에서 두 개의 폴더를 준비합니다. 2)첫번째 폴더에 다른 폴더로 복사할 파일들을 위치시킵니다(source) 3)두번째 폴더는 첫번째 폴더에서 복사하여 새로 파일을 생성할 폴더입니다(backup) 4)유니티에서 스크립트를 작성합니다. 지정한 폴더에 위치한 모든 파일을 문자열로 가져오기하고 모든 파일에 대해 첫번째 폴더(sourceDir)의 기존 파일을 두번째 폴더(backupDir)의 새 파일로 복사합니다. 5)게임을 시작하면 해당 폴더에서 복사하여 생성한 파일들을 확인할수있습니다. File.Delete함수를 사용하여 파일 삭제하기 6)윈도우 폴더에서 삭제할..
유니티에서 윈도우 폴더의 이미지 파일을 로드하여 텍스처로 사용하기 1)윈도우 폴더에 텍스처로 사용할 이미지 파일을 위치시킵니다. 2)유니티에서 스크립트를 작성합니다. 지정한 경로의 이미지 파일을 읽기하고 텍스처로 로드하여 게임오브젝트의 메인 텍스처로 사용합니다.