반응형

2025/03 12

[Python] List, Tuple Slicing 사용법

파이썬에서는 기존에 사용했떤 C계열에서는 못봤던 슬라이싱이라는 개념이 있다 test = ["a", "b", "c", "d", "e", "f", "g"]print(test[2:5]) ['c', 'd', 'e'] 위와 같은 결과를 보여주는 것인데 리스트나 튜플에서 특정 index 구간을 반환시켜준다. 정말 편리하게 사용할 수 있지 않을까 생각했던 기능 들 중 하나이고 [시작 인덱스:종료 인덱스] 와 같이 쓰거나, [시작 인덱스:종료 인덱스:순회시 인덱스 증가치] 와 같이 쓰여서test[2:5:2] 와 같이 쓰면 2, 4 인덱스를 가져오는 방식으로 사용가능하다 (for 문법에서 쓰는 느낌처럼 사용 가능)추가로 종료 인덱스를 쓰지 않으면 해당 데이터 목록의 끝까지, 시작 인덱스를 쓰지 않으면 처음부터, 증가치는..

Devs/Python 2025.03.31

[Python] class 초기화와 상속

class Test: def __init__(self): pass 파이썬 클래스의 생성자는 위와 같이 사용한다. 추가로 내용이 비어있을 때를 위한 pass가 있다 from turtle import Turtleclass Test(Turtle): def __init__(self): super().__init__()상속의 경우 class Test(Turtle): 와 같이 부모 클래스 괄호 안에 넣어주고 생성자에서 부모 클래스의 생성자를 호출하는 방식으로 동작시킨다추가로 생성자 등에서 함수로 인자를 넘겨줄 때 특정 클래스 타입인지 적어줄 수 있는데, 아래처럼 할 수 있다from turtle import Turtlefrom test_brain import TestBrainclass Test(Turtle):..

Devs/Python 2025.03.26

UFUNCTION 매크로, RPC (Remote Procedure Call) 시스템

위 스크린샷처럼 OnHit 함수 위에 UFUNCTION 매크로를 배치한 함수 선언이 있다. 클래스 C++ 함수가 언리얼 엔지의 리플렉션 시스템으로 인식될 수 있게 하는 것이라고 한다. gpt로 다시 한 번 설명을 부탁해본 결과. 블루프린트, 네트워크, GC 등의 처리에서 다룰 수 있게 메타데이터를 추가라고 이해하면 될 듯 하다추가로 UCLASS와 다른 매크로들처럼 지정자를 지정하여 설정할 수 있다 간단히 블루프린트용 지정자, 네트워크 관련 지정자, 기타 몇가지 지정자들을 gpt에서 보고 메모용으로 기록해둔 것  - 네트워크 관련 지정자 (RPC)에 대해서 공부를 한 적이 없어서 이 부분에 대해서도 gpt에게 물어보고 정리 중대강의 개념을 이해하면 멀티플레이 게임에서 클라와 서버가 한쪽에서 실행한 기능을 ..

Devs/Unreal Engine 2025.03.20

[Python] Docstrings 알아보기

def format_name(f_name, l_name): """Take a first nd last name and format it to return the title case version of the name.""" formated_f_name = f_name.title() formated_l_name = l_name.title() return f"{formated_f_name} {formated_l_name}" 위와 같이 함수를 정의하고 바로 아래 줄에 """ 로 문구를 입력하면 해당 함수에 대한 설명이 아래처럼 보이는 것을 알 수 있다. 실제 개발을 하게 된다면 주석이 필수적인 것이라 잘 기억해두고 써먹는 것이 좋을 듯 하다

Devs/Python 2025.03.20

CreateDefaultSubobject 함수, FName, FString, TEXT 매크로, TCHAR

CreateDefaultSubobject함수는 Object.h에 정의되어 있는 template 함수로 특정 타입의 인스턴스를 만들고 해당 포인터를 반환하는 함수로 보인다슈팅 게임 캐릭터의 예제에서는 UCameraComponent와 USkeletonMeshComponent의 인스턴스를 만드는 것으로 보인다.추가로 인자로 보내는 TEXT 매크로로 FName을 지정해서 해당 인스턴스의 이름을 지정하는 것으로 보인다  - FName위 CreateDefaultSubobject함수의 인자로 넘겨주는 타입이 자세히 보니 그냥 스트링이 아닌 FName으로 되어 있어서 좀 더 살펴보자. 주석을 보면 아래와 같이 써져 있다./** * Public name, available to the world. Names are s..

Devs/Unreal Engine 2025.03.18

[Python] 여러 줄 주석 방법

파이썬 코드를 공부하면서 여러 줄 주석을 치는 부분이 궁금해서 찾아본 부분이 있어서 기록으로 남겨두기용 글 한 줄의 경우 # 을 제일 앞에 붙이면 되고, 여러 줄의 경우에 """ 로 시작하고 끝나는 부분에도 동일하게 붙여주면 된다 (추가로 들여쓰기가 되는 경우 '''은 들여쓰기가 필요하다고 한다는 점 주의)"""num_sum = 0for number in range(1, 101): num_sum += numberprint(num_sum)""" 추가로 단축키를 사용하는 경우가 많아서 찾아본 정보도 저장윈도우에서 코드를 드래그하여 구역 설정 후 ctrl + / 를 하면 #으로 여러 줄 주석이 된다 (맥에서는 command + /) 단축키를 이용하는 부분이 더 편하지만 사용처에 맞게 하면 될 듯 하다.

Devs/Python 2025.03.17

[Python] password generator (random.shuffle 활용)

특정 문자 a개, 특수 문자 b개, 숫자 c개를 입력받아서 해당 개수만큼의 스트링을 출력하자.해당 문자들이 잘 섞이게 할 것. - 인강을 들으면서 테스트로 해보려던 부분인데 생각보다 쉬울 듯 했는데 고민을 했던 부분 중 해결했던 방향에 대해서 글을 적어본다 - 일단 letters, numbers, symbols는 기본적으로 주어짐 random의 shuffle 기능이 있어서 활용해보고자 하였음생각했던 방향은 일단 해당 개수별로 random.choice로 문자를 선택하고 문자열에 집어넣는다. 그렇게 하면 개수별로 만들어지나 잘 섞이지 않고 letter + number + symbol의 순서대로 지정이 되어서 패스워드라 여기기 어려움.그래서 다양한 방법으로 이들을 잘 섞어줄 수 있겠지만 기본적으로 shuffl..

Devs/Python 2025.03.17

ACharacter 상속 / GENERATED_BODY 매크로

- 위와 같이 AActor를 상속 받는 류의 클래스 이름은 접두어로 A를 붙이는 것이 엔진 코딩 표준이라고 한다(AActor -> APawn -> ACharacter) - GENERATED_BODY 매크로의 경우 클래스 정의시 항상 처음 사용되는 것인데 정의하는 곳을 보면 대강 저런 식으로 현재 FILE_ID와 코드 실행 LINE과 GENERTED_BODY?가 합쳐지는 것으로 보임-> 요 부분도 GPT를 이용하여 설명을 들어보자결론적으로는 요 매크로를 사용하게 되면 UHT가 자동 생성한 코드가 포함되는 고유한 결합체?라는 느낌으로 보인다. 추가로 언리얼 엔진의 Reflection 시스템과 UObject 시스템을 위한 코드 생성에 사용된다고 한다. 이 부분에 대해서는 다른 포스트에서 좀 더 자세히 다뤄보기..

Devs/Unreal Engine 2025.03.14

DELEGATE 매크로, UCLASS, UPROPERTY

UE5.0 기반으로 공부를 진행하면서 1인칭 슈팅 샘플 게임을 통해 공부 - 책으로 처음 언리얼 엔진을 다루고 있긴 한데 기존에 학부에서 배웠던 C++만으로는 헷갈리는 부분들이 꽤 있어서 언리얼 C++관련 으로 정리 중 - 기본적으로 언리얼 클래스인 것을 표시하기 위해 클래스명 이름 앞에 U를 붙이는 것을 기조로 하는 것으로 보임 캐릭터 헤더 코드를 일단 분석 - #include와는 별개로 class UInputComponent;와 같이 사용되는 언리얼 클래스를 선언 (외부의 클래스) (책에 따르면 어딘가 다른 곳에서 구현될 가능성이 있다는 것을 의미라고 함) - DECLARE_DYNAMIC_MULTICAST_DELEGATE 매크로언리얼이 제공하는 C++ 매크로로 인자로 준 델리게이트 함수 유형을 선언하..

Devs/Unreal Engine 2025.03.13

[Python] C, C++, C#와 Python의 차이 정리용

기존 C 계열 언어에서 쓰던 코드와 Python을 공부해가면서 다른 부분들을 정리할 겸 쓰는 글두서가 없을 수 있고 인강으로 공부를 하면서 기억에 의존한 형태로 쓰는 거라 빠진 부분들이 있을 것 1. 변수에 자료형을 따로 선언하지 않음- js에서 쓰는 var와 같은 느낌인지 자료형이 쓰이지 않음 2. f-string- print를 해서 자료형이 다른 것을 넣고 싶은 경우 사용 (Ex. print(f"Test Value : {number}") 3. if 구문- else if 라고 쓰던 기타 C계열과는 다르게 축약된 elif를 쓰고 있음- condition을 쓴 후 무조건 : 을 붙여야 함- 들여쓰기가 매우 중요 (중괄호를 안 쓰고 들여쓰기로 단락을 인식하는 것으로 보임)- if condition 구문에 i..

Devs/Python 2025.03.13
반응형