Advertisement
Guest User

Untitled

a guest
May 25th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.74 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class AnimationHandler : MonoBehaviour {
  6.     public AnimJson AnimData = new AnimJson();
  7.     public GameObject BasicPrefab;
  8.     public bool Animating;
  9.     public List<Transform> SpriteList;
  10.     public List<List<AnimJson.AnimJsonData.SpriteInfo>> TimeLineList = new List<List<AnimJson.AnimJsonData.SpriteInfo>>();
  11.     public List<int> Timelineindex = new List<int>();
  12.     public List<Vector3> VectorList = new List<Vector3>();
  13.     public List<float> TimeList =  new List<float>();
  14.     public float TimeCount;
  15.     private void Start()
  16.     {
  17.         AnimData.ParseJson("Test/Test");
  18.  
  19.         GameObject Sprite;
  20.         AnimData.AnimData.Actors.Reverse();
  21.         foreach (var item in AnimData.AnimData.Actors)
  22.         {
  23.             Sprite=Instantiate(BasicPrefab, transform);
  24.             Sprite.transform.position += new Vector3(item.Position[0] / 8, -item.Position[1] / 8, 0);
  25.            
  26.             Sprite.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("InGame/"+item.Sprite);
  27.             Sprite.transform.Rotate(new Vector3(0,0,item.Angle));
  28.             Sprite.SetActive(item.Shown);
  29.             SpriteList.Add(Sprite.transform);
  30.             TimeLineList.Add(GetTimeline(item.uid));
  31.             Timelineindex.Add(0);
  32.             VectorList.Add(new Vector3(0, 0, 0));
  33.             TimeList.Add(0);
  34.         }
  35.      
  36.     }
  37.     private void Update()
  38.     {
  39.         if (Animating)
  40.         {
  41.             TimeCount += Time.deltaTime;
  42.             for (int i = 0; i < SpriteList.Count; i++)
  43.             {
  44.                 if (Timelineindex[i]!=TimeLineList[i].Count &&TimeLineList[i][Timelineindex[i]].Time <= TimeCount)
  45.                 {
  46.                     Timelineindex[i]++;
  47.                     if (Timelineindex[i] == TimeLineList.Count)
  48.                     {
  49.                         print("Nope");
  50.                         VectorList[i] = new Vector3(0, 0, 0);
  51.                     }
  52.                     else
  53.                     {
  54.                         print("lol");
  55.                         print(SpriteList[i].transform.position);
  56.                         VectorList[i] = new Vector3(TimeLineList[i][Timelineindex[i]].Position[0] / 8 -  (SpriteList[i].position.x- transform.position.x), TimeLineList[i][Timelineindex[i]].Position[1] / 8 -(SpriteList[i].position.y-transform.position.y), 0);
  57.                         TimeList[i] = (TimeLineList[i][Timelineindex[i]].Time - TimeCount);
  58.                     }
  59.                 }
  60.                 if (VectorList[i] != new Vector3(0, 0, 0))
  61.                 {
  62.                     SpriteList[i].position += VectorList[i] * (Time.deltaTime / TimeList[i]);
  63.                 }
  64.             }
  65.             if (TimeCount > AnimData.AnimData.stageOptions.StageLength)
  66.             {
  67.                 Animating = false;
  68.                 for (int j = 0; j < SpriteList.Count; j++)
  69.                 {
  70.                     SpriteList[j].position = transform.position+ new Vector3(AnimData.AnimData.Actors[j].Position[0]/8, -AnimData.AnimData.Actors[j].Position[1]/8, 0);
  71.                     print(new Vector3(AnimData.AnimData.Actors[j].Position[0] / 8, AnimData.AnimData.Actors[j].Position[1] / 8, 0));
  72.                 }
  73.             }
  74.            
  75.         }
  76.     }
  77.     public void startanimation()
  78.     {
  79.         Animating = true;
  80.         TimeCount = 0;
  81.     }
  82.     public List<AnimJson.AnimJsonData.SpriteInfo> GetTimeline(int uid)
  83.     {
  84.         foreach(AnimJson.AnimJsonData.Timelines tIMELINE in AnimData.AnimData.timelines)
  85.         {
  86.            
  87.  
  88.             if (tIMELINE.spriteuid == uid)
  89.             {
  90.                
  91.                 return tIMELINE.stage;
  92.             }
  93.         }
  94.         return null;
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement