c#(35)
-
[C#] 인터페이스
인터페이스란 상속 관계가 없는 클래스에 기능을 제공하는 구조이다. 클래스에 오버라이드로 조립하는 형태로 사용된다. 클래스와 비슷하지만 멤버는 추상 메소드, 추상 속성, 추상 인덱서, 이벤트로 한정된다. 인터페이스도 상속은 가능하다. using System; interface A //인터페이스 생성 { public abstract void say(); //추상 메소드 public abstract int prop //추상 속성 { get; set; } } class X : A //인터페이스 장착 { public void say() //추상 메소드에 오버라이드 { System.Console.WriteLine("Hello"); } public void prop //추상 속성에 오버라이드 { get { retur..
2023.10.27 -
[C#] static에 대한 정리
필드나 메소드에 붙이는 수식자. 같은 클래스로부터 생성한 객체에서 static을 붙인 필드는 값이 같아진다. 어느 객체에도 같은 동작을 하는 메소드에는 static을 붙인다. 예시 using System; class Purse { public static int money = 0; public void printMoney(int IN, int OUT) { money = money + IN - OUT; if (money < 0) { Console.WriteLine((-1 * money) + "원 부족합니다."); } else { Console.WriteLine("잔금은 " + money + "원 입니다."); } } } class Shopping { public static void Main() { Pur..
2023.10.26 -
[C#] 속성(feat. get, set), 인덱서
필드의 값을 취득 또는 설정한다. 필드에 중괄호가 붙고 get/set을 쓴다. set 엑세서를 명시하지 않으면 읽기 전용, get 엑세서를 명시하지 않으면 쓰기 전용이 된다. 예시 using System; class Aroma { public double drop; public double volume { get { return drop; } set { drop = value; } } } class AromaSample { public static void Main() { Aroma aroma = new Aroma(); aroma.volume = 0.05; Console.WriteLine("한 방울은 " + aroma.volume + "ml 입니다."); } } 인덱서란 객체 안의 배열에 엑세스 하여 클..
2023.10.25 -
[C#] 생성자
클래스와 같은 이름의 특수한 메소드. 생성자는 반환 값이 없다. 필드 초기화 등에 이용한다. 인수가 없는 생성자 class A { public int a, b, c; public A() //생성자 { a = 0; b = 0; c = 0; } ... } class TestA { ... A a = new A(); //객체 생성 = 생성자 호출 ... } 인수가 있는 생성자 class B { public int s, t; public B(int a, int b) //생성자 { s = a; t = b; } } class TestB { ... B b = new B(3, 4); //생성자에 전달하는 인수 ... } 예시 using System; class Book { public int price; public i..
2023.10.25 -
[C#] 필드와 지역 변수의 구별
하나의 클래스 안에는 같은 이름의 필드와 지역 변수가 존재할 수 있다. using System; Class Scope { int zoom = 1; //필드 void print() { int zoom = 2; //지역 변수 ... } Console.WriteLine(zoom + "," + this.zoom); } 필드로 int zoom = 1;을 선언하였고, print() 메소드 안에 지역 변수로 int zoom = 2;를 선언하였다. Console.WriteLine(zoom + "," + this.zoom); 에서 앞의 zoom은 지역 변수 zoom을, 뒤의 this.zoom은 필드 zoom을 의미한다.
2023.10.25 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(6) Hit 이펙트 추가
미사일이 소행성에 맞으면 그에 맞는 이펙트가 생겨야 한다. Hit 스프라이트를 알맞게 설정한 후 한꺼번에 Hierarchy 창으로 끌어서 애니메이션을 만든다. 애니메이션을 만든 경로에 Hit 애니메이션 클립이 있는데, 한 번 부딪힐 때 한 번만 이펙트가 생격야하므로 Loop Time을 체크 해제해야 한다. 해당 애니메이션 클립을 더블 클릭하여 Animation 창을 띄운 후 Hierarchy 창에서 hit1 스프라이트를 눌러 애니메이션을 재생해 보면 반복되는 것을 볼 수 있다. 한 번 반짝이고 서서히 사라지도록 애니메이션을 수정해야 한다. Add Property로 color를 추가하여 6프레임까지 Color.a 알파 값이 1을 유지하다가 8프레임에서 0을 만들어 사라지게 하였고, Sprite 부분을 확장..
2023.08.31