248 |
С т р а н и ц а
В коде С++, вам нужно инициализировать оружие. Чтобы сделать это, нам нужно
объявить и осуществить
функцию PostInitializeComponents для класса Monster. В
файле Monster.h добавьте объявление прототипа:
virtual void PostInitializeComponents() override;
PostInitializeComponents запускается после того, как завершается конструктор
объекта и все компоненты объекта инициализированы (включая конструктор
блупринта). Так это идеальное время, чтобы проверить прикреплён ли блупринт
MeleeWeapon к монстру или нет, и если прикреплён, сделать экземпляр этого
оружия. Следующий код добавляется, чтобы установить экземпляр оружия в
осуществлении Monster.cpp для AMonster::PostInitializeComponents():
void AMonster::PostInitializeComponents()
{
Super::PostInitializeComponents();
//
создаём экземпляр оружия, если блупринт был выбран
if( BPMeleeWeapon )
{
MeleeWeapon = GetWorld()->SpawnActor
( BPMeleeWeapon, FVector(),
FRotator() );
if( MeleeWeapon )
{
const USkeletalMeshSocket *socket = Mesh->GetSocketByName( "RightHandSocket" );
//
убедитесь, что используете верное
//
имя сокета!
socket->AttachActor( MeleeWeapon, Mesh );
}
}
}
Теперь монстры появляются с мечём в руке, если BPMeleeWeaon выбран для
блупринта монстра.
Монстры держат оружие
Достарыңызбен бөлісу: