- Home /
Question about FPS Player Script
I have taken the FPS Player script from the FPS tutorial and have edited it to suit my needs but I am getting the following error message :
Assets/Scripts/FPSPlayer.js(62,5): BCE0005: Unknown identifier: 'LevelLoadFade'.
The script (after editing) is :
var maximumHitPoints = 100.0;
var hitPoints = 100.0;
var healthGUI : GUITexture;
var walkSounds : AudioClip[];
var painLittle : AudioClip;
var painBig : AudioClip;
var die : AudioClip;
var audioStepLength = 0.3;
private var healthGUIWidth = 0.0;
private var gotHitTimer = -1.0;
function Awake () {
PlayStepSounds();
healthGUIWidth = healthGUI.pixelInset.width;
}
function ApplyDamage (damage : float) {
if (hitPoints < 0.0)
return;
// Apply damage
hitPoints -= damage;
// Play pain sound when getting hit - but don't play so often
if (Time.time > gotHitTimer && painBig && painLittle) {
// Play a big pain sound
if (hitPoints < maximumHitPoints * 0.2 || damage > 20) {
audio.PlayOneShot(painBig, 1.0 / audio.volume);
gotHitTimer = Time.time + Random.Range(painBig.length * 2, painBig.length * 3);
} else {
// Play a small pain sound
audio.PlayOneShot(painLittle, 1.0 / audio.volume);
gotHitTimer = Time.time + Random.Range(painLittle.length * 2, painLittle.length * 3);
}
}
// Are we dead?
if (hitPoints < 0.0)
Die();
}
function Die () {
if (die)
AudioSource.PlayClipAtPoint(die, transform.position);
// Disable all script behaviours (Essentially deactivating player control)
var coms : Component[] = GetComponentsInChildren(MonoBehaviour);
for (var b in coms) {
var p : MonoBehaviour = b as MonoBehaviour;
if (p)
p.enabled = false;
}
LevelLoadFade.FadeAndLoadLevel(Application.loadedLevel, Color.white, 2.0);
}
function LateUpdate () {
// Update gui every frame
// We do this in late update to make sure machine guns etc. were already executed
UpdateGUI();
}
function PlayStepSounds () {
var controller : CharacterController = GetComponent(CharacterController);
while (true) {
if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
audio.clip = walkSounds[Random.Range(0, walkSounds.length)];
audio.Play();
yield WaitForSeconds(audioStepLength);
} else {
yield;
}
}
}
function UpdateGUI () {
// Update health gui
// The health gui is rendered using a overlay texture which is scaled down based on health
// - Calculate fraction of how much health we have left (0...1)
var healthFraction = Mathf.Clamp01(hitPoints / maximumHitPoints);
// - Adjust maximum pixel inset based on it
healthGUI.pixelInset.xMax = healthGUI.pixelInset.xMin + healthGUIWidth * healthFraction;
}
I am not sure what is causing this to be unknown as I have not deleted anything that did not pertain specifically to the machine gun or rocket launch that is given to you in the tutorial.. Any ideas as to why this script is bugging out?
Thanks in advance.
Answer by aldonaletto · Aug 28, 2011 at 01:58 PM
Unity is complaining that it doesn't know the LevelLoadFade name. This name refers to the script LevelLoadFade.js, which is missing in your project. You must copy this script to your Assets folder - or add it using the Assets/Import New Asset... menu option.
Your answer
Follow this Question
Related Questions
Where is the FPSPlayer Script? 0 Answers
Player moves faster when fps is higher? 1 Answer
How to run a script to only 1 player in a multiplayer fps 1 Answer
a strange problem ? 1 Answer
Line Renderer Collision Detection. 2 Answers