Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class AnimationHandler : MonoBehaviour {
- public AnimJson AnimData = new AnimJson();
- public GameObject BasicPrefab;
- public bool Animating;
- public List<Transform> SpriteList;
- public List<List<AnimJson.AnimJsonData.SpriteInfo>> TimeLineList = new List<List<AnimJson.AnimJsonData.SpriteInfo>>();
- public List<int> Timelineindex = new List<int>();
- public List<Vector3> VectorList = new List<Vector3>();
- public List<float> TimeList = new List<float>();
- public float TimeCount;
- private void Start()
- {
- AnimData.ParseJson("Test/Test");
- GameObject Sprite;
- AnimData.AnimData.Actors.Reverse();
- foreach (var item in AnimData.AnimData.Actors)
- {
- Sprite=Instantiate(BasicPrefab, transform);
- Sprite.transform.position += new Vector3(item.Position[0] / 8, -item.Position[1] / 8, 0);
- Sprite.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("InGame/"+item.Sprite);
- Sprite.transform.Rotate(new Vector3(0,0,item.Angle));
- Sprite.SetActive(item.Shown);
- SpriteList.Add(Sprite.transform);
- TimeLineList.Add(GetTimeline(item.uid));
- Timelineindex.Add(0);
- VectorList.Add(new Vector3(0, 0, 0));
- TimeList.Add(0);
- }
- }
- private void Update()
- {
- if (Animating)
- {
- TimeCount += Time.deltaTime;
- for (int i = 0; i < SpriteList.Count; i++)
- {
- if (Timelineindex[i]!=TimeLineList[i].Count &&TimeLineList[i][Timelineindex[i]].Time <= TimeCount)
- {
- Timelineindex[i]++;
- if (Timelineindex[i] == TimeLineList.Count)
- {
- print("Nope");
- VectorList[i] = new Vector3(0, 0, 0);
- }
- else
- {
- print("lol");
- print(SpriteList[i].transform.position);
- 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);
- TimeList[i] = (TimeLineList[i][Timelineindex[i]].Time - TimeCount);
- }
- }
- if (VectorList[i] != new Vector3(0, 0, 0))
- {
- SpriteList[i].position += VectorList[i] * (Time.deltaTime / TimeList[i]);
- }
- }
- if (TimeCount > AnimData.AnimData.stageOptions.StageLength)
- {
- Animating = false;
- for (int j = 0; j < SpriteList.Count; j++)
- {
- SpriteList[j].position = transform.position+ new Vector3(AnimData.AnimData.Actors[j].Position[0]/8, -AnimData.AnimData.Actors[j].Position[1]/8, 0);
- print(new Vector3(AnimData.AnimData.Actors[j].Position[0] / 8, AnimData.AnimData.Actors[j].Position[1] / 8, 0));
- }
- }
- }
- }
- public void startanimation()
- {
- Animating = true;
- TimeCount = 0;
- }
- public List<AnimJson.AnimJsonData.SpriteInfo> GetTimeline(int uid)
- {
- foreach(AnimJson.AnimJsonData.Timelines tIMELINE in AnimData.AnimData.timelines)
- {
- if (tIMELINE.spriteuid == uid)
- {
- return tIMELINE.stage;
- }
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement