Skip to content

code/olga-naz/test-butterfly - #97

Open
Kamba1a wants to merge 23 commits into
FitiLsan:example/spherefrom
Kamba1a:code/olga-naz/test-butterfly
Open

code/olga-naz/test-butterfly#97
Kamba1a wants to merge 23 commits into
FitiLsan:example/spherefrom
Kamba1a:code/olga-naz/test-butterfly

Conversation

@Kamba1a

@Kamba1a Kamba1a commented Oct 28, 2020

Copy link
Copy Markdown
Contributor

Тестовое задание: сделать свой вариант системы бабочки.

Видела ветку example/rabbit-ai, но начала делать бабочку чуть раньше в ветке example/sphere, и не стала переносить.
Использовала сцену ITickTest. Префаб "Butterfly" для ButterflyData расположен в папке Resources.

Бабочка летает, кружит, иногда садится на плато (может улететь за пределы, т.к. зона полета не ограничена). Поведение далеко не идеальное, но за недельный срок это пока максимум, что я смогла выжать - пришлось столько копаться в векторной математике, что я просто представить не могла :)) Но было интересно, хотя и не сказать что легко.

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

Замечания приветствую - всегда рада узнать, как можно было бы сделать что-то по-другому легче и проще, а как делать вообще не надо))

@Kamba1a Kamba1a changed the title Test butterfly code/olga-naz/test-butterfly Oct 28, 2020

@MSnihurska MSnihurska left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Очень классная бабочка у вас получилась! Исправьте пару ошибок в написании, перенесите, что возможно, в константы и будет вообще супер.

Советую обратить внимание на базовые классы EnemyData и EnemyModel, а также EnemyController, который заменяет уникальные контроллеры сущностей. В вашей ветке их еще не было, так что вам не обязательно переносить свои скрипты. Достаточно просто понимания.

Comment thread Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs Outdated
Comment on lines +174 to +187
static class VectorExtension
{
/// <summary>Convert Vector3 into Vector2 for XZ-plane</summary>
public static Vector2 ToVectorXZ(this Vector3 vector3) => new Vector2(vector3.x, vector3.z);

/// <summary>Rotates the vector2 90 degrees</summary>
public static Vector2 TurnToRight(this Vector2 vector2) => new Vector2(vector2.y, -vector2.x);

/// <summary>Returns the direction vector2 to the specified point</summary>
public static Vector2 DirectionTo(this Vector2 vector2, Vector2 target) => vector2 - target;

/// <summary>Returns the direction vector3 to the specified point</summary>
public static Vector3 DirectionTo(this Vector3 vector3, Vector3 target) => vector3 - target;
} No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрать класс, функции вынести в отдельный регион внутри Methods

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это методы расширения, которые могут находится только в статическом классе, поэтому просто перенести их не получится( Я могу переписать их как обычные методы, чтобы разместить в регионе внутри Methods, но тогда придется немного переписать и те места, где я их использовала. В общем, я так поняла, что лучше все делать через обычные методы?))

@MSnihurska

Copy link
Copy Markdown
Contributor

Отлично! Задание считаю выполненым, карточку в трелло перенесла.
По поводу методов расширений: в будущем, их писать отдельным файлом и забрасывать в папку Scripts/Extensions (создавать, если нет).

@Kamba1a

Kamba1a commented Oct 29, 2020

Copy link
Copy Markdown
Contributor Author

Поняла, спасибо! =)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants