분류 전체보기
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..
C++ POD, 표준 레이아웃 타입, 간단한 타입
POD (Plain Old Data) 메모리 상에서 연속적인 바이트 열이다. 다형성이나 유저가 정의한 복사 의미론 등과 같은 진보된 의미론 문법이 필요없을 때 개체를 POD로 취급해야 할 때가 있다. 왜냐하면, POD로 취급하면 하드웨어에서 좀 더 효율적으로 개체를 옮기거나 복사할 수 있기 때문이다. POD 개체는 다음 조건을 갖춰야 한다. 표준 레이아웃 타입(standard layout type)이어야 한다. 간단한 타입(trivial type)이어야 한다. POD가 될 수 있는 조건 복잡한 레이아웃을 갖지 않는다.(가상 함수 등) 유저가 정의한 복사 의미론을 갖지 않는다. 간단한 기본 생성자를 갖고 있다. 의 std::is_pod를 이용하면 쉽게 알 수 있다. 표준 레이아웃 타입 C와 분명하게 같은 ..
언리얼엔진5 다운로드 및 4에서 업그레이드 방법
여기서 .zip 파일로 받던지 git clone을 한다. 총 용량은 대략 120gb이다, 속도 향상을 시키기 위해선 ssd에 설치하는건 필수, https://github.com/EpicGames/UnrealEngine 난 다 필요없고 오직 기본꺼만 필요한다하면 에픽 스토어 앱 통해서 다운 받아도 된다. 프로젝트를 까보면 아래와 같이 2개의 .bat 파일이 있을 것이다, 우선 Setup부터 실행시킨다. .uproject 파일 우클릭 후 버전을 선택했을 시 아래와 같은 에러가 뜬다. 아까 위에 GenerateProjectFiles.bat를 실행시킨 후 설치 해야한다. 이제는 아래와 같은 폴더들을 삭제 후 재생성한다, .sln 파일 열었을 때 아래와 같이 뜬다면 정상적으로 된 것이다. 하지만 여기서 문제점이 ..