전체 글537 [유니티 Note] 섹션 3-4 # InputManager - InputManager의 필요성 Update에 직접 코드가 작성되는 것은 좋지 못함클래스로 관리해서 유일성 보장 및 유지보수 상승 - InputManager 만들기유니티에서 사용할 클래스가 아니기에MonoBehaviour 상속도 필요가 없다 델리게이트를 사용해 InputManager를 구현하며 된다참고로 델리게이트 바인드를 사용하는 경우에는'-='를 통해 모두 끊어주고 '+='를 통해 연결해서 사용하는 것이 안전하다public class InputManager{ public Action KeyAction = null; public void OnUpdate() { if(Input.anykey == false) return; .. 2025. 6. 25. [유니티 Note] 섹션 3-3 # Vector3 벡터는 위치 + 방향 개념이다 - 벡터를 위치로 사용하는 방법x, y, z 값을 가지고 있는 벡터는 기본적으로 위치를 나타낸다Vector3 pos = new Vector(0.0f, 1.0f, 0.0f); - 벡터를 방향으로 사용하는 방법방향벡터는 거리(크기)와 실제 방향에 대한 정보를 가지고 있다magnitude를 통해 거리(크기)normalized를 통해 magnitude가 1인 단위벡터를 추출해서 실제 방향을 알아낼 수 있다Vector3 targetPosition = new Vector3(5, 0, 10);Vector3 currentPosition = transform.position;// 방향 벡터Vector3 direction = targetPosition - currentPos.. 2025. 6. 25. [유니티 Note] 섹션 3-2 # 정상 속도 만들기지난 코드에서 CPU 성능에 따라 Update문을 도는 횟수가 다르기에각자 다른 속도로 움직이는 문제가 있었다이를 해결하기 위해서는 Time.deltaTime을 사용하면 된다public class PlayerContorller : MonoBehaviour{ public float speed = 10.0f; void Start() { } void Update() { if (Input.GetKey(KeyCode.W) transform.position += new Vector3(0.0f, 0.0f, 1.0f) * Time.deltaTime * speed; if (Input.GetKey(KeyCode.S) t.. 2025. 6. 24. [유니티 Note] 섹션 3-1 # 유니티 클래스 주석 없이 생성되도록 하는 방법public class Test : MonoBehaviour{ // Start us called before the first frame update void Start() { } // Update is called once per frame void Update() { }}유니티에서 C# 클래스를 생성하면 항상 위 코드처럼 주석이 생성된다이를 없애고 싶다면 아래와 같은 설정을 하면 된다 유니티가 설치된 폴더에 들어가서"Program Files/Unity/Hub/Editor/버전/Editor/Data/Resources/ScriptTemplates"로 들어간다그리고 81번 파일을 복사해서 외부에서 주석 제.. 2025. 6. 24. [C# 섹션 8] Property # property 개념 및 사용법property는 멤버 변수의 get, set 함수를 직접 만드는 과정을편하게 해주는 기능으로 사용법은 아래와 같다protected int hp; // 변수public int Hp // getter, setter{ get { return hp; } set { this.hp = value }} get set 중에서 둘 중 하나만 작성해서 하나를 막을 수도 있고private을 붙여 외부에서만 사용제한도 가능하다 # 자동 구현 property멤버 변수의 get, set 함수 내부에서기본 기능(단순히 get, set)만 하는 경우에는아래와 같이 자동 구현 propety를 활용하면 된다public int Hp { get; set; } // 변수 생성 자동 + getter, se.. 2025. 6. 24. [C# 섹션 8] Interface # abstract 필요 예시C++에서 추상클래스를 사용해야 하는 예시와 동일하다 C#에서 부모 클래스를 상속받은 자식 클래스에서부모 클래스의 virtual 함수를override를 하지 않거나 (부모 클래스 함수를 그대로 사용하고 싶은 경우)override 하여 사용하는 것이 일반적이다 (부모 클래스 함수와는 다른 구현부의 함수를 사용하고 싶은 경우)하지만 만약,부모 클래스는 함수의 "이름"만 정의하고,구현은 자식 클래스에서만 가능하도록 강제하고 싶다면abstract 키워드를 사용하면 된다 abstract 키워드가 함수에 붙으면,해당 함수는 추상함수가 되고해당 함수가 포함된 클래스 전체가 추상클래스가 돼버린다따라서,부모 클래스는 해당 함수의 구현(내용)을 가질 수 없으며,자식 클래스는 반드시 overri.. 2025. 6. 24. 이전 1 2 3 4 5 6 7 8 ··· 90 다음