분류 전체보기

    C# 부분 클래스 (partial)

    partial 키워드는 C#에서 부분 클래스를 지정한다, 장점으로는 여럿이서 하나의 프로젝트를 작업할 시 클린 코드를 유지할 수 있다는 점이다. 여러 책임이 있는 클래스가 있는 경우 각 클래스를 두 개의 구분자 클래스로 분할해야 한다. 부분 클래스를 사용하면 한 클래스의 정의를 여러 파일로 분할할 수 있다. 이 튜토리얼에서는 Person 클래스의 정의를 Person1.cs 및 Person2.cs 여러 파일로 분할한다. Person.cs using System; namespace partial_class { public partial class Person { private int id; private string name; public Person(int id, string name) { this.id ..

    C# 인덱서 (Indexer)

    인덱서는 인덱스를 이용해 객체 내의 데이터에 접근하게 해주는 프로퍼티이다. 인덱서를 선언하는 방법 class 클래스이름 { // 한정자 인덱서형식 this[형식 인덱스식별자] { get { // 인덱스식별자를 이용하여 내부 데이터 반환 } set { // 인덱스식별자를 이용하여 내부 데이터 저장 } } } 인덱서는 프로퍼티처럼 식별자를 따로 가지지는 않는다. 프로퍼티는 이름을 통해 객체 내의 데이터에 접근하지만 인덱서는 인덱스를 통해 객체 내의 데이터에 접근한다. 인덱서의 선언 예 인덱서를 통해 정수 형식 배열 array에 접근한다. 인덱서를 통해 데이터를 저장할 때 인덱스보다 배열의 크기가 작다면 배열의 크기를 인덱스에 맞춰 재 조정하는 코드이다. class MyList { private int[] a..

    C# 확장 메서드 (Extension Method)

    확장 메서드(MSDN 링크) 는 C# 3.0부터 추가된 기능으로 미리 정의된 형식에 사용자 정의 함수를 확장(추가)시키는 작업을 수행한다. 예로 들어서 string 형식에 Print라는 함수를 확장할 때 일반적인 경우라면 형식에 메서드를 추가하기 위해서는 해당 형식의 소스 코드가 필요하다. string 형식은 mscorlib (Multi-language Standard Common Object Runtime Library, 다국어 표준 공용 언어 런타임 라이브러리) 프로젝트에 포함되어 있으며, 변경 후에는 이 프로젝트를 다시 빌드하여 어셈블리를 만들어야 한다. 깃헙 링크 하지만, 확장 메서드를 사용한다면 해당 형식의 코드를 변경하지 않고 내 코드에서 어떤 형식이던지 메서드를 확장시킬 수가 있게 된다. 확..

    [Unreal] RootComponent 루트 컴포넌트

    루트 컴포넌트는 충돌 인식과 월드 스페이스에서 오브젝트의 위치를 결정하고 항상 충돌을 탐지하는 컴포넌트(메쉬(Skeletal, Static) , 충돌체)여야 한다. 메쉬 컴포넌트를 설정했을 시 Mobility라는 항목이 추가된걸 확인해 볼 수가 있다, 이는 크게 3개로 나뉜다. 추가적으로 Set Simulate Physics를 할 시 무조건 Movable이여야 한다. Static > 맵에서 움직이진 않고 라이트닝 또한 인게임 중 위치를 바꿀 수가 없다. Stationary > 맵에서 움직이진 않지만 라이트닝 위치를 인게임에서 바꿀 수가 있다. Movable > 맵과 라이트닝 동일하게 움직일 수가 있다. 참고 : https://docs.unrealengine.com/4.26/en-US/BuildingWor..

    [Unreal] RadialForceComponent 하중을 가하는 컴포넌트

    Radial Force Component를 추가한 후 루트 컴포넌트에 부착한다. 추가적으로 대상 오브젝트는 항상 Simulate Physics true 상태여야 한다. Radius > 범위 Object Types To Affect > 하중을 가하고자 하는 오브젝트(엑터) 타입 Impulse Strength > Fire Impulse 함수를 통해 하중을 단방에 가할 힘 Impulse Vel Change > 하중을 대상 오브젝트 무게와 상관없이 일정하게 가하는 것 Force Strength > 별다른 함수 호출 없이 하중 컴포넌트가 Activate 상태일 때 서서히 하중을 가할 힘 캐릭터는 폭발물에 하중을 가할 필요가 없으므로 제거해줬다. RadialForceComp->RemoveObjectTypeToAff..

    [Unreal] 언리얼 콜리전(충돌), 트레이스(추적) 유형

    언리얼의 콜리전은 오브젝트 타입과 트레이스 타입으로 나뉘고 각 사항에 대해 트레이스 처리를 할 수 있다. c++ 과 BP에 대응하는 함수는 아래와 같다. 여기서는 LineTrace만을 예로들었으나 구체, 박스, 캡슐등의 트래이스 모양및 다중트래이스 처리도 할수 있으니 필요하면 찾아서 쓰자(사용법은 같다. 반환되는값의 차이.) (ECollisionChannel? EObjectTypeQuery?? ETraceTypeQuery??? ) 1. 언리얼의 기본및 사용자정의 오브잭트채널, 트레이스채널은 모두 ECollisionChannel한군데에 세팅되고 트래이스에는 이값들이 사용된다. 2. EObjectTypeQuery, ETraceTypeQuery 는 ECollisionChannel에 세팅되어 있는 값을 찾아오기..

    [SQL] 키(슈퍼키,대체키,후보키,기본키,외래키)

    * 키(Key)무언가를 식별하는 고유한 식별자(identifier) 기능을 한다. 즉, 데이터베이스에서 조건에 만족하는 관계의 행을 찾거나 순서대로 정렬할 때 다른 행과 구별할 수 있는 유리한 기준이 되는 속성의 집합이다.- 키의 종류로는 기본키, 슈퍼키, 후보키, 대체키, 외래키 등이 있다.1. 슈퍼키(Super Key)<p data-ke..

    C/C++ 연산자(Operator) 정리표 (비트, 논리, 산술 +=&^<<>>%~!)

    논리 연산자(Logical operator) 연산자(Operator) 의미(Description) 예제(Example) && 모두 같으면 true를 return (a-3) && b || 하나만 true 면 true를 return a >3 || b > 오른쪽으로 비트 이동, 빈 곳은 0 x>>5

    [SQL] DDL, DML, DCL 이란?

    DDL(Data Definition Language) - 데이터 정의어데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어 이다.DML(Data Manipulation Language ) - 데이터 조작어데이터베이스에 등록..

    C# 리플렉션과 어트리뷰트 (Reflection and Attributes)

    리플렉션 C#에서는 프로그램 실행 도중에 객체의 정보를 조사하거나, 다른 모듈에 선언된 인스턴스를 생성하거나, 기존 개체에서 형식을 가져오고 해당하는 메소드를 호출, 또는 해당 필드와 속성에 접근할 수 있는 기능이다. 형식 메소드 설명 Type GetType() 지정된 형식의 Type 개체를 가져온다. MemberInfo[] GetMembers() 해당 형식의 멤버 목록을 가져온다. MethodInfo[] GetMethods() 해당 형식의 메소드 목록을 가져온다. FieldInfo[] GetFields() 해당 형식의 필드 목록을 가져온다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using..