using System; using System.Collections.Generic; using Reset.Units; using UnityEngine; public class UnitCombat : MonoBehaviour{ public List draggedUnits = new List(); private UnitMovementHandler movement; private Vector3 lastPosition; private Vector3 positionDelta; private float lastSpeed; private float speedDelta; void Awake(){ movement = GetComponent(); } void Start(){ lastPosition = transform.position; } // Update is called once per frame void Update(){ positionDelta = lastPosition.DirectionTo(transform.position); speedDelta = Vector3.Distance(lastPosition, transform.position); lastPosition = transform.position; foreach (Collider draggedUnit in draggedUnits) { UnitMovementHandler draggedUnitMovement = draggedUnit.GetComponent(); if (!draggedUnitMovement) { Debug.LogError($"No available UnitMovement on {draggedUnit.name}. Aborting drag on this unit."); continue; } draggedUnitMovement.SetNewDirection((transform.rotation* positionDelta).ToVector2(), 1f, true); draggedUnitMovement.SetNewSpeed(speedDelta, 1f, true); draggedUnitMovement.SetNewRotation(Quaternion.LookRotation(transform.position.DirectionTo(draggedUnit.transform.position)), 1f, true); } } }