Полезное

Мы Вконтакте

Discord канал

#
Пред.
12
Аватара пользователя
Пользователь
Сообщения: 589
Создал новый Blueprint Function Library class.

В .cpp добавил:

Код:
#include <XInput.h>

#pragma region Method Calls
// Calls the method XInputVibration that was imported from the DLL.
void UALLInput::XInputVibration(int32 DeviceIndex, float leftMotor, float rightMotor)
{
   // Create a new Vibraton
   XINPUT_VIBRATION Vibration;

   int leftVib = (int)(leftMotor*65535.0f);
   int rightVib = (int)(rightMotor*65535.0f);

   // Set the Vibration Values
   Vibration.wLeftMotorSpeed = leftVib;
   Vibration.wRightMotorSpeed = rightVib;
   // Vibrate the controller
   XInputSetState(DeviceIndex, &Vibration);
}

#pragma endregion Method Calls


В .h Добавил:

Код:
UFUNCTION(BlueprintCallable, Category = "XInput Library")
      static void XInputVibration(int32 DeviceIndex, float leftMotor, float rightMotor);


Жму на компиляцию. Ошибок в строчках кода не находит.
Но компиляция не проходит. Пишет что то типа модуль не собирается.

Почему так? Не подскажете куда копать? Как правильно подключать дополнительные .h?
Аватара пользователя
Пользователь
Сообщения: 2319
посмотри как анриаловские BlueprintFunctionLibrary сделаны и сравни что у тебя.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 589
Т.е их нельзя никак подключать?

Меня в некоторых случаях спасало копирование в свой код элементов из подключаемых файлов.
Жмешь правой кнопкой мыши, выбираешь "Перейти к определению" и копируешь оттуда в свой код определение.
Сам файл .h оставляешь не подключенным. И всё работало.
Аватара пользователя
Пользователь
Сообщения: 44
Непонятно что за XInput.h хедер сторонней библиотеки? Как выглядит хедер UALLInput?
Аватара пользователя
Пользователь
Сообщения: 2319
в .cs подключаешь модуль которому принадлежит нужный хедер
в свой файл в инклюдах добаляешь нужный хедер
все.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 589
ue4help писал(а):
Непонятно что за XInput.h хедер сторонней библиотеки? Как выглядит хедер UALLInput?


XInput.h хедер из библиотеки Microsoft DirectX SDK (June 2010).

UALLInput выглядит как стандартный Blueprint Function Library, который автоматом создается. ALLInput - это название класса и ничего больше.

Этот код для примера я привел. Мой вопрос то в другом.

Snake писал(а):
в .cs подключаешь модуль которому принадлежит нужный хедер
в свой файл в инклюдах добаляешь нужный хедер
все.


Я просто не хочу использовать в своем коде сторонние DLL. Просто написать код, который содержит DLL непосредственно в VS и прикрутить к Блюпринтам.
Аватара пользователя
Пользователь
Сообщения: 589
Snake, в моем примере XInput.h находится в папке Engine/Source/ThirdParty/Windows/DirectX/include. И к какому модулю она относится? Что я должен написать в .cs ?

Я так и не понял.
Аватара пользователя
Пользователь
Сообщения: 44
Насколько я понял XInput.h это библиотека DirectX и работает только в системе Windows. Что указывает ошибка компиляции UBT, так как движок рассчитан на различные платформы, то UTB просто не пропустит файл, потому что в файле идет проверка на принадлежность к платформе.
Вариант использовать модуль ApplicationCore и интерфейс XInputInterface.h, в котором включен файл XInput.h. Или подключать библиотеку DirectX как стороннюю.
Аватара пользователя
Пользователь
Сообщения: 589
dinput.h - это библиотека DirectX. Лежит в той же папке что и XInput.h. Но компилятор её пропускает если подключить. Не выдает ошибку.
Аватара пользователя
Пользователь
Сообщения: 44
Исходники посмотрел как Epic Games добавляли.

Код:
#pragma pack (push,8)
#include "Windows/AllowWindowsPlatformTypes.h"
#include <XInput.h>
#include "Windows/HideWindowsPlatformTypes.h"
#pragma pack (pop)


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница