52 lines
1.4 KiB
C#
Raw Normal View History

2024-08-17 14:27:18 +08:00
using AppGame;
using DG.Tweening;
using Game.JNGFrame.Logic.Entity;
using Game.JNGState.Logic.Data;
using JNGame.Math;
using JNGame.Sync.System;
using JNGame.Sync.View;
using Service;
using UnityEngine;
namespace Game.JNGFrame.View.Entity
{
2024-09-22 03:27:16 +08:00
public class VDNodes : VDEntityBasis<EDNodeData>
2024-08-17 14:27:18 +08:00
{
public GameObject VWorld => App.Resource.VWorld;
2024-08-31 15:35:12 +08:00
public GameObject Player => App.Resource.Player;
2024-08-17 14:27:18 +08:00
public VDNodes(SViewSystem root) : base(root)
{
2024-09-22 03:27:16 +08:00
Register((int)GDataValueCode.Position, OnUpdatePosition);
2024-08-17 14:27:18 +08:00
}
2024-09-22 03:27:16 +08:00
/// <summary>
/// 更新位置
/// </summary>
private void OnUpdatePosition((GameObject View, EDNodeData Data) tuple)
2024-08-17 14:27:18 +08:00
{
2024-09-22 03:27:16 +08:00
var (view, data) = tuple;
2024-08-17 14:27:18 +08:00
if (data.Value.Position != null)
{
view.transform.DOMove(data.Value.Position.ToVector3(), 0.5f);
}
}
public override GameObject NewView(EDNodeData data)
{
2024-09-22 03:27:16 +08:00
var view = Object.Instantiate(Player, VWorld.transform);
view.name = $"Node_{data.Id}";
return view;
2024-08-17 14:27:18 +08:00
}
public override EDNodeData[] GetData()
{
return GetService<EDNodeDataSystem>().Datas;
}
public override void ViewRemove(GameObject view)
{
2024-09-13 04:06:25 +08:00
view.transform.DOKill();
2024-08-17 14:27:18 +08:00
Object.Destroy(view);
}
}
}