Помогите с проблемой. Собираю билд в Unity. В PC версии все работает правильно. В билде под Android работает как на видео. (19 сек.)
Поясню. Когда шар далеко - фокусник в цилиндре постоянно "перемещает" кристалл по вертикали в случайно выбранную точку из четырех (реализовано массивом). По сути - патрулирование местности. Когда шар приближается на определенное расстояние - кристалл устремляется к шару.
В андроидном билде "патрулирование" не работает, а движение к шару - работает.
Использую Bluestacks, USB прав у него нет, UnityRemote не подключить. Ни телефона ни планшете нет, и взять негде.
Пробовал Amdroid Studio, в нем виртуальный девайс тоже запустить не удалось.
Unity 2019.3
Видео
сам скрипт
using System.Collections.Generic;
using UnityEngine;
public class AIEnemy : MonoBehaviour
{
public Vector2 StartPos;
public Vector2 EndPos;
public float PositionY;
public float speed;
public float Min;
public float Max;
public float[] WAYpoints;
private int PositionArray;
public float DistancetoTarget;
public Transform target;
void Start()
{
target = GameObject.FindGameObjectWithTag("The_Ball").GetComponent<Transform>();
StartPos = GetComponent<Transform>().position; //Запоминаем начальную позицию
WAYpoints[0] = Max;
WAYpoints[1] = (Max / 2);
WAYpoints[2] = 0;
WAYpoints[3] = (Min / 2);
WAYpoints[4] = Min;
}
// Update is called once per frame
void Update()
{
if (Vector2.Distance(transform.position, target.position) < DistancetoTarget)
{
MoveToTarget();
}
else if (Vector2.Distance(transform.position, target.position) > DistancetoTarget)
{
RandomizeMove();
}
}
void RandomizeMove()
{
Debug.Log(PositionY);
if ((EndPos.y == transform.position.y)/* || ((EndPos.y - transform.position.y) < .01f)*/)
{
PositionArray = Random.Range(0, WAYpoints.Length);
PositionY = WAYpoints[PositionArray];
}
EndPos = new Vector2(transform.position.x, PositionY); // получаем координаты смещения
transform.position = Vector2.MoveTowards(transform.position, EndPos, speed * Time.fixedDeltaTime);
}
void MoveToTarget()
{
EndPos = new Vector2(transform.position.x, target.position.y); // получаем координаты смещения
transform.position = Vector2.MoveTowards(transform.position, EndPos, speed * Time.deltaTime);
}
}