IEnumerator LoadGame(GameDataReader reader) { int version = reader.Version; int count = version <= 0 ? -version : reader.ReadInt(); if (version >= 3) { Random.State state = reader.ReadRandomState(); if (!reseedOnLoad) { Random.state = state; } creationSpeedSlider.value = CreationSpeed = reader.ReadFloat(); creationProgress = reader.ReadFloat(); destructionSpeedSlider.value = DestructionSpeed = reader.ReadFloat(); destructionProgress = reader.ReadFloat(); } yield return(LoadLevel(version < 2 ? 1 : reader.ReadInt())); if (version >= 3) { GameLevel.CurrentLevel.Load(reader); } for (int i = 0; i < count; i++) { int shapeId = version > 0 ? reader.ReadInt() : 0; int materialId = version > 0 ? reader.ReadInt() : 0; Shape instance = ShapeManager.Get(shapeId, materialId); instance.Load(reader); shapes.Add(instance); } }
public override void Transformate() { if (timer <= time) { switch (axis) { case 0: ShapeManager.Get().transform.localScale = new Vector3(Mathf.Lerp(pos1.x, toPos.x, ac.Evaluate(timer / time)), pos1.y, pos1.z); break; case 1: ShapeManager.Get().transform.localScale = new Vector3(pos1.x, Mathf.Lerp(pos1.y, toPos.y, ac.Evaluate(timer / time)), pos1.z); break; case 2: ShapeManager.Get().transform.localScale = new Vector3(pos1.x, pos1.y, Mathf.Lerp(pos1.z, toPos.z, ac.Evaluate(timer / time))); break; } timer += Time.deltaTime; } else { timer = 0.0f; running = false; } }
IEnumerator MoveInAxis(int axis, int value, AnimationCurve ac, float time) { Vector3 pos1 = ShapeManager.Get().transform.position; Vector3 toPos = Vector3.zero; switch (axis) { case 0: toPos = ShapeManager.Get().transform.right; break; case 1: toPos = ShapeManager.Get().transform.up; break; case 2: toPos = ShapeManager.Get().transform.forward; break; default: break; } toPos = toPos * value + pos1; while (timer <= time) { ShapeManager.Get().transform.position = Vector3.Lerp(pos1, toPos, ac.Evaluate(timer / time)); timer += Time.deltaTime; yield return(null); } timer = 0.0f; }
public override void Transformate() { GameObject command = Instantiate(transformationCommand); Transformations t = command.GetComponent <Transformations>(); t.SetValues(axis, value, ac, totalTime); ShapeManager.Get().AddCommand(command); }
public override void SetPoints() { pos1 = ShapeManager.Get().transform.localScale; toPos = pos1; switch (axis) { case 0: toPos = new Vector3(toPos.x + value, toPos.y, toPos.z); break; case 1: toPos = new Vector3(toPos.x, toPos.y + value, toPos.z); break; case 2: toPos = new Vector3(toPos.x, toPos.y, toPos.z + value); break; } }
IEnumerator ScaleInAxis(int eje, int value, AnimationCurve ac, float time) { Vector3 posScale1 = ShapeManager.Get().transform.localScale; Vector3 toPos = posScale1; switch (eje) { case 0: toPos = new Vector3(toPos.x + value, toPos.y, toPos.z); break; case 1: toPos = new Vector3(toPos.x, toPos.y + value, toPos.z); break; case 2: toPos = new Vector3(toPos.x, toPos.y, toPos.z + value); break; } while (timer <= time) { switch (eje) { case 0: ShapeManager.Get().transform.localScale = new Vector3(Mathf.Lerp(posScale1.x, toPos.x, ac.Evaluate(timer / time)), posScale1.y, posScale1.z); break; case 1: toPos = new Vector3(toPos.x, toPos.y + value, toPos.z); ShapeManager.Get().transform.localScale = new Vector3(posScale1.x, Mathf.Lerp(posScale1.y, toPos.y, ac.Evaluate(timer / time)), posScale1.z); break; case 2: toPos = new Vector3(toPos.x, toPos.y, toPos.z + value); ShapeManager.Get().transform.localScale = new Vector3(posScale1.x, posScale1.y, Mathf.Lerp(posScale1.z, toPos.z, ac.Evaluate(timer / time))); break; } timer += Time.deltaTime; yield return(null); } timer = 0.0f; }
public override void SetPoints() { pos1 = ShapeManager.Get().transform.position; switch (axis) { case 0: toPos = ShapeManager.Get().transform.right; break; case 1: toPos = ShapeManager.Get().transform.up; break; case 2: toPos = ShapeManager.Get().transform.forward; break; default: break; } toPos = toPos * value + pos1; }
private void Start() { totalTime = ShapeManager.Get().GetTime(); timer = 0; t = 0; }