목록전체 글 (52)
게임 프로그래밍
유니티에 툴을 제작할려고 Custom Eidtor를 만들때 Undo 기능이 필요할때가 있습니다. 유니티는 이를 간단하게 제공하고 있습니다. Undo.RecordObject (myGameObject.transform, "Zero Transform Position"); myGameObject.transform.position = Vector3.zero; 이런 코드가 있을때 zero 포지션에 갔던 Object를 Undo시키면 원래있던 자리로 가게 될것입니다. Adding a component: Undo.AddComponent(myGameObject); Creating a new game object: var go = new GameObject(); Undo.RegisterCreatedObjectUndo (go..
유니티에서는 OnDrawGizmo와 OnDrawGizmosSelected를 이용해서 Gizemo를 그려 씬에서의 편집을 쉽게 만들 수 있습니다. 간단하게 사용 방법에 대해서 알아 보겠습니다. 1 2 3 4 5 6 7 8 9 using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void OnDrawGizmos() { Gizmos.color = Color.yellow; Gizmos.DrawSphere(transform.position, 1); } } Colored by Color Scripter cs 이렇게 OnDrawGizmos를 통해 이 함수안에 Gizmos 클래스안에 있는 것들을 사용하면 됩니다. ..
1 2 3 4 5 6 void OnSceneGUI() { var mousePosition = Event.current.mousePosition * EditorGUIUtility.pixelsPerPoint; mousePosition.y = Camera.current.pixelHeight - mousePosition.y; Ray ray = Camera.current.ScreenPointToRay(mousePosition); } Colored by Color Scripter cs mousePosition에 EditorGUIUtility.pixelsPerPoint를 곱해주면 된다. 이를 잘 몰라서 조금 고생했다.
Vector3 dir = new Vector3(15f,37f); Mathf.Rad2Deg * (Mathf.Atan2(dir.normalized.y, dir.normalized.x))
IDragHandler 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; [RequireComponent(typeof(Image))] public class DragMe : MonoBehaviour, IBeginD..

유니티 애니메이터 기능중에는 Animator Overrid 기능이 있습니다. 하나의 Animator를 기반으로 하여 안에 들어간 Animation Clip를 다르게 사용할때 사용하면 유용한 기능입니다. 이렇게 애니메이터안에 변수, 로직, 상황은 똑같지만 이미지가 달라 클립은 달라져야 하는 경우가 있습니다. override기능이 없다면 하나씩 Animator를 만들어줘야 할 것입니다. 그렇다면 어떻게 만들수 있을까요? 이렇게 만든후 Controller 안에 Base가 될 애니메이터를 넣어주고 밑에 클립을 상황에 맞게 넣어주면 됩니다.

더블 버퍼링에 개념에 대해서 알아볼려고 합니다. 일반적으로 이미지를 화면에 그릴때 이전 프레임에 있던 이미지를 지우고 새로 그리기 때문에 더블 버퍼링 기법을 사용하지 않으면 깜빡임 현상이 나오게 됩니다. 이를 Flickering(깜빡임) 현상이라고 합니다. 더블버퍼링이란 위 사진처럼 화면을 그릴때 화면에 바로 이미지를 그리는 것이 아닌 Front Buffer 와 Back Buffer를 나누고 Back Buffer에 다음에 그릴 이미지를 먼저 그린후 그 다음 미리 그려진 Back Buffer를 이용하여 화면에 그리는 기법입니다. 이를 통해 깜빡임 현상을 없앨수 있습니다. 그렇다면 c#에서는 더블버퍼링을 어떻게 사용할수 있을까요? 간단하게 지원하기 때문에 쉽게 만들 수 있습니다. 아래의 코드를 폼이 로드가 ..
1 2 if not os.path.isdir("path"): os.makedirs("path") cs import os를 하신후 폴더가 만들어져 있는지 확인한다음 os.makedirs를 이용하여 폴더를 만들 수 있습니다. 1 2 3 4 shutil.copy2("원본 경로","대상 경로") shutil.move("원본 경로","대상 경로") cs 파일 복사와 이동에 경우에는 import shutil를 하신후 shutil.copy2, shutil.move를 사용하면 됩니다.