3d翻转
This commit is contained in:
1 parent
95ab695632
commit
7780dc5ee5
7 files changed
+8969
-4047
No files matched your search
@@ -168,7 +168,11 @@ public class RowerMultiModeScript : MonoBehaviour
|
||||
currentSecond = -1;
|
||||
var res = await ConfigHelper.rowerApi.GetShadowList(rowerType);
|
||||
shadowList = res.data;
|
||||
|
||||
foreach (var t in traceList)
|
||||
{
|
||||
t.userId = 0;
|
||||
t.trace.gameObject.SetActive(false);
|
||||
}
|
||||
var _tmpList = shadowList.Select(x => new TraceData
|
||||
{
|
||||
list = x.list,
|
||||
@@ -208,9 +212,8 @@ public class RowerMultiModeScript : MonoBehaviour
|
||||
{
|
||||
var sq = DOTween.Sequence();
|
||||
var item = traceList[i];
|
||||
var t = item.trace;
|
||||
var data = list[i];
|
||||
t.gameObject.SetActive(true);
|
||||
var t = item.trace.Find("p2");
|
||||
TweenCallback callback = () =>
|
||||
{
|
||||
if (string.IsNullOrEmpty(data.Avatar))
|
||||
@@ -266,23 +269,31 @@ public class RowerMultiModeScript : MonoBehaviour
|
||||
t.transform.Find("Left/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||
}
|
||||
};
|
||||
if (item.userId != data.UserId)
|
||||
if (!item.trace.gameObject.activeInHierarchy)
|
||||
{
|
||||
var sq1 = DOTween.Sequence();
|
||||
var tmp = traceList[i].trace.DOLocalRotate(new Vector3(90, 0, 0), 0.3f);
|
||||
tmp.onComplete = callback;
|
||||
sq1.Append(tmp);
|
||||
|
||||
sq1.Append(traceList[i].trace.DOLocalRotate(new Vector3(0, 0, 0), 0.3f));
|
||||
|
||||
//var sq2 = DOTween.Sequence();
|
||||
//sq2.Append(t.GetComponent<Image>().DOFade(1, 0.05f));
|
||||
//sq2.Append(t.GetComponent<Image>().DOFade(0, 0.05f));
|
||||
//sq1.Append(sq2);
|
||||
sq.Join(sq1);
|
||||
t = item.trace.Find("p1");
|
||||
item.trace.gameObject.SetActive(true);
|
||||
callback();
|
||||
continue;
|
||||
}
|
||||
else
|
||||
//var rotatesq = item.trace.GetComponent<RowerTraceAnimated>().startAnimation(0.8f, callback);
|
||||
//if (rotatesq != null)
|
||||
//{
|
||||
// sq.Join(rotatesq);
|
||||
//}
|
||||
var isRotate = item.userId != data.UserId;
|
||||
if (isRotate)
|
||||
{
|
||||
t = item.trace.Find("p2");
|
||||
var rotatesq = item.trace.GetComponent<RowerTraceAnimated>().startAnimation(0.8f, callback);
|
||||
if (rotatesq != null)
|
||||
{
|
||||
sq.Join(rotatesq);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
t = item.trace.Find("p1");
|
||||
sq.AppendCallback(callback);
|
||||
}
|
||||
item.userId = data.UserId;
|
||||
@@ -327,14 +338,23 @@ public class RowerMultiModeScript : MonoBehaviour
|
||||
var tWidth = (diffWidth / 100f) * width;
|
||||
t.Find("Main/Boat").gameObject.SetActive(true);
|
||||
//t.Find("Main/Boat").localPosition = new Vector3(25 + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
|
||||
sq.Join(t.Find("Main/Boat").DOLocalMoveX(21.5f + tWidth, 0.9f));
|
||||
if (isRotate)
|
||||
{
|
||||
t.Find("Main/Boat").localPosition = new Vector3(21.5f + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
|
||||
}
|
||||
else
|
||||
{
|
||||
sq.Join(t.Find("Main/Boat").DOLocalMoveX(21.5f + tWidth, 0.9f));
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
t.Find("Main/Boat").localPosition = new Vector3(-21.5f, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
|
||||
t.Find("Main/Boat").gameObject.SetActive(false);
|
||||
}
|
||||
var diffTransfrom = transform.Find("Rower/Modes/Scroll/M2/Track/RankDiff"+t.name).GetComponent<Text>();
|
||||
//排名变化
|
||||
var diffTransfrom = transform.Find("Rower/Modes/Scroll/M2/Track/RankDiff"+item.trace.name).GetComponent<Text>();
|
||||
if (rankDiffDict[data.UserId].diff > 0)
|
||||
{
|
||||
diffTransfrom.text = "+" + rankDiffDict[data.UserId].diff;
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using DG.Tweening;
|
||||
//using ZenFulcrum.EmbeddedBrowser;
|
||||
|
||||
public class RowerTraceAnimated : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
Vector3? v1, v2, v3;
|
||||
void Start()
|
||||
{
|
||||
//print(v1.Value.ToString() + v2.Value.ToString() + v3.Value.ToString());
|
||||
}
|
||||
public Sequence startAnimation(float time, TweenCallback callback)
|
||||
{
|
||||
//if (sq != null && sq.IsPlaying())
|
||||
//{
|
||||
// return null;
|
||||
//}
|
||||
Transform c = transform, c1 = c.Find("p1"), c2 = c.Find("p2");
|
||||
var rect = c.GetComponent<RectTransform>();
|
||||
var offset = rect.sizeDelta.y / 2;
|
||||
var sq = DOTween.Sequence();
|
||||
sq.AppendCallback(() =>
|
||||
{
|
||||
if (!v1.HasValue) v1 = transform.localPosition;
|
||||
if (!v2.HasValue) v2 = transform.Find("p1").localPosition;
|
||||
if (!v3.HasValue) v3 = transform.Find("p2").localPosition;
|
||||
callback();
|
||||
//print(c.localPosition.ToString() + c.Find("p1").localPosition.ToString() + c.Find("p2").localPosition.ToString());
|
||||
});
|
||||
var sq1 = DOTween.Sequence();
|
||||
sq1.Join(c.DORotate(new Vector3(-90, 0, 0), time));
|
||||
sq1.Join(c.DOLocalMoveY(v1.Value.y - offset, time));
|
||||
sq1.Join(c.DOLocalMoveZ(v1.Value.z + offset, time));
|
||||
//var sq2 = DOTween.Sequence();
|
||||
//sq2.Append(c.DOLocalMoveZ(v1.Value.z + offset*0.14f, time * 0.5f));
|
||||
//sq2.Append(c.DOLocalMoveZ(v1.Value.z + offset, time * 0.5f));
|
||||
//sq1.Join(sq2);
|
||||
sq.Append(sq1);
|
||||
sq.AppendCallback(() =>
|
||||
{
|
||||
var tmp = c1;
|
||||
c1 = c2;
|
||||
c2 = tmp;
|
||||
c1.name = "p1";
|
||||
c2.name = "p2";
|
||||
c.localPosition = v1.Value;
|
||||
c1.localPosition = v2.Value;
|
||||
c2.localPosition = v3.Value;
|
||||
c.localRotation = Quaternion.Euler(Vector3.zero);
|
||||
c1.localRotation = Quaternion.Euler(Vector3.zero);
|
||||
c2.localRotation = Quaternion.Euler(new Vector3(90, 0, 0));
|
||||
});
|
||||
sq.Play();
|
||||
return sq;
|
||||
}
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
//var c = transform.Find("Container");
|
||||
//int i = 1;
|
||||
//UIManager.AddEvent(transform.Find("Button").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
// {
|
||||
// var sq = DOTween.Sequence();
|
||||
// i++;
|
||||
// sq.AppendCallback(() =>
|
||||
// {
|
||||
// c.Find("p1").SetAsLastSibling();
|
||||
// c.Find(i % 2 == 0 ? "p2" : "p3").SetAsLastSibling();
|
||||
// });
|
||||
// sq.Join(c.DORotate(new Vector3(90 * (i % 2 == 0 ? -1 : 1), 0, 0), 1));
|
||||
// sq.Join(c.DOLocalMoveY(50 * (i % 2 == 0 ? -1 : 1), 1f));
|
||||
// sq.Append(c.DOLocalMoveZ(0, 0.5f));
|
||||
// sq.Append(c.DOLocalMoveZ(50, 0.5f));
|
||||
// sq.Play();
|
||||
// });
|
||||
|
||||
|
||||
//int i = 1;
|
||||
//UIManager.AddEvent(transform.Find("Button").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
|
||||
//{
|
||||
|
||||
//});
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7400b2488409db4cad823eb13d103b4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in new issue
Block a user