Building game intro sequence.
This commit is contained in:
95
Assets/Scripts/GameIntroCutscene.cs
Normal file
95
Assets/Scripts/GameIntroCutscene.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class GameIntroCutscene : Cutscene
|
||||
{
|
||||
public SpriteRenderer sceneA;
|
||||
public SpriteRenderer sceneB;
|
||||
public SpriteRenderer sceneC;
|
||||
public Sprite[] sprites;
|
||||
|
||||
public Camera camera;
|
||||
private Vector3 basePosition;
|
||||
private int shakeTime = 0;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
basePosition = camera.transform.position;
|
||||
}
|
||||
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (shakeTime > 0)
|
||||
{
|
||||
camera.transform.position = basePosition + new Vector3(
|
||||
Random.Range(-0.2f, 0.2f), Random.Range(-0.2f, 0.2f), basePosition.z);
|
||||
shakeTime--;
|
||||
|
||||
if (shakeTime == 0)
|
||||
camera.transform.position = basePosition;
|
||||
}
|
||||
}
|
||||
|
||||
void Shake(int time)
|
||||
{
|
||||
shakeTime = time;
|
||||
}
|
||||
|
||||
protected override IEnumerator OnScenePlay()
|
||||
{
|
||||
yield return TestA();
|
||||
yield return TestB();
|
||||
}
|
||||
|
||||
IEnumerator TestA()
|
||||
{
|
||||
sceneA.sprite = sprites[0];
|
||||
sceneB.sprite = sprites[1];
|
||||
sceneC.sprite = sprites[2];
|
||||
|
||||
for (int i = 0; i <= 150; i++)
|
||||
{
|
||||
var percent = 1f * i / 150;
|
||||
sceneA.transform.position = Vector3.Lerp(
|
||||
new Vector3(-0.16f, -0.04f, 0f),
|
||||
new Vector3(3.08f, -0.04f, 0f),
|
||||
percent);
|
||||
sceneB.transform.position = Vector3.Lerp(
|
||||
new Vector3(1.5f, -1.22f, -2f),
|
||||
new Vector3(-2.2f, -1.22f, -2f),
|
||||
percent);
|
||||
sceneC.transform.position = Vector3.Lerp(
|
||||
new Vector3(0.38f, -1.08f, -1f),
|
||||
new Vector3(3.62f, -1.08f, -1f),
|
||||
percent);
|
||||
yield return null;
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(.8f);
|
||||
|
||||
sceneC.sprite = sprites[3];
|
||||
Shake(15);
|
||||
|
||||
yield return new WaitForSeconds(1f);
|
||||
}
|
||||
|
||||
IEnumerator TestB()
|
||||
{
|
||||
sceneA.sprite = sprites[4];
|
||||
sceneB.sprite = sprites[5];
|
||||
sceneC.gameObject.SetActive(false);
|
||||
|
||||
sceneA.transform.position = new Vector3(0f, 0f, 0f);
|
||||
sceneB.transform.position = new Vector3(0f, 0f, -10f);
|
||||
|
||||
Shake(60);
|
||||
|
||||
for (int i = 0; i <= 60; i++)
|
||||
{
|
||||
sceneA.transform.localScale.Set(i % 4 >= 2 ? -1f : 1f, 1f, 1f);
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/GameIntroCutscene.cs.meta
Normal file
11
Assets/Scripts/GameIntroCutscene.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31445c5ab73ed2f4f94aeb9ecb0b6329
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user