using Assets.Scenes.Ride.Scripts.Model; using Assets.Scripts; using DG.Tweening; using System; using UnityEngine; using UnityEngine.UI; namespace Assets.Scenes.Ride.Scripts { public class OtherPlayerController : AbstractPlayer { public string[] record; public ReviewItemScript _reviewItemScript; public PlayerController _playerController; RawImage head; GameObject headPanel; public int tickOffset = 0; protected override void Init() { base.Init(); _playerController = FindObjectOfType(); tickOffset = mainController.preticks; } protected override void Compute() { if (tickOffset + ticks < record.Length) { var data = TargetData.Read(record[tickOffset + ticks - 1]); distance = data._Speed/3600; totalDistance = data._Distance; } else { var data = TargetData.Read(record[record.Length - 1]); distance = data._Speed / 3600; totalDistance = data._Distance; } currentlatlong = mainController.Along(totalDistance);//下一个坐标 var diff = Math.Round(totalDistance - _playerController.TotalDistance, 3) * 1000; _reviewItemScript.SetDistance(diff); } public void SetController(ReviewItemScript reviewItemScript) { _reviewItemScript = reviewItemScript; } public void MoveHead(Transform parent,Vector3 nextPosition) { if (headPanel == null) { headPanel = Instantiate(Resources.Load("UI/Prefab/Ride/HeadPanel")); headPanel.transform.parent = parent; headPanel.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f); } if (head == null) { head = headPanel.GetComponentInChildren(); head.texture = _reviewItemScript.GetHead(); } headPanel.transform.DOMove(new Vector3(nextPosition.x, nextPosition.y, 0), 1); } } }