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.

1 Answer

1

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.