伴侣骑行
This commit is contained in:
1 parent
34cde86a28
commit
7744eec847
42 files changed
+18737
-13497
No files matched your search
@@ -0,0 +1,127 @@
|
||||
using Assets.Scenes.Ride.Scripts.Model;
|
||||
using Assets.Scripts;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
public class NearByFactory : MonoBehaviour
|
||||
{
|
||||
PlayerController playerController;
|
||||
private GameObject nearByItem;
|
||||
private GameObject nearByMajorItem;
|
||||
private GameObject scroll;
|
||||
GameObject body;
|
||||
|
||||
private int bufferSize = 0;
|
||||
private int pageIndex = 1;
|
||||
private int pageSize =7;
|
||||
|
||||
private int preNum = 0;//前面的数量
|
||||
private int offset = 8;//显示区域的数量
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
playerController = FindObjectOfType<PlayerController>();
|
||||
nearByItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyItem");
|
||||
nearByMajorItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyMajorItem");
|
||||
scroll = transform.parent.parent.gameObject;
|
||||
if (scroll != null)
|
||||
{
|
||||
UIManager.AddEvent(scroll, UnityEngine.EventSystems.EventTriggerType.EndDrag, OnEndDrag);
|
||||
}
|
||||
}
|
||||
float t =1f;
|
||||
private void Update()
|
||||
{
|
||||
t -= Time.deltaTime;
|
||||
while (t < 0)
|
||||
{
|
||||
Utils.DestroyChildren(transform);
|
||||
var nearList = MapUDPService.GetNearRiderData(pageIndex, pageSize, new double[] { playerController.Nextlatlong.x, playerController.Nextlatlong.y });
|
||||
|
||||
for (int i = 0; i < nearList.Count(); i++)
|
||||
{
|
||||
Create(nearList[i]);
|
||||
}
|
||||
t = 1;
|
||||
}
|
||||
}
|
||||
private void OnEndDrag(BaseEventData arg0)
|
||||
{
|
||||
var scrollrect = scroll.GetComponent<ScrollRect>();
|
||||
if (scrollrect.verticalNormalizedPosition <= 0)
|
||||
{
|
||||
Debug.Log(scrollrect.verticalNormalizedPosition);
|
||||
pageIndex++;
|
||||
//RefreshList();
|
||||
|
||||
}
|
||||
if (scrollrect.verticalNormalizedPosition >= 1)
|
||||
{
|
||||
pageIndex--;
|
||||
//RefreshList();
|
||||
}
|
||||
}
|
||||
|
||||
private void RefreshList()
|
||||
{
|
||||
var nearList = MapUDPService.GetNearRiderData(pageIndex, pageSize, new double[] { playerController.Nextlatlong.x, playerController.Nextlatlong.y });
|
||||
|
||||
for (int i = 0; i < nearList.Count(); i++)
|
||||
{
|
||||
if (bufferSize < pageSize)
|
||||
{
|
||||
Create(nearList[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateItem(nearList[i],i);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void Create(NearRiderModel item)
|
||||
{
|
||||
//创建
|
||||
GameObject prefabItem = item.IsSelf ? nearByMajorItem : nearByItem;
|
||||
GameObject newObj = (GameObject)Instantiate(prefabItem, transform);
|
||||
var nearByItemscript = newObj.GetComponent<NearByItemScript>();
|
||||
nearByItemscript.setUserId(item.Id);
|
||||
nearByItemscript.setName(item.Name);
|
||||
nearByItemscript.setRatio(item.KGWeight+"W/KG");
|
||||
nearByItemscript.setSpeed(item.Speed.ToString() + "KM/H");
|
||||
nearByItemscript.setHead(item.Headimage);
|
||||
nearByItemscript.setCountry(item.CountryImg);
|
||||
nearByItemscript.setDistance(item.Near.ToString() + "KM");
|
||||
bufferSize++;
|
||||
}
|
||||
|
||||
private void UpdateItem(NearRiderModel item,int index)
|
||||
{
|
||||
for (int i = 0; i < transform.childCount; i++)
|
||||
{
|
||||
var child = transform.GetChild(i);
|
||||
if (child != null)
|
||||
{
|
||||
NearByItemScript nearByItemscript = child.GetComponent<NearByItemScript>();
|
||||
if (nearByItemscript.UserId == item.Id)
|
||||
{
|
||||
nearByItemscript.setName(item.Name);
|
||||
nearByItemscript.setRatio(item.KGWeight + "W/KG");
|
||||
nearByItemscript.setSpeed(item.Speed.ToString() + "KM/H");
|
||||
//nearByItemscript.setHead(item.Headimage);
|
||||
//nearByItemscript.setCountry(item.CountryImg);
|
||||
nearByItemscript.setDistance(item.Near.ToString() + "KM");
|
||||
if (index != i)//重排序
|
||||
{
|
||||
child.SetSiblingIndex(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user