본문 바로가기

전체 글60

사운드 적용 1.배경음(BGM)-레벨에 Ambient Sound(앰비언트 사운드) 액터를 배치-액터의 디테일에서 사운드 파일 선택 2.특정 위치 사운드-오브젝트에서 Audio component를 추가 -자동 재생 -> Auto Activate-이벤트 재생 -> Audio component->Play() 이용-Attenuation Settings를 설정하여 거리에 다른 볼륨 조절-BP에서 Play Sound at Location()를 사용하여 특정 위치를 설정 가능 UI 버튼 사운드-클릭/호버에 Play Sound 2D를 사용하여 재생 2025. 3. 5.
위젯 블루프린트(GameOver) 플레이어 사망시 불러올 화면을 만들기 위해위젯 블루프린트에서 배치 및 생성을 하였는데이미지같은 경우는 그냥 배치를 하였으며버튼 같은 경우는 텍스트를 적을 수 없기 때문에 버튼의 자식으로 텍스트를 생성하는 방식으로 하였으며 버튼에 마우스를 클릭하는 것 뿐만 아니라 마우스를 올렸을 때 이벤트를 주고 싶었는데버튼의 디테일 창에서 호버시 라는 것을 보게되어 버튼의 이미지를 변경할 수 있기에 설정하였지만호버시 이미지 크기 및 회전 설정을 디테일창에서는 이것 저것 건드려 봐서 수정이 되지 않아그래프창으로 넘어가서 수정 이런 식으로 크기, 회전, 폰트 색을 변경하였고이런 식으로 마우스를 버튼 위에 올릴 시 이벤트를 생성할 수 있게 되었으며클릭시 이벤트는 RESTART -> OpenLevel(this, FName(*G.. 2025. 2. 28.
낙사 하는 박스 콜리전 + (클리어 타이머) 낙사하는 것을 구현하기 위해 맵 아래에 오버랩되었을 경우 낙사하는 함수를 호출하는 방식을 생각함 박스컴포넌트를 생성후BoxComponent->SetCollisionProfileName(TEXT("OverlapAllDynamic"));다이내믹 오브젝트들과 겹치는 Overlap를 활성화BoxComponent->OnComponentBeginOverlap.AddDynamic(this, &ADropCheckBox::OnOverlapBegin);BoxComponent에서 다른 오브젝트와 오버랩이 발생했을 때 OnOverlapBegin() 함수를 실행  OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveCompo.. 2025. 2. 26.
데칼 감지(레이캐스트) 기본적으로 데칼은 물리 충돌을 할 수 없기에 레이캐스트로 감지가 되지않음(물리 채널, 데칼 컴포넌트에 태그를 시도는 해보았지만 역시 감지되지 않음) 따라서 데칼 액터로 생성하거나 데칼에 액터를 상속받는 방법을 사용해 보았는데이 두 가지의 차이점으로는액터 상속데칼 액터UDecalComponent를 직접 추가데칼 컴포넌트 포함여러 컴포넌트를 추가 가능데칼만 포함 가능, 확장성이 낮음Actor로서 충돌 감지 가능충돌 감지 기능 없음 두 가지 방법을 사용해 보았을 때 기본적으로는 둘 다 물리 충돌이 되지 않았기에콜리전 컴포넌트를 추가하기 위해 액터 상속을 선택하여 진행 박스 콜리전을 사용해 보았지만 물감 데칼과 범위를 정확하게 가져가지 않아스태틱 메쉬를 사용을 해보려 하였지만 메쉬이다 보니 캐릭터와 물리 충돌이.. 2025. 2. 25.
타이머핸들러 & 부착 규칙 부착 규칙(FAttachmentTransformRules)AttachToComponent 함수에서 사용::KeepRelativeTransform - 부착 전의 상대 좌표를 유지한 채 부모에 붙음:: KeepWorldTransform - 부착 전의 월드 좌표를 유지한 채 부모에 붙음::SnapToTargetIncludingScale - 부모의 위치, 회전, 크기까지 완전히 일치:: SnapToTargetNotIncludingScale - 부모의 위치와 회전은 따르지만 크기는 기존 크기 유지커스텀() - (위치, 회전, 크기규칙, 물리적으로 부모와 합치기(bool) )커스텀 종류 - EAttachmentRuleKeepRelative상대 좌표 유지 (기존 위치 유지)KeepWorld월드 좌표 유지 (현재 위치.. 2025. 2. 21.
디자인 패턴 이란?- 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 일반적인 솔루션 사용 이유문제 해결의 일관성 - 검증된 솔루션을 제공, 반복적인 문제를 일관되게 해결코드 가독성 및 유지보수성 - 디자인 패턴 적용시 코드 구조가 명확해 짐재사용성 - 여러 프로젝트에서 재사용 가능확장성 - 소프트웨어 설계가 변화에 유연하게 대응공통 언어 - 의사소통을 더 명확하고 간결하게 만듬한계복잡성 증가 - 잘못하면 불필요한 복잡성을 초래할 수 있음학습 곡선 - 이해하고 활용하려면 경험과 학습이 필요과잉 설계 - 간단한 문제에 과도하게 적용하면 비효율언어 특화 기능 대체 - 일부 언어에서는 디자인 패턴이 필요없거나 자동화됨유형 3가지행동객체 간의 상호작용을 최적화옵저버, 상태, 전략생성객체 생성 방식을 효율적으로 관리싱.. 2025. 2. 20.