Добавление сценария C ++ к объектам в Unreal таким же образом, как Unity? - PullRequest
0 голосов
/ 24 октября 2018

Я создал объект SkeletalMesh на сцене, и в Редакторе я добавил компонент C ++, но как только я прикрепил его к SkeletalMesh, я не могу узнать, где он находится на панели Unreal.Я знаю, что это работает, потому что после того, как я прикрепил скрипт к объекту, он печатает некоторые простые выходные данные отладки.

Основная причина, по которой я хочу знать, где найти мой компонент скрипта, заключается в том, что я хочу иметь возможность ссылаться на SkeletalMeshскрипт присоединяется через C ++ так же, как вы можете в Unity с C #.

Есть ли способ, которым я могу ссылаться на объект, к которому присоединен мой скрипт C ++, и получать доступ к значениям SkeletalMesh через C ++?

Мой код сейчас является просто оболочкой, но здесь я прокомментировал места, где я хочу создать ссылку на SkeletalMesh, и где я хочу ее анимировать:

#include "Glove.h"


// Sets default values for this component's properties
UGlove::UGlove()
{
    PrimaryComponentTick.bCanEverTick = true;
}


// Called when the game starts
void UGlove::BeginPlay()
{
    Super::BeginPlay();
    // GET SKELETALMESH VALUE HERE SOMEHOW
}


// Called every frame
void UGlove::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
    Super::TickComponent(DeltaTime, TickType, ThisTickFunction);

    // ANIMATE SKELETALMESH HERE SOMEHOW
}

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Чтобы получить доступ к вашей переменной из c ++ внутри чертежа, у вас есть два способа

UFUNCTION(BlueprintCallable) void SetStaticMesh(your input variable type); Затем вы вызываете эту функцию в своем основном проекте, чтобы назначить статическую сетку или skeltaMesh, или любой другой тип, который вы хотите.

Другим способом, вы можете поставить UPROPERTY (BlueprintReadWrite) перед объявлением вашей переменной, и тогда вы сможете установить его прямо в blueprint.

Это должно быть в другом потоке, но я держу ответздесь и сейчас.

Создание переменных в C ++ для использования в BP

0 голосов
/ 24 октября 2018

Чтобы сослаться на SkeltaMesh в вашем сценарии, нет способа сделать это как единое целое, когда вы присоединяете сценарий, однако есть способ обойти.

  1. Выберите свой SkeltaMesh на сцене
  2. Перейдите на панель сведений и добавьте свой компонент C ++.
  3. Проверьте панель сведений, чтобы узнать, где находится ваш сценарий в дереве и кто является его родительским элементом, если Scriptalmesh напрямую является его родителем, это будет слишкомпросто, все, что вам нужно, чтобы получить родительский компонент или актер и привести его к нему, затем возвращаемое значение - это то, что вы ищете, если приведение прошло успешно
  4. в этом примере, который я сделал для статической сетки.Event begin play assigning the skeltamesh

Но вы должны сделать вашу переменную в скрипте общедоступной и редактируемой внутри чертежа, чтобы иметь возможность устанавливать их во время выполнения.

Iбыла та же проблема, но была только с планом.

...