Skip to content

Commit

Permalink
Merge pull request #1 from tyson-kubota/cardboard
Browse files Browse the repository at this point in the history
Google Cardboard VR integration
  • Loading branch information
tyson-kubota authored Dec 10, 2017
2 parents 34e7d9b + 8129f20 commit bf4897d
Show file tree
Hide file tree
Showing 30 changed files with 3,254 additions and 1,485 deletions.
6 changes: 6 additions & 0 deletions AnalyticsUtil.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#pragma strict

function Event (eventString: String, eventArg: float) {
// Debug.Log("Received event " + eventString + " with arg: " + eventArg);
GameAnalyticsSDK.GameAnalytics.NewDesignEvent(eventString, eventArg);
}
15 changes: 11 additions & 4 deletions AudioDuckingRegion.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
#pragma strict

var duckingObject : GameObject;
var moveControllerComponent : MoveController;
var duckingVal : float = .5f;
var StopAudioOnComplete : boolean = false;
var audioSource : AudioSource;

function Start () {
audioSource = duckingObject.GetComponent.<AudioSource>();
// go one or two levels up, since in VR the parent may be shifted around:
moveControllerComponent =
duckingObject.transform.parent.GetComponent.<MoveController>() ||
duckingObject.transform.parent.parent.GetComponent.<MoveController>();
}

function OnTriggerEnter (other : Collider) {
Expand All @@ -23,17 +28,19 @@ function OnTriggerExit (other : Collider) {

function lerpDuck (timer : float, endVal : float) {

if (!StopAudioOnComplete && !audioSource.isPlaying) {audioSource.UnPause();}

var start = audioSource.volume;
var end = endVal;
var i = 0.0;
var step = 1.0/timer;

while (i <= 1.0) {
i += step * Time.deltaTime;
audioSource.volume = Mathf.Lerp(start, end, i);
yield;
}
moveControllerComponent.setMaxDuckedVolume( Mathf.Lerp(start, end, i) );
yield;
}
yield WaitForSeconds (timer);

if (StopAudioOnComplete) {audioSource.Stop();}
if (StopAudioOnComplete) {audioSource.Pause();}
}
2 changes: 1 addition & 1 deletion AudioVolumeInterpolate.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ function Start () {
aSource = GetComponent(AudioSource);
aSource.volume = 0f;
// findPlayer();
player = GameObject.Find("Player/Camera").transform;
player = Camera.main.transform;
}

function OnTriggerEnter (other : Collider) {
Expand Down
154 changes: 125 additions & 29 deletions EndSequence1stPerson.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
#pragma strict

var Player : GameObject;
private var FallingPlayerScript : FallingPlayer;
var PlayerController : MoveController;
var ScoreController : ScoreController;
var LifeController : lifeCountdown;
var EndTriggerName : GameObject;
var EndTriggerComponent : EndSequenceTrigger;
var EndMenuLogoObjectVR : GameObject;
var EndMenuLogoObject : GameObject;
var EndMenuLogoCamera : GameObject;
var OutroMusic : AudioSource;
Expand All @@ -14,64 +17,113 @@ var MusicBedInterpolated : AudioVolumeInterpolate;

var UIscriptEndMenuName : GameObject;
var UIscriptEndMenuComponent : FallingEndMenuUI;
var reticleVRUIScript : VRLifeMeter;

//var outroShards : GameObject;
var outroCompletedOrb : GameObject;
var outroCompletionPoint : GameObject;

function Start () {
FallingPlayerScript = GetComponent("FallingPlayer");
PlayerController = GetComponent("MoveController");
ScoreController = GetComponent("ScoreController");
LifeController = GetComponent("lifeCountdown");
MusicBedInterpolated = OutroMusicBedObject.GetComponent("AudioVolumeInterpolate");
UIscriptEndMenuComponent = UIscriptEndMenuName.GetComponent("FallingEndMenuUI");
EndTriggerComponent = EndTriggerName.GetComponent("EndSequenceTrigger");

// Look up manually if not added in inspector:
if (!reticleVRUIScript) {
Debug.Log("Did you forget to select a reticleVRUIScript in the Unity Inspector?");
reticleVRUIScript = GameObject.Find("vr-radial-life-meter").GetComponent.<VRLifeMeter>();
}
// Skip to the outro for testing.
// Make sure to disable EndSequenceTrigger's PlayOutro call so they don't compete:
// PlayOutro();
}

function PlayOutro () {
//GameAnalytics events for beating the game
// GameAnalytics events for beating the game
var isNewGamePlus : String = (FallingLaunch.NewGamePlus) ? "new_game_plus" : "first_game";

FallingLaunch.secondsInLevel = (Time.time - FallingPlayer.levelStartTime);
// GA.API.Design.NewEvent("GameComplete:" + FallingPlayer.isNewGamePlus, FallingLaunch.secondsInLevel, transform.position);

FallingLaunch.Analytics.Event(
"GameComplete:" + FallingLaunch.vrModeAnalyticsString + isNewGamePlus,
FallingLaunch.secondsInLevel
);

// TestFlightUnity.TestFlight.PassCheckpoint( "LevelComplete:" + Application.loadedLevelName );
// TestFlightUnity.TestFlight.PassCheckpoint( "GameComplete");

FallingPlayer.isPausable = false;
ScoreController.enabled = false;
LifeController.enabled = false;
FallingPlayer.isTiltable = false;
LifeController.enabled = false;
FallingPlayer.isTiltable = false;

PlayerController.lerpSlowdown(1);
OutroMusic.Play();
//PlayerController.SpeedLinesOff(1);
yield WaitForSeconds (1);
PlayerController.enabled = false;
FallingPlayer.UIscriptComponent.BeginOutroUI();

FallingPlayer.isPausable = false;
Player.transform.GetComponent.<Rigidbody>().isKinematic = true;

if (FallingLaunch.isVRMode) {
reticleVRUIScript.FadeReticleOut(0.5);
} else {
FallingPlayer.UIscriptComponent.BeginOutroUI();
}

ScoreController.IncrementScore(35);

LerpTowardsDiamond(10);
RotateTowardsDiamond(10);
yield WaitForSeconds (10);
//LerpIntoDiamond(14);

// LerpIntoDiamond(14);
MusicBedInterpolated.falsifyCheckDistance();
FadeMusic(8, OutroMusicBed);
GetComponent.<Animation>().Play("end-player-anim");

// Only using iTween for path movement.
// Rotation is handled via FinalRotation's Slerp.
iTween.MoveTo(gameObject,
iTween.Hash("path",iTweenPath.GetPath("player-end-path"),
"orienttopath", false,
// "looktarget", EndTriggerComponent.getDiamondCenter(),
// "axis", "y",
"time", 13,
"easetype", "easeOutSine"
));

// start rotating player camera to end at the same time as the above tween path traveling.
FinalRotation(13);

EndTriggerComponent.AddDiamondCore(5);
yield WaitForSeconds (1);
EndTriggerComponent.AddDiamond3DCore(6);
yield WaitForSeconds (1);
EndTriggerComponent.FadeDiamond(8);
yield WaitForSeconds (6);
yield WaitForSeconds (6);

ScoreController.enabled = true;
LifeController.enabled = true;
lifeCountdown.inOutro = false;
FallingPlayer.UIscriptComponent.GameCompleteUI();
UIscriptEndMenuComponent.ShowEndGameUI();
if (!FallingLaunch.isVRMode) {
FallingPlayer.UIscriptComponent.GameCompleteUI();
UIscriptEndMenuComponent.ShowEndGameUI();
}
FadeAudioListener (4);
yield WaitForSeconds(1);
FadeEndMenuLogo(3);

if (FallingLaunch.isVRMode) {
FadeEndMenuLogoVR(3.0);
FallingPlayerScript.WhiteFadeVREndGame(5.0);
} else {
FadeEndMenuLogo(3.0);
}

FallingLaunch.NewGamePlus = true;
//UIscriptComponent.LevelComplete();
}

function LerpTowardsDiamond (timer : float) {
Expand All @@ -90,7 +142,8 @@ function LerpTowardsDiamond (timer : float) {
while (i <= 1.0) {
// transform.LookAt(diamondLookTarget);
i += step * Time.deltaTime;
transform.position = Vector3.Slerp(start, end, i);
var t : float = i*i*i * (i * (6f*i - 15f) + 10f); // smootherstep lerp
transform.position = Vector3.Slerp(start, end, t);
//transform.rotation = Quaternion.Slerp(startRotation, endRotation, i);

yield;
Expand All @@ -99,38 +152,81 @@ function LerpTowardsDiamond (timer : float) {
EndTriggerComponent.SwapDiamonds(4);
}

function RotateTowardsDiamond (timer : float) {
function FinalRotation (timer : float) {
var i = 0.0;
var step = 1.0/timer;
var startRotation = transform.rotation;
var endRotation = Quaternion.Euler(-54,96,-2.3);
var startRotation = transform.rotation;
var endRotation = Quaternion.Euler(-23.9,101.74,-2.52);
while (i <= 1.0) {
i += step * Time.deltaTime;
transform.rotation = Quaternion.Slerp(startRotation, endRotation, i);
var t : float = i*i*i * (i * (6f*i - 15f) + 10f); // smootherstep lerp
transform.rotation = Quaternion.Slerp(startRotation, endRotation, t);

yield;
}
}

function LerpIntoDiamond (timer : float) {
var end = outroCompletedOrb.transform.position;
var start = gameObject.transform.position;
var startRotation = transform.rotation;
var endRotation = Quaternion.Euler(-79,97,-2.3);
function RotateTowardsDiamond (timer : float) {
var i = 0.0;
var step = 1.0/timer;

var startRotation = transform.rotation;
var endRotation = Quaternion.Euler(-54,96,-2.3);

var myCameraParent = transform.Find("Player-cameras");
var parentRotation = myCameraParent ? myCameraParent.localRotation : Quaternion.identity;

while (i <= 1.0) {
i += step * Time.deltaTime;
transform.position = Vector3.Slerp(start, end, i);
transform.rotation = Quaternion.Slerp(startRotation, endRotation, i);

var t : float = i*i * (3f - 2f*i); // smoothstep lerp
transform.rotation = Quaternion.Slerp(startRotation, endRotation, t);
// myCameraParent needs rotating too, because otherwise the local container object
// (tilted via FallingPlayer.playerTilt) will not be aligned to 0,0,0 local rotation,
// so the diamond target won't be centered in view. VR mode is unaffected by this,
// since the VR eye cameras aren't children of myCameraParent.
if (myCameraParent) {
myCameraParent.localRotation = Quaternion.Slerp(parentRotation, Quaternion.identity, t);
}
yield;
}
}

// function LerpIntoDiamond (timer : float) {
// var end = outroCompletedOrb.transform.position;
// var start = gameObject.transform.position;
// var startRotation = transform.rotation;
// var endRotation = Quaternion.Euler(-79,97,-2.3);
// var i = 0.0;
// var step = 1.0/timer;

// while (i <= 1.0) {
// i += step * Time.deltaTime;
// transform.position = Vector3.Slerp(start, end, i);
// transform.rotation = Quaternion.Slerp(startRotation, endRotation, i);

// yield;
// }

// }

function FadeEndMenuLogoVR(timer:float){

EndMenuLogoObjectVR.GetComponent.<Renderer>().enabled = true;
var start = 0;
var end = 1.0;
var i = 0.0;
var step = 1.0/timer;

while (i <= 1.0) {
i += step * Time.deltaTime;
EndMenuLogoObjectVR.GetComponent.<Renderer>().material.color.a = Mathf.Lerp(start, end, i);
yield;
}

yield WaitForSeconds (timer);
}


function FadeEndMenuLogo(timer:float){

EndMenuLogoCamera.GetComponent(Camera).enabled = true;
Expand All @@ -144,7 +240,7 @@ function FadeEndMenuLogo(timer:float){
i += step * Time.deltaTime;
EndMenuLogoObject.GetComponent.<Renderer>().material.color.a = Mathf.Lerp(start, end, i);
yield;
}
}

yield WaitForSeconds (timer);
}
Expand Down
Loading

0 comments on commit bf4897d

Please sign in to comment.