Unreal'da HP Reverb G2 Denetleyicileri
Başlarken
Önemli
HP Motion Controller eklentisine erişmek için Unreal Engine 4.26 ve OpenXR veya SteamVR gereklidir. HP Reverb G2 denetleyicileriyle çalışmanız gerekir.
HP Motion Controller Eklentisini Etkinleştirme
Etkileşim profili ve denetleyici eşlemeleri, denetleyici eşlemelerini Unreal'ın giriş sistemine göstermek için etkinleştirilmesi gereken HP Hareket Denetleyicisi eklentisindedir.
Mevcut bir OpenXR uygulamasını taşıma
OYUNDA HP Karma Gerçeklik Controller için hiçbir denetleyici bağlaması yoksa, OpenXR çalışma zamanı mevcut bağlamaları etkin denetleyiciye yeniden eşlemeyi dener. Bu durumda, oyunda Oculus Touch bağlamaları vardır ve HP Karma Gerçeklik Denetleyici bağlamaları yoktur.
Olaylar yine tetiklenir, ancak oyunun doğru menü düğmesi gibi denetleyiciye özgü bağlamaları kullanması gerekiyorsa HP Karma Gerçeklik etkileşim profili kullanılmalıdır. Farklı cihazları daha iyi desteklemek için eylem başına birden çok denetleyici bağlaması belirtilebilir.
Giriş eylemi eşlemeleri ekleme
Yeni bir eylem tanımlayın ve HP Karma Gerçeklik Denetleyicisi bölümündeki tuş basımlarından birine eşleyin.
HP Reverb G2 kontrol cihazı ayrıca eksen eşlemelerinde "Ekseni Sıkıştır" bağlamasıyla kullanılabilen analog kavramaya sahiptir. Kavrama düğmesine tam olarak basıldığında eylem eşlemeleri için kullanılması gereken ayrı bir Sıkma bağlaması vardır.
Giriş olayları ekleme
Bir Şemaya sağ tıklayın ve bu eylemlere yönelik olaylar eklemek için giriş sisteminden yeni eylem adlarını arayın. Şema burada olaylara geçerli düğmeyi ve eksen durumunu veren bir yazdırma dizesiyle yanıt veriyor.
Girişi kullanma
Oyunun giriş projesi ayarlarındaki aynı eylem ve eksen eşlemeleri C++ ile kullanılabilir.
- Dosya/Yeni C++ Sınıfı ile yeni bir C++ Sınıfı oluştur...
- Piyon oluşturma
- Projenin Visual Studio çözümünde yeni Pawn sınıfını bulun ve giriş için yapılandırın.
- İlk olarak, girişi piyona yönlendirmek için oluşturucuda AutoPossessPlayer'ı ilk oyuncu olarak ayarlayın.
AMyPawn::AMyPawn()
{
PrimaryActorTick.bCanEverTick = true;
AutoPossessPlayer = EAutoReceiveInput::Player0;
}
- Ardından SetupPlayerInputComponent içinde, eylemleri ve eksen olaylarını projenin giriş ayarlarından eylem adlarına bağlayın.
void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAction("X_Button", IE_Pressed, this, &AMyPawn::XPressed);
PlayerInputComponent->BindAction("L_GripAxis", this, &AMyPawn::LeftGripAxis);
}
- Sınıfına geri çağırma işlevlerini ekleyin:
void AMyPawn::XPressed()
{
UE_LOG(LogTemp, Log, TEXT("X Pressed"));
}
void AMyPawn::LeftGripAxis(float AxisValue)
{
if(AxisValue != 0.0f)
{
UE_LOG(LogTemp, Log, TEXT("Left Grip Axis Valule: %f"), AxisValue);
}
}
- Pawn üst bilgisini geri çağırma işlevi tanımlarıyla güncelleştirin:
private:
void XPressed();
void LeftGripAxis(float AxisValue);
- Düzenleyiciyi yeni piyonla başlatmak için Visual Studio'dan derleyin. Piyonu içerik tarayıcısından oyuna sürükleyip bırakın; artık girişe basıldığında pawn geri çağırmaları yürütür.