C#

·C# 기초
delegate(델리게이트) 프로그래밍을 하다 보면, 매개변수로 값이 아닌 코드 자체를 넘기고 싶을 때가 있다.이럴 때 delegate(델리게이트)를 사용하면 좋다. 델리게이트란, 메서드 대리자이다.델리게이트를 선언하고 그곳에 원하는 메서드를 참조시킬 수 있다. 쉽게 말하면, 박스(델리게이트)를 만들고, 박스 안에 함수를 넣고 나중에 박스를 가져와 함수를 실행시키는 것이다.델리게이트는 형식(Type)이고, private 또는 protected가 아니면 외부에서 실행시킬 수 있다. 사용 방식 (같은 클래스 안의 델리게이트 사용 방식)public class DelegateTest : MonoBehaviour{ delegate void dt(int a); public void func(int a) ..
·C# 기초
https://wonseok1112.tistory.com/27  [C#][개념] 스레드와 동기/비동기프로세스(Process)와 스레드(Thread) 우리가 사용하는 운영체제는 스레드로 이루어진 프로세스들로 이루어져 있다. 프로세스(Process)란? 운영체제에서 할당하는 작업의 단위이다. 우리가 유튜브 뮤직wonseok1112.tistory.com동기/비동기와 스레드/멀티스레드의 개념에 대해 설명한 글을 보고 오시면 이해하는데 많은 도움이 됩니다.  유니티에서의 대부분 로직은 동기 방식으로 작성되며, 흐름(Flow, Stream)을 관리하거나 시간을 조절해 시행해야하는 작업은 코루틴(Coroutine)이라는 기능을 활용하여 구현된다. 비동기 방식을 유니티(Unity)에서 언제 사용하는가?사실 게임 개발에..
·C# 기초
프로세스(Process)와 스레드(Thread)   우리가 사용하는 운영체제는 스레드로 이루어진 프로세스들로 이루어져 있다.  프로세스(Process)란?운영체제에서 할당하는 작업의 단위이다. 우리가 유튜브 뮤직을 들으며 인터넷 서핑을 하는 행위가 여러 프로세스를  동시에 실행하는 것이다.프로세스 간에는 메모리 등의 자원을 공유하지 않는 등 서로 영향을 끼치지 않는다. 스레드(Thread)란? 프로세스 내에서 실행되는 흐름의 단위이다. 하나의 프로세스는 스레드를 여러 개 가질 수 있다. 스레드들은 부모 프로세스의 자원을 공유한다. 즉, 같은 메모리에 접근할 수 있다. 한 프로세스에서 여러 스레드가 자원을 공유하고 있기 때문에 잘못 구현하면 다른 스레드에도 치명적인 영향을 미쳐 전체적으로 프로세스가 오작동..
·C# 기초
dynamic 이란?  컴파일 시점이 아닌, 런타임 시점에서 형식 검사를 수행하게 하는 키워드이다.   [C#] 일반화 프로그래밍 (제네릭/Generic)C# / Unity에서 일반화란 특수한 개념으로부터 공통되는 개념을 찾아 묶어 일반화 시키는 것이다. 일반화 하는 대상은 데이터 형식(type)이다. 일반화를 할 때 object 형식을 쓰는 것이 편리하다. objectwonseok1112.tistory.com설명의 이해를 돕기 위한 제네릭 참고자료 제네릭 초기값 설정 제네릭 메서드를 호출 할 때 매개변수로 들어온 자료형(T)와 똑같은 자료형의 변수를 만들고 거기에 초기값을 설정해야 하는 예시를 들어보겠다.  제네릭 메소드 SetArray를 호출하여 특정 변수에 값을 담고, 그 값에 SetArray의 매..
·강의 공부
Task는 Quest에서 실제로 해야 하는 작업을 나타낸다. 위의 "모험 전투 5회 도전하기" 와 "제작소에서 장비 3회 강화하기" 퀘스트들을 예시로 설명하자면 첫번째 퀘스트 Target = 모험 전투 Category = -회 도전하기 두번째 퀘스트 Target = 제작소 Category = -회 강화하기 모두 무엇을, 몇회, 어떤 것을 하는지로 구성되어있다. 이것들은 모두 CountTask 이고 CountTask 외에 많이 쓰이는 SetTask도 있다. Task 생성과 필드 구성 Task 스크립트를 생성해주고, 스크립터블 오브젝트로 만든다. 코드 내에서 스크립트끼리 구별하게 할 수 있는 codeName을 선언해주고 퀘스트의 간단한 설명을 쓸 수 있는 description을 선언해준다. 퀘스트 시스템의 ..
·강의 공부
유니티 개인 프로젝트를 만드는 도중, 점점 프로젝트의 코드가 난잡해지고 재사용성이 떨어지는것 같아서 인프런에서 강좌를 찾아봤다. 그러던 중 모듈식으로 개발하는 퀘스트&업적 시스템 이라는 강의가 눈에 들어와 구매하게 되었다. 이 강의는 거의 모든 게임에 들어가는 퀘스트 시스템을 효율적으로 개발하는 방법과 퀘스트와 업적 시스템 개발하는 것을 기반으로 모듈식 프로그래밍을 배우는 강의였다. 내 상황에서 매우 필요한 강의였고 공부를 시작하게 되었다. 모듈식 프로그래밍 모듈식 개발은 클래스의 기능을 분리하여 마치 컴퓨터를 조립하듯 우리가 원하는 기능들을 조립해 객체를 완성시키는 것을 말한다. 모듈식 프로그래밍을 해야 하는 이유 모듈식으로 개발을 하면, 개별 클래스가 가벼워지고, 코드 간의 결합이 느슨해져 수정과 디..
·C# 기초
클래스를 상속하는 이유는 같은 코드의 작성을 피해서 재사용성을 높이는 이유로 쓰인다. 그러나 상속 관계의 클래스 구조를 잡다보면 너무 복잡해질수도 있고 상속을 하므로써 상위 클래스를 직접 참조가 가능해지고 보안이나 여러가지 이유로 클래스 상속을 막아야하는 경우가 있다. 이럴때 쓰이는 것이 sealed 키워드 이다. sealed 키워드 sealed를 클래스에 사용하는 예시  클래스 앞에 sealed 키워드를 붙이면 그 클래스는 더이상 상속받을수 없게 된다. sealed를 메서드에 사용하는 예시  위의 예시를 보면 Example 클래스를 상속받은 SubExample 클래스에서 부모의 Print 메서드를 생성하고,sealed 키워드를 넣었을 때, SubExample 클래스를 상속받은 SubExample 클래스..
·C# 기초
인터페이스란,상속 받을 클래스에 기능이나 속성을 지정하는 역할을 하는 기능이다. 일반적인 상속관계와 같다고 보일 수도 있지만 다른 개념이다.일단 C#에서는 하나의 부모 클래스만 상속받을 수 있다.  따라서 여러가지 기능들을 사용할 경우 하나의 부모 클래스에서 기능을 상속 받아 자식 클래스에서 정의/사용을 하게 된다. 하지만 이렇게 되면 부모 클래스에 너무나 많은 기능이 들어가게 되어 굉장히 복잡해지고 어지러워질 수도 있다.이런 상황을 해결해주도록 부모 외에 추가로 상속을 받아 기능을 더 만들 수 있게 해주는 기능이인터페이스(interface)이다.  상속 관계를 이용하여 히어로를 만든다고 가정해보겠다.히어로라는 부모 클래스에는 움직임, 달리기, 펀치 같은 히어로가 무조건 가져야 할 기본적인 기능을 만들어..
입니다최원석
'C#' 태그의 글 목록