Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 13
Если ТАК, то это не работает.

у меня есть предположение почему инклуд Аctor.h не работает, но оставлю его при себе
Аватара пользователя
Пользователь
Сообщения: 3
Цитата:
Хотя повторюсь, я слишком глуп в этом вопросе.
Не исключаю что я несу полнейшую ахинею

Даю намек.
1.Узнай в каком классе появляется метод GetOwner() и BeginPlay()
2.Наследником чего является UActorComponent и AActor, и могут ли они хоть как-то пересекаться?
3. Может ли быть перехват Tick() у наследника UActorComponent?
4. Что означают префикс A и U перед названием классов?

Если после этого ничего не поймешь, то я тебя уверяю, тебе еще рано заниматься плюсами, потому что ты не понимаешь элементарных вещей.
И не один ты, похоже.
Аватара пользователя
Пользователь
Сообщения: 13
Цитата:
Даю намек.
1.Узнай в каком классе появляется метод GetOwner() и BeginPlay()
2.Наследником чего является UActorComponent и AActor, и могут ли они хоть как-то пересекаться?
3. Может ли быть перехват Tick() у наследника UActorComponent?
4. Что означают префикс A и U перед названием классов?

1.
GetOwner() и BeginPlay() в AActor`е

2.
UActorComponent - UObject и IInterface_AssetUserData
AActor - UObject

3.
Вот тут я в замешательстве. Перехватить Tick() у наследника UActorComponent.
Наследник UActorComponent`а - это мой класс. Но что значит перехватить Tick()?

4.
Префикс A - классы наследованные от AActor
Префикс U - классы наследованные от UObject


Предполагаю что мой класс унаследован от Uobject`a, а не от AActor и из-за этого я не могу обращятся к GetOwner() и BeginPlay()
AActor* UActorComponent::GetOwner() const
Разве это не значит что с помощью GetOwner() я обращаюсь к AActor`ру?


Я знаю то, что я тупой и не понимаю элементарных вещей. Но хотелось бы узнать. Собственно почему я сюда и пришёл.
Аватара пользователя
Пользователь
Сообщения: 1341
В твоем cpp файле перед инклудом его же заголовка попробуй поставить #include "MyProject9.h" (имя зависит от имени твоего проекта)
_________________
прикрепленные картинки с radikal не смотрю.
Аватара пользователя
Пользователь
Сообщения: 3
Цитата:
Предполагаю что мой класс унаследован от Uobject`a, а не от AActor и из-за этого я не могу обращятся к GetOwner() и BeginPlay()
AActor* UActorComponent::GetOwner() const
Разве это не значит что с помощью GetOwner() я обращаюсь к AActor`ру?

Ты наследуешься от UActorComponent класса, в нем нет ни GetOwner() ни BeginPlay(), но ты пытаешься их использовать.
С помощью GetOwner() ты получишь AActor, да, только вот одна заковыка - этого метода нет у наследников UActorComponent.
Аватара пользователя
Пользователь
Сообщения: 3
Цитата:
Я знаю то, что я тупой и не понимаю элементарных вещей. Но хотелось бы узнать. Собственно почему я сюда и пришёл.

Ты не тупой, ты совсем не шаришь в ООП и только-то. Тебе стоит сначала освоиться в объектном программировании. Узнать что такое наследование, класс, ссылка и объект. А потом погружаться уже конкретно в движок.
Ну, или поковыряйся в блупринте, как это любят делать новички. Некоторые даже игры пытаются на одних блупринтах делать.
Сам решай, что для тебя важнее.
Аватара пользователя
Пользователь
Сообщения: 1341
абсолютно рабочий код:

// Fill out your copyright notice in the Description page of Project Settings.

#include "MyProject9.h"
#include "ffff.h"


// Sets default values for this component's properties
Uffff::Uffff()
{
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
// off to improve performance if you don't need them.
PrimaryComponentTick.bCanEverTick = true;

// ...
}


// Called when the game starts
void Uffff::BeginPlay()
{
Super::BeginPlay();

FString dd = GetOwner()->GetName();
UE_LOG(LogTemp, Error, TEXT("testtt %s"), *dd);
// ...

}


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

// ...
}


[2017.07.29-10.13.44:215][872]LogTemp:Error: testtt NewBlueprint_14
[2017.07.29-10.13.44:215][872]LogTemp:Error: testtt NewBlueprint2_127
_________________
прикрепленные картинки с radikal не смотрю.
Аватара пользователя
Пользователь
Сообщения: 13
Цитата:
С помощью GetOwner() ты получишь AActor, да, только вот одна заковыка - этого метода нет у наследников UActorComponent.


Да. Я это понял, но меня смущяет то, что это работает

Цитата:
ты совсем не шаришь в ООП и только-то. Тебе стоит сначала освоиться в объектном программировании.

Буду продолжать осваиваться посредством тыканья в Unreal

Вообщем, спасибо тебе за наставление
Аватара пользователя
Пользователь
Сообщения: 13
Noob256 писал(а):
абсолютно рабочий код:

Скинь хедер
Аватара пользователя
Пользователь
Сообщения: 154
В UActorComponent вообще-то присутствуют методы BeginPlay() и GetOwner()

https://docs.unrealengine.com/latest/IN ... index.html


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

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