유니티(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)유니티에서 스크립트를 작성합니다. 지정한 경로의 이미지 파일을 읽기하고 텍스처로 로드하여 게임오브젝트의 메인 텍스처로 사용합니다.
유니티에서 윈도우 폴더의 파일 읽기 File.ReadAllBytes(String) 함수 File.ReadAllBytes함수는지정한 경로의 파일을 열기하고 파일의 내용을 바이트배열로 읽기하고 파일을 닫기합니다. https://learn.microsoft.com/ko-kr/dotnet/api/system.io.file.readallbytes?view=net-7.0 1)윈도우 폴더에 이미지 파일을 준비합니다. 2)유니티에서 스크립트를 작성합니다. 이미지 파일이 위치한 폴더의 경로와 파일명을 지정하여 File.ReadAllBytes함수를 사용합니다. 3)게임을 시작하면 콘솔 윈도우에서 해당 파일을 읽기하고 파일의 크기를 출력합니다. Debug.Log(bytes.Length); 4)해당 이미지 파일의 크기가 동일..
유니티 텍스처 이미지 로드함수 ImageConversion.LoadImage 이미지 파일(PNG, JPG, 기타 지원 파일 형식)의 바이트 배열을 텍스처로 로드하는 함수 사용방법 함수 사용에서 텍스처 형식, 압축형식, 색 공간, 기타에 대한 내용을 아래 웹사이트에서 확인 https://docs.unity3d.com/ScriptReference/ImageConversion.LoadImage.html 1)씬에 텍스처를 맵핑할 게임오브젝트를 준비합니다. 2)아래 스크립트를 작성하고 게임오브젝트에 추가합니다. 새로운 텍스처를 생성하고 이미지의 바이트 배열을 텍스처로 로드합니다. 해당 텍스처를 스크립트의 게임오브젝트 재질의 메인 텍스처로 사용합니다.
유니티에서 직렬화 가능 유형 https://docs.unity3d.com/kr/530/ScriptReference/SerializeField.html 공용 비정적 필드(public nonstatic fields)를 직렬화할수 있습니다(직렬화 가능 유형, serializable types) [SerializeField] 속성으로 표시된 비공용 비정적 필드(nonpublic nonstatic fields)를 직렬화할수 있습니다. 정적 필드(static fields)를 직렬화할수 없습니다. 속성(properties)을 직렬화할수 없습니다. 직렬화 가능 유형(serializable types) UnityEngine.Object에서 상속되는 모든 클래스(GameObject, Component, MonoBehavi..
유니티에서 인스펙터 Debug mode 활성화하기 디버그 모드(Debug mode)를 활성화하면 인스펙터에서 해당 클래스의 속성과 값을 표시합니다. https://docs.unity3d.com/Manual/InspectorOptions.html Normal mode 1)일반 모드(Normal)에서는 컴포넌트의 속성에 대한 편집기로 구성된 인스펙터를 확인할수있습니다. Debug mode 2)인스펙터의 우측 상단에 표시한곳을 클릭하고 debug를 선택합니다. 3)디버그 모드(Debug mode)에서는 컴포넌트의 속성과 값을 표시하는것을 확인할수있습니다. 4)디버그 모드에서는 private으로 선언한 멤버 변수를 인스펙터에서 표시합니다.
유니티에서 SerializeField 속성 사용하기(비공개 필드 직렬화) 일반적으로 유니티가 스크립트 컴포넌트를 직렬화할때 public 필드만 직렬화합니다. private으로 선언한 변수는 인스펙터(inspector)에서 표시하지않습니다. private으로 선언한 변수 또는 비공개 필드를 직렬화하려면 SerializeField 속성을 추가합니다. [SerializeField] https://docs.unity3d.com/kr/530/ScriptReference/SerializeField.html 1)private 필드를 직렬화하려면 해당 필드의 상단에 [SerializeField]를 기입합니다. [SerializeField]는 private 필드를 직렬화하여 인스펙터에서 해당 클래스의 private 변수..
유니티에서 private 변수를 인스펙터(inspector)에서 표시 일반적으로 스크립트에서 private으로 선언한 변수는 에디터의 인스펙터(inspector)에서 표시하지않습니다. private 변수를 인스펙터에서 표시하는 방법( [SerializeField], Debug mode) [SerializeField] 1)인스펙터에서 private 변수를 표시하려면 변수 선언 상단에 [SerializeField]를 기입합니다. 2)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다. Debug mode 3)인스펙터의 우측 상단에서 Debug를 선택합니다. 4)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다.
유니티(unity)에서 애니메이션 커브(AnimationCurve)를 이용한 점프 구현 AnimationCurve.Evaluate 함수를 사용해서 게임오브젝트 이동시키는 방법 1)두개의 애니메이션 커브(AnimationCurve) 유형 변수를 선언합니다(뛰어오르는 동작, 낙하하는 동작) 2)점프에서 뛰어오르는 동작에 대한 그래프를 설정합니다. 시간이 지남에 따라서 속도가 감소합니다(곡선의 기울기) 3)점프에서 낙하하는 동작에 대한 그래프를 설정합니다. 시간이 지남에 따라서 속도가 증가합니다(곡선의 기울기) 4)아래 스크립트에서 점프를 실행하면 뛰어오르는 동작을 진행하고 이어서 낙하하는 동작을 진행합니다. 5)점프 높이와 시간을 설정합니다. 6)게임을 시작하고 점프를 실행하면 뛰어오를때 속도가 감소하고 낙..
유니티에서 Rotate함수를 사용하여 오브젝트 회전시키기 1)씬에 스피어 오브젝트를 생성하였다. 2)새로운 스크립트를 생성한다. 3)Transform.Rotate 함수는 축을 중심으로 오브젝트를 회전시킨다. 예에서 y축을 중심으로 초당 degreePerSecond 도씩 오브젝트를 회전시킨다. 4)스피어 오브젝트에 스크립트를 추가하고 degreePerSecond 수치를 입력한후 게임을 플레이하면 오브젝트가 회전하는것을 확인할수있다.