Heres the revised audio code and code for the pickups:
AUDIO:
//****************************************************************************************************
//VARIABLE DECLARATION
//****************************************************************************************************
public var levelNo: int = 1;
public var firstPlay: boolean = true;
private var pc: GameObject;
private var cam: GameObject;
var pcZ: double;
var camZ: double;
var ambClips: AudioClip[];
var FXClips: AudioClip[];
var clipNo: int;
var soundName: String;
//****************************************************************************************************
//FIND NECESSARY GAME OBJECTS
//****************************************************************************************************
function Start()
{
pc = GameObject.Find("PC Prefab(Clone)");
cam = GameObject.Find("PC Camera(Clone)");
}
//****************************************************************************************************
//AMBIENT MUSIC CODE FOR LEVELS 1, 2 AND 3
//****************************************************************************************************
function Update()
{
pcZ = pc.transform.position.z;
camZ = cam.transform.position.z;
if(pcZ > (camZ - 5) && firstPlay == true)
{
firstPlay = false;
clipNo = (levelNo*2) - 1;
audio.Stop();
clipNo = (levelNo*2) - 2;
audio.clip = ambClips[clipNo];
audio.Play();
}
else if(pcZ <= (camZ - 5) && firstPlay == false)
{
firstPlay = true;
clipNo = (levelNo*2) - 2;
audio.Stop();
clipNo = (levelNo*2) - 1;
audio.clip = ambClips[clipNo];
audio.Play();
}
}
//****************************************************************************************************
//PLAY EVENT ACTIVATED SOUND
//****************************************************************************************************
function PlayFXSound(soundName: String)
{
switch(soundName)
{
case "jump":
AudioSource.PlayClipAtPoint(FXClips[0], cam.transform.position, 0.1);
break;
case "slide":
AudioSource.PlayClipAtPoint(FXClips[1], cam.transform.position, 0.4);
break;
case "pickup":
AudioSource.PlayClipAtPoint(FXClips[2], cam.transform.position, 0.5);
break;
case "die":
AudioSource.PlayClipAtPoint(FXClips[3], cam.transform.position, 0.7);
break;
case "zombie":
AudioSource.PlayClipAtPoint(FXClips[4], cam.transform.position, 0.5);
break;
default:
print("Sound Manager: ERROR! invalid sound clip name.");
break;
}
}
PICKUPS:
//****************************************************************************************************
//VARIABLE DECLARATION
//****************************************************************************************************
private var pc: GameObject;
private var pcScript: PC_Movement_Puzzel;
var mesh: Mesh;
var sound: SoundManager;
var powerValue: int = 1;
var powerType: int = 1;
var collision: boolean;
var distance: float;
function Start()
{
pc = GameObject.FindGameObjectWithTag("Player");
pcScript = pc.GetComponent(PC_Movement_Puzzel);
sound = GameObject.Find("Sound Manager").GetComponent(SoundManager);
mesh = GetComponentInChildren(MeshFilter).mesh;
powerValue = 1;
powerType = 1;
}
//****************************************************************************************************
//POWER-UP LOGIC
//****************************************************************************************************
function Update()
{
print(pc);
print(pcScript);
transform.Rotate(0, 3, 0);
distance = Vector3.Distance(pc.transform.position, transform.position);
if(distance < 1)
{
print("pickup");
PickUpHandle();
}
}
function PickUpHandle()
{
switch(powerType)
{
case 1:
sound.PlayFXSound("pickup");
pcScript.SpeedUp(1);
print("case 1");
Destroy(mesh);
yield WaitForSeconds(2.5);
pcScript.SpeedUp(0);
break;
case 2:
sound.PlayFXSound("pickup");
Time.timeScale = 0.5;
Destroy(mesh);
yield WaitForSeconds(15);
Time.timeScale = 1;
break;
case 3:
sound.PlayFXSound("pickup");
pc.godMode = true;
Destroy(mesh);
yield WaitForSeconds(15);
pc.godMode = false;
break;
case 4:
sound.PlayFXSound("pickup");
if(!pc.godMode)
{
pc.pcLives -= 1;
pc.pcSpeed = pc.pcSpeed/2;
Destroy(mesh);
yield WaitForSeconds(0.33);
pc.pcSpeed = pc.pcSpeed*2;
}
break;
case 5:
sound.PlayFXSound("pickup");
Destroy(mesh);
break;
}
Destroy(this);
}
No comments:
Post a Comment