Platformer example started

This commit is contained in:
ThomasCharester committed 2026-02-22 13:59:04 +03:00
1 parent efcfaae647
commit 9f026b76d6
325 files changed
+23540 -270

No files matched your search

@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
using UnityEngine;
namespace Code.Example.Platformer.Entity.Enemies
{
public class Bee : Entity
{
[SerializeField] private List<Transform> partolPoints;
private bool _onPatrol;
private bool _onPatrolMoveDamnit;
private int _currentPartolPoint;
private Transform _currentTarget;
private TweenerCore<Vector3, Vector3, VectorOptions> _patrolAction;
protected override void Move()
{
if (_onPatrol && !_onPatrolMoveDamnit)
{
_onPatrolMoveDamnit = true;
_patrolAction = transform.DOMove(partolPoints[_currentPartolPoint].position, 3f);
_patrolAction.onComplete += OnControlPointReached;
}
else
{
var direction = _currentTarget.position - transform.position;
direction.Normalize();
var targetPosition = _currentTarget.position + direction * -2f;
UnityEngine.Debug.DrawLine(transform.position, targetPosition, Color.red);
transform.DOMove(_currentTarget.position, 2f).onComplete += OnControlPointReached;
}
}
private void OnControlPointReached()
{
if (++_currentPartolPoint >= partolPoints.Count) _currentPartolPoint = 0;
_onPatrolMoveDamnit = false;
}
public void GotTarget(Transform other)
{
_onPatrol = false;
_currentTarget = other;
_patrolAction?.Complete();
}
public void LostTarget()
{
_onPatrol = true;
_currentTarget = null;
}
}
}