powerfun-unity/Assets/Scenes/Ride/Scripts/OtherPlayerController.cs

74 lines
2.6 KiB
C#
Raw Normal View History

2021-04-15 10:13:01 +08:00
using Assets.Scenes.Ride.Scripts.Model;
2021-04-27 15:15:51 +08:00
using Assets.Scripts;
using DG.Tweening;
2021-04-15 10:13:01 +08:00
using System;
using UnityEngine;
2021-04-27 15:15:51 +08:00
using UnityEngine.UI;
namespace Assets.Scenes.Ride.Scripts
{
2021-04-01 11:01:29 +08:00
public class OtherPlayerController : AbstractPlayer
{
2021-04-15 10:13:01 +08:00
public string[] record;
public ReviewItemScript _reviewItemScript;
public PlayerController _playerController;
2021-04-27 15:15:51 +08:00
RawImage head;
2021-04-28 15:37:18 +08:00
GameObject headPanel;
public int tickOffset = 0;
Image arrowImage;
GameObject reviewInfoPanel;
Transform uiObject;
2021-04-01 11:01:29 +08:00
protected override void Init()
{
base.Init();
_playerController = FindObjectOfType<PlayerController>();
tickOffset = mainController.preticks;
//创建UI
uiObject = transform.parent.Find("SingleUI/Panel/ArrowList");
arrowImage = Instantiate(Resources.Load<Image>("UI/Prefab/Ride/ReviewArrow"), uiObject);
2021-04-01 11:01:29 +08:00
}
protected override void Compute()
{
if (tickOffset + ticks < record.Length)
2021-04-15 10:13:01 +08:00
{
var data = TargetData.Read(record[tickOffset + ticks - 1]);
2021-04-15 10:13:01 +08:00
distance = data._Speed/3600;
totalDistance = data._Distance;
}
else
{
var data = TargetData.Read(record[record.Length - 1]);
distance = data._Speed / 3600;
totalDistance = data._Distance;
}
2021-04-27 20:28:03 +08:00
currentlatlong = mainController.Along(totalDistance);//下一个坐标
2021-04-15 10:13:01 +08:00
var diff = Math.Round(totalDistance - _playerController.TotalDistance, 3) * 1000;
_reviewItemScript.SetDistance(diff);
2021-04-01 11:01:29 +08:00
}
public void SetController(ReviewItemScript reviewItemScript)
2021-04-15 10:13:01 +08:00
{
_reviewItemScript = reviewItemScript;
}
2021-04-27 15:15:51 +08:00
public void MoveHead(Transform parent,Vector3 nextPosition)
{
2021-04-28 15:37:18 +08:00
if (headPanel == null)
{
headPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/HeadPanel"));
headPanel.transform.parent = parent;
headPanel.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
}
2021-04-27 15:15:51 +08:00
if (head == null)
{
2021-04-28 15:37:18 +08:00
head = headPanel.GetComponentInChildren<RawImage>();
2021-04-27 15:15:51 +08:00
head.texture = _reviewItemScript.GetHead();
}
2021-04-28 15:37:18 +08:00
headPanel.transform.DOMove(new Vector3(nextPosition.x, nextPosition.y, 0), 1);
2021-04-27 15:15:51 +08:00
}
protected override void AfterExcute()
{
((RectTransform)arrowImage.transform).position = Camera.main.WorldToScreenPoint(transform.position);
}
2021-04-01 11:01:29 +08:00
}
}