기술나눔

UEC Unreal 5 3인칭 슈팅 게임(2)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

UEC++ Unreal 5 3인칭 슈팅 게임(2)

파생 수류탄 무기

  • 다음에서 상속된 새 항목을 만듭니다.Weapon파생 수류탄 무기로서의 하위 클래스
    여기에 이미지 설명을 삽입하세요.
  • 할 것이다Weapon클래스Fire기능 추가virtual키워드는 수류탄 클래스를 상속하고 다시 작성할 수 있도록 가상 함수가 됩니다.
    여기에 이미지 설명을 삽입하세요.
  • 존재하다ProjectileWeapon중간 재작성Fire함수, 발사체 생성을 위한 새 템플릿 변수 생성
    여기에 이미지 설명을 삽입하세요.
  • Fire함수 재작성 논리
    여기에 이미지 설명을 삽입하세요.
  • 암호
	//生成的投射物
	UPROPERTY(EditAnywhere,BlueprintReadOnly,Category = "ProjectileWeapon")
	TSubclassOf<AActor> ProjectileClass;
//--------------------------------------------------------------------------------------------------
void AProjectileWeapon::Fire()
{
   
	AActor* MyOwner = GetOwner();
	if (MyOwner)
	{
   
		FVector EyeLocation;
		FRotator EyeRotation;
		MyOwner->GetActorEyesViewPoint(EyeLocation, EyeRotation);

		FActorSpawnParameters SpawnParams;
		//设置投射物生成参数:即使生成位置有碰撞,也要强行生成投射物,不进行碰撞检测处理
		SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
		//获取枪口位置
		FVector MuzzleLocation = SkeletalComponent->GetSocketLocation(MuzzleSocketName);
		//生成并发射投射物
		GetWorld()->SpawnActor<AActor>(ProjectileClass, MuzzleLocation, EyeRotation, SpawnParams);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

파생된 수류탄 같은 무기

  • 파생된 수류탄 클래스의 청사진을 만들고 여기에 메시 모델을 추가합니다.
    여기에 이미지 설명을 삽입하세요.
  • 그리드 모델의 슬롯 이름을 우리로 변경C++다음에 정의된 이름
    여기에 이미지 설명을 삽입하세요.
  • 만들다Actor 청사진은 총알로 사용되며 발사기 및 구형 메시가 추가됩니다. 발사기의 초기 속도와 최대 속도는 2000으로 설정되고 발사체 반동 효과가 켜집니다. 구형 메시를 사용하면 물리 시뮬레이션이 가능합니다.
    여기에 이미지 설명을 삽입하세요.
    여기에 이미지 설명을 삽입하세요.
  • 청사진에 생성 총알을 노출시키는 발사체를 생성하는 수류탄 무기 청사진을 추가했습니다.
    여기에 이미지 설명을 삽입하세요.
  • 캐릭터 블루프린트에서 인스턴스의 무기 유형을 곡사포 무기로 변경한 다음 인스턴스의 객체를 상위 클래스 무기로 변경하면 함수를 호출할 때 문제를 더 쉽게 테스트할 수 있습니다.
    여기에 이미지 설명을 삽입하세요.
  • 총알 청사진에 폭발 이벤트를 추가하고 로직을 작성하세요.
    여기에 이미지 설명을 삽입하세요.
  • 존재하다BeginPlay논리적 이벤트는 다음에서 호출됩니다.
    여기에 이미지 설명을 삽입하세요.
  • 작업 결과
    이미지 설명을 추가해주세요

스나이퍼의 줌 부스트 효과

  • 캐릭터 클래스에 4개의 새로운 변수를 만듭니다. 하나는 확대/축소 발전을 활성화하는 데 사용되고, 하나는 확대/축소 시야를 나타내는 데 사용되고, 다른 하나는 기본 시야를 얻는 데 사용되며, 다른 하나는 새 변수에 대한 선형 보간 속도를 나타냅니다. 관점.
    여기에 이미지 설명을 삽입하세요.
  • 새로운 오른쪽 클릭 작업 입력 생성
    여기에 이미지 설명을 삽입하세요.
  • 마우스 오른쪽 버튼 클릭 작업을 위한 새로운 처리 기능 생성
    여기에 이미지 설명을 삽입하세요.
  • 새로운 이동 각도와 이동 보간 속도를 할당합니다.
    여기에 이미지 설명을 삽입하세요.
  • 존재하다BeginPlay기본 시야각 범위를 가져옵니다.
    여기에 이미지 설명을 삽입하세요.
  • 바인딩 함수 논리를 마우스 오른쪽 버튼으로 클릭하고 새 관점 선형 보간 범위 논리 설정
    여기에 이미지 설명을 삽입하세요.
  • 입력 작업 바인딩
    여기에 이미지 설명을 삽입하세요.
  • 엔진에서 새 작업 입력을 생성하고 매핑에 추가합니다.
    여기에 이미지 설명을 삽입하세요.
    여기에 이미지 설명을 삽입하세요.
  • 작업을 캐릭터 청사진에 바인딩
    여기에 이미지 설명을 삽입하세요.
  • 작업 결과
    이미지 설명을 추가해주세요

콘솔 변수 생성

  • 무기 클래스에 새로운 정적 변수를 제어 콘솔 변수로 생성하여 사격 및 선 그리기 여부를 제어하고, 새로운 자동 관리 콘솔 변수 클래스를 생성합니다.
    여기에 이미지 설명을 삽입하세요.
  • FAutoConsoleVariableRef: 콘솔 변수를 자동으로 관리하기 위한 클래스
FAutoConsoleVariableRef ACVRDebugWeaponDrawLine(TEXT("COOP.DebugWeapons"), DebugWeaponDrawLine,TEXT