반응형

프로그래밍 19

C# 상속(Inheritance), virtual, override 키워드 정리

상속(Inheritance)부모 클래스로부터 기능들을 자식 클래스가 물려받는 행위이다.부모 클래스의 기능을 재사용하고, 확장이 가능하다.생산성과 유지보수에 크게 도움이 된다. C#에서 상속(Inheritance) 사용하기public class Doctor // 부모 클래스 Doctor 생성{ private void Leave() // 접근 불가능 { Console.WriteLine("퇴근을 합니다."); } protected void Claim(int money) // 접근 가능 { Console.WriteLine($"돈 {money} 원을 청구합니다."); } public void Health(string name) // 접근 가능 { ..

프로그래밍/C# 2024.11.13

C# 인터페이스(Interface) 정리

✋ 인터페이스(Interface)객체지향 언어 특징 중, 추상화를 구현 시켜주는 메서드 정의 방법의 한 종류이다. 즉, 서로 비슷한 기능을 하는 클래스들을 그룹화 시켜서 공통의 메소드를 정의시킬 수 있음. Example : Animal (Walk) → Cat (Walk) | Dog (Walk) | Fox (Walk) | Tiger (Walk) 다중 상속이 가능하다. Example : Animal (Walk), Pet (Name) → Cat (Animal.Walk, Pet.Name) | Dog ( Animal.Walk, Pet.Name) | Fox (Walk) | Tiger (Walk) 다형성을 보장한다. ✋ C#에서 인터페이스 구현인터페이스의 이름에는 앞에 I"를 붙이도록 한다.interface IAni..

프로그래밍/C# 2024.11.12

C# 제네릭(generic) 간단 사용법

때론 상황에 따라 메소드에 전달하는 인자의 타입을 바꾸고 싶을 때가 있다."제너릭 메소드(generic method)" 은 이 고민을 해결해준다. 1. 제너릭 메소드제네릭 메소드는 다음과 같이 정의한다.class Test{ private T TestGeneric(T n1) { .... }}리턴 타입을 T로 지정하고, 메소드 이름 뒤에 를 붙이고, 매개변수 타입을 T로 지정한다.여기서 T는 우리가 직접 정의할 타입이다. 실제로 사용을 해보겠다.class Test{ public static void Main(string[] args) { object rs_1 = GetCode(30); // int 타입으로 정의 object rs_2 = GetC..

프로그래밍/C# 2024.11.07

c# 프로퍼티(property) 간단 사용법

자바나 C#과 같은 객체지향 프로그래밍 언어는 많은 장점을 가지고 있다.그 중 하나가 "캡술화" 이다. 캡술화란 『서로 연관있는 속성과 기능들을 하나의 만들어 데이터를 외부로부터 보호하는 것"』 으로 정의한다. 이러한 캡슐화를 이뤄주는 객체지향 언어만의 고유한 기능이 있는데, 그것이 바로 "프로퍼티(property)" 이다. 프로퍼티는 외부의 클래스로부터 선언한 변수를 외부에 접근을 할 수 있게하고, 동시에 보호까지 할 수 있는 강력한 문법이다. 또한 코드 관리를 용이하게 해주기 때문에 많이 사용된다. ✋ 프로퍼티(property)프로퍼티는 다음과 같이 정의할 수 있다.public class Item{ private string name; // 변수 선언 (private) public stri..

프로그래밍/C# 2024.11.06

유니티 애니메이션 끝난 후 이동

public class Enemy : MonoBehaviour { Animator animator; Vector3 movePos; void Attack() { // 애니메이션 끝나면 이동 if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime > 1.0f) { transform.position += transform.right * movePos.x + transform.forward * movePos.z; movePos = new Vector3(0, 0, 0); } // 위치 저장 else if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime > 0.99f) // movePos에 자식 프로젝트의 로컬포지..

유니티 프로파일러(Profiler) 사용기

게임 개발을 하면서..문득 생각이 든게 있다. 지금은 가벼운 게임만 제작하기 때문에 성능 관리면에서 그렇게 어려움을 느끼지 않고 있지만, 나중에 큰 프로젝트를 시작하게 된다면 퍼포먼스라는 것이 가장 중요한 게임의 특성상 개발하는 과정에서 큰 난항을 겪을 것이다. 그래서 관련해 알아본 결과, 유니티에 프로파일러라는 훌륭한 프로파일링 툴이 있었다. 성능 분석(프로파일링) 프로그램의 시간 복잡도 및 공간, 특정 명령어 이용, 함수 호출의 주기와 빈도 등을 측정하는 동적 프로그램 분석의 한 형태 1. 유니티 상단바 Window -> Analysis -> Profiler(Ctrl + 7) 2. 위쪽 빨간색 원이 활성화 되있는지 확인 런타임 시작 3. PlayerLoop -> BehaviourUpdate 를 통해 ..

반응형