>

배우에게 총알을 쏘고 싶어요

탄알을 발사하려면 우주에 위치가 필요하다는 것을 알고 있습니다. 액터로 모델 세트 형태로되어 있습니다. 이제 액터와 동일한 시작 좌표로 새 객체 (이 경우 글 머리 기호)를 생성하고 액터가 향하는 방향으로 이동 방향을 설정해야합니다.

(총을 상상하면 총알 끝의 좌표에 총알이 생성되고 총알이 총이 향한 방향으로 앞으로 움직입니다)

총에 총알을 생성하는 방법이나 총알의 속도를 설정하는 방법을 알 수 없습니다. 언리얼에서 어떻게하면 되나요?


  • 답변 # 1

    새로운 액터를 만들려면 SpawnActor 를 사용하면됩니다. . UWorld 회원입니다 따라서 그 중 하나가 필요합니다. 와이즈 비즈  위치와 회전을 취합니다.

    SpawnActor 라는 캐릭터 액터 인스턴스 제공  (총을 발사하는 사람) 및 사용자 지정 총알 배우 Character , 당신은 할 수 있습니다 :

    ABullet
    
    

    이제 UWorld* World = characterActor->GetWorld(); ABullet* Bullet = World->SpawnActor<ABullet>( Character->GetActorLocation(), Character->GetActorRotation() ); 가 있습니다  당신은 함께 일할 수 있습니다. 언리얼의 액터에는 속도 속성이 내재적으로 없습니다 (있는 경우). 총알의 속도를 처리하려면 Bullet 를 제공하십시오.  속도 속성을 지정하고 생성 후 설정합니다 ( ABullet ) 그런 다음 Bullet->Velocity = FVector(...) 에서 배우의 위치를 ​​업데이트하십시오. 의 틱 기능 또는 ABullet 와 같은 움직임 구성 요소를 부착  총알 배우에게. 후자가 더 나은 옵션 일 것입니다.

    탄을 스폰하기위한 위의 코드는 캐릭터 액터의 월드 위치에 스폰됩니다. 캐릭터의 총신이 끝날 때 총알을 스폰하려는 경우가 있습니다. 이를 수행하는 간단한 방법은 글 머리 기호가 스폰 될 지점에서 캐릭터의 메시에 이름 지정된 소켓을 배치하고 액터의 스태틱 메시 컴포넌트를 가져 오며 UProjectileMovementComponent 에서 이름 지정된 소켓의 상대 위치를 얻는 것입니다.  캐릭터의 오브젝트. 총알에 주어진 초기 위치에 해당 상대 위치를 추가하여 해당 소켓의 위치에서 생성하십시오.

    <시간> UStaticMesh

  • 다음 vuforia - unity - 크기를 작게 변경하면 오브젝트가 검게됩니다