Полезное

Мы Вконтакте

Discord канал

#
Пред.
Модератор: Di-Crash
Аватара пользователя
Пользователь
Сообщения: 1
я лишь начинаю обучаться, вопрос наверное слишком легкий, но всё же :

в каком то моменте случайно сохранил базовый предмет cube с какими то функциями, из-за этого на следующих уроках при cast cube выводит ошибку, что cube уже занят. Помогите с решением данной проблемы
Аватара пользователя
Пользователь
Сообщения: 295
Не на все объекты легко кастануть, те объекты которых может быть несколько(например куб), прежде чем сделать на них каст, они должны быть записанны в переменную.

Подробно здесь - https://www.youtube.com/watch?v=1aPvWbN ... HeuxId4Xec
Аватара пользователя
Пользователь
Сообщения: 157
Цитата:
Не на все объекты легко кастануть,

АААААААААААА!!!!!!!!!!! как же вы можете программировать не понимая основ ООП? рррррррррр...
что такое - кастануть? как можно на что-то кастануть?
Cast - приведение типов. То есть привести один класс - родственник к предку, нельзя кастануть предка на наследника.
Есть поняние - класс, по-сути это чертеж будущего инстанса.
Есть - экземпляр класса, это инстанс данного класса. В ContentBrawser сидят как раз чертежи - классы. На локации - инстансы. Это объект созданный по чертежу класса.
Можно класс экземпляр привести к нужному классу, чтобы получить доступ к методам и свойствам класса.

Цитата:
сохранил базовый предмет cube с какими то функциями, из-за этого на следующих уроках при cast cube выводит ошибку, что cube уже занят

Ты создал класс cube. Создал его методы. И потом хочешь создать одноименный класс что невозможно, разумеется.
Решение - удали класс Cube и создай новый с тем же именем...

ПыСы. ох уж мне эти кастЁры, млин....
_________________
Если вас обосрали, потерпите... Скоро оно само отсохнет и отпадет...
Skype: ogasoda
Мой канал на YouTube
Аватара пользователя
Пользователь
Сообщения: 157
https://docs.unrealengine.com/latest/IN ... index.html
_________________
Если вас обосрали, потерпите... Скоро оно само отсохнет и отпадет...
Skype: ogasoda
Мой канал на YouTube
Аватара пользователя
Администратор
Сообщения: 1581
Роман Потапов, новичкам это все слишком сложно понять. Большинство не понимает что такое наследование, поэтому им так легче, хоть это и не точно.

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

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

По поводу самого вопроса, то я бы советовал создать чистый проект и там протестировать все, что вам нужно. Потому что из-за нехватки опыта и знаний, найти и грамотно исправить ошибку может быть сложнее, чем написать все это заново.
_________________
Просьба, не писать вопросы по движку в ЛС. Я не единственный, кто знает UE4, и поэтому пишите на форум или в группу.
Аватара пользователя
Пользователь
Сообщения: 1297
Роман Потапов писал(а):
Цитата:
Не на все объекты легко кастануть,

АААААААААААА!!!!!!!!!!! как же вы можете программировать не понимая основ ООП? рррррррррр...
что такое - кастануть? как можно на что-то кастануть?
Cast - приведение типов. То есть привести один класс - родственник к предку, нельзя кастануть предка на наследника.
Есть поняние - класс, по-сути это чертеж будущего инстанса.
Есть - экземпляр класса, это инстанс данного класса. В ContentBrawser сидят как раз чертежи - классы. На локации - инстансы. Это объект созданный по чертежу класса.
Можно класс экземпляр привести к нужному классу, чтобы получить доступ к методам и свойствам класса.

Цитата:
сохранил базовый предмет cube с какими то функциями, из-за этого на следующих уроках при cast cube выводит ошибку, что cube уже занят

Ты создал класс cube. Создал его методы. И потом хочешь создать одноименный класс что невозможно, разумеется.
Решение - удали класс Cube и создай новый с тем же именем...

ПыСы. ох уж мне эти кастЁры, млин....


Тебе бы научиться нормально общаться с людьми, без своих детских понтов, о том что ты на соплю знаешь больше. Этот форум как бе для обучения и есть, и если человек знает меньше тебя, или выражается не понимая основ ООП (это не его основная профессия) не обязательно тыкать в грязь с непонятными криками "ААААААА". Будь проще.
Согласись тебе до опыта эпиков учитывая твой проект, ну мягко сказать никогда не дотянуться, при всем твоем упорстве. Но они заметь не позволяют себе на тебе подобных выблевывать детские понты, тем самым оскорбляя тебе подобных, а стараются помогать, а если нет, то как минимум молчат.
_________________
Мои работы.
Youtube Channel
Форум по геймдеву.
Аватара пользователя
Пользователь
Сообщения: 157
Простой пример.
Есть класс - class<автомобиль>: public AActor
у него есть свойства:
1. двигатель
2. Количество колес
3. Тормозная система

есть методы
1. Торможение()
2. Поворот()
3. УстановкаСтояночногоТормоза()

Есть класс- наследник: class<Грузовик>: public автомобиль

у него есть все те же методы и классы, что и предка - <автомобиль>

но есть и еще дополнительтные свойства
1. Объем кузова

и мтод

2. Разгрузка()

Но это просто описание двух классов, это еще не инстансы (не экземпляры класса).

На карте у нас стоит пара грузовиков и легковушка и куб. Но мы ищем легковушку с двигатель = 'V8'

перебираем по классу Actor, так как мы берем GetAllClassesOf(<Actor>);

тогда мы преобразовываем к типу class<автомобиль>, то есть пишем Cast<автомобиль>(GetAllClassesOf(<Actor>)[i]) - перебираем все элементы.

результатом такого приведения является NULL, если это Actor или Cub. Или же Грузовик или автомобиль, разумеется. Так как Грузовик - тоже автомобиль.
И когда мы получаем не NULL преобразование, то можем проверить свойство двигатель .
Так по двигателю мы получим ссылку на конкретный экземпляр класса автомобиль. И уже потом поставим его на стояночный тормоз,
то есть вызовем метод - УстановкаСтояночногоТормоза()
_________________
Если вас обосрали, потерпите... Скоро оно само отсохнет и отпадет...
Skype: ogasoda
Мой канал на YouTube
Аватара пользователя
Пользователь
Сообщения: 157
Flakky писал(а):
новичкам это все слишком сложно понять. Большинство не понимает что такое наследование, поэтому им так легче, хоть это и не точно.

Умом я это понимаю, но когда он (моСК) взрывается от коверканья смыслов, то вырывается вулкан-пукан )))
За что искреннее прошу простить мой детско-понт.
Приношу искренние извинения всем пострадавшим от моих разлетевшихся какашек заинтересованным сторонам и их заступникам )))
_________________
Если вас обосрали, потерпите... Скоро оно само отсохнет и отпадет...
Skype: ogasoda
Мой канал на YouTube
Последний раз редактировалось Роман Потапов 06 окт 2015, 12:23, всего редактировалось 1 раз.
Аватара пользователя
Пользователь
Сообщения: 157
Deus Ex Machina писал(а):
Будь проще.

Есть такая мудрая мудрость народная.
"Простота - хуже вороства". От нее потом пошли байки про простАту и все такое ))) Ну, просто люди были малограмные, и все дела...

Deus Ex Machina писал(а):
"Согласись тебе до опыта эпиков учитывая твой проект, ну мягко сказать никогда не дотянуться, при всем твоем упорстве.

Тут ты совершенно прав, бо тут банальнвая логика работает - создатель всегда впереди пользователя просто потому, что он начал на 10 лет раньше. Впрочем мне не нужен ВЕСЬ опыт Эпиков. К чему столько ненужного хлама? )) Я согласен с Холмсом, про его отношение к знаниям о солнце. Гораздо практичнее получать свой собственный опыт и им потом делиться, если на то будет воля потенциальных учеников. Ведь если ты впитал даже опыт всех предыдущих поколений, то от тебя в том опыте ничего нет) Хотя тут может я сложно изъясняюсь, и тебе трудно понять (особенно сквозь заслоняющую пелену ненависти)))) сори) )))
Впрочем, (как я сказал уже выше) причина твоего пукана вовсе не в том, что я там что-то такое сказал. Ну не нравлюсь я тебе, ну что сказать? )))
Ты мне тоже, пративнАй ))) Уходи и дверь закрой, у меня сейчас запой )))
_________________
Если вас обосрали, потерпите... Скоро оно само отсохнет и отпадет...
Skype: ogasoda
Мой канал на YouTube
Аватара пользователя
Пользователь
Сообщения: 295
Flakky писал(а):
Я вообще подумываю удалить урок про касты, потому что все думают, что их нужно использовать для того, что бы обратиться к другому объекту. На самом деле это не так, но это моя ошибка, что я изначально не владел такой информацией, но записал урок.

да отличный урок, все понятно, "кастануть" = "получить доступ к дочерним переменным объекта", и иногда это просто необходимо(мне очень часто). 99% кастов приходится на MyCharacter.


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

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