how can I display a variable as a GUIText

Hi Guys,

Can anybody of you tell me how I can display a variable of a Script as a GUIText

that I've added in the scene view?

This will work:

var myNiceVariable = "Here I am";
var guiText = GameObject.Find("GUI Text").GetComponent(GUIText);
guiText.text = myNiceVariable;

guiText.text = variable.toString();

http://unity3d.com/support/documentation/ScriptReference/GUIText-text.html

but the variable is in another script... can I just say

GUIText.text = nameofscript.variableofscript.toString();

because it doesn't work:

My error:

Assets/WeaponScripts/FPSPlayer.js(112,49): BCE0020: An instance of type 'm4a1script' is required to access non static member 'bulletsLeft'.

I'll write the full two scripts here:

  1. FPSPlayer:

var maximumHitPoints = 100.0; var hitPoints = 100.0;

var bulletGUI : GUIText; var MagazineGUI :GUIText; var rocketGUI : DrawRockets; var healthGUI : GUITexture; var bulletm4a1GUI :GUIText; var walkSounds : AudioClip[]; var painLittle : AudioClip; var painBig : AudioClip; var die : AudioClip; var audioStepLength = 0.3;

private var machineGun : MachineGun; private var MMM : m4a1script; private var rocketLauncher : RocketLauncher; private var healthGUIWidth = 0.0; private var gotHitTimer = -1.0;

var rocketTextures : Texture[];

function Awake () { machineGun = GetComponentInChildren(MachineGun);

rocketLauncher = GetComponentInChildren(RocketLauncher);

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;

// Update machine gun gui
// Machine gun gui is simply drawn with a bullet counter text
if (machineGun) {
    bulletGUI.text = machineGun.GetBulletsLeft().ToString();

}

if(MMM){

    bulletm4a1GUI.text = m4a1script.bulletsLeft.toString();

}
// Update rocket gui
// This is changed from the tutorial PDF. You need to assign the 20 Rocket

textures found in the GUI/Rockets folder // to the RocketTextures property. if (rocketLauncher) { rocketGUI.UpdateRockets(rocketLauncher.ammoCount); /if (rocketTextures.Length == 0) { Debug.LogError ("The tutorial was changed with Unity 2.0 - You need to assign the 20 Rocket textures found in the GUI/Rockets folder to the RocketTextures property."); } else { rocketGUI.texture = rocketTextures[rocketLauncher.ammoCount]; }/ } }

`

_________________________________________________ _________________________________________________

and the second code:

var range = 100.0;
var fireRate = 0.05;
var force = 10.0;
var damage = 5.0;
var bulletsPerClip = 40;
var clips = 20;
var reloadTime = 0.5;
private var hitParticles : ParticleEmitter;
var muzzleFlash : Renderer;
var Huelse :Transform;
var bulletsLeft  = 0;
private var nextFireTime = 0.0;
private var m_LastFrameShot = -1;
var spawnpoint :Transform;

function Start () { hitParticles = GetComponentInChildren(ParticleEmitter);

// We don't want to emit particles all the time, only when we

hit something. if (hitParticles) hitParticles.emit = false; bulletsLeft = bulletsPerClip; MagazineLeft = clips; }

function LateUpdate() { if (muzzleFlash) { animation.Play("shotmachine"); var Huelseestellen = Instantiate(Huelse, transform.position, Quaternion.identity);

            Huelseestellen.rigidbody.AddForce(transform.up*10);

            // We shot this frame, enable the muzzle flash
    if (m_LastFrameShot == Time.frameCount) {
        muzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.value * 360, Vector3.forward);
        muzzleFlash.enabled = true;

        if (audio) {
            if (!audio.isPlaying)
                audio.Play();
            audio.loop = true;
        }
    } else {
    // We didn't, disable the muzzle flash
        muzzleFlash.enabled = false;
        enabled = false;

        // Play sound
        if (audio)
        {
            audio.loop = false;
        }
    }
}

}

function Fire () { if (bulletsLeft == 0) return;

// If there is more than one bullet between the last and this frame
// Reset the nextFireTime
if (Time.time - fireRate > nextFireTime)
    nextFireTime = Time.time - Time.deltaTime;

// Keep firing until we used up the fire time
while( nextFireTime < Time.time && bulletsLeft != 0) {
    FireOneShot();
    nextFireTime += fireRate;
}

}

function FireOneShot () { var direction = transform.TransformDirection(Vector3.forward); var hit : RaycastHit;

// Did we hit anything?
if (Physics.Raycast (transform.position, direction, hit, range)) {
    // Apply a force to the rigidbody we hit
    if (hit.rigidbody)
        hit.rigidbody.AddForceAtPosition(force * direction, hit.point);

    // Place the particle system for spawing out of place where we hit the

surface! // And spawn a couple of particles if (hitParticles) { hitParticles.transform.position = hit.point; hitParticles.transform.rotation = Quaternion.FromToRotation(Vector3.right, hit.normal); hitParticles.Emit(); }

    // Send a damage message to the hit object          
    hit.collider.SendMessageUpwards("ApplyDamage", damage,

SendMessageOptions.DontRequireReceiver); }

bulletsLeft--;

// Register that we shot this frame,
// so that the LateUpdate function enabled the muzzleflash renderer for one frame
m_LastFrameShot = Time.frameCount;
enabled = true;

// Reload gun in reload Time        

} function Reload () {

// Wait for reload time first - then add more bullets!
yield WaitForSeconds(reloadTime);

// We have a clip left reload
if (clips > 0) {
clips–;
bulletsLeft = bulletsPerClip;
MagazineLeft = clips;
}
`

} function bulletsdisplay() {

} function Update(){

if(Input.GetAxis("Reload") == 1){ //if(Input.GetButtonDown("Reload")){

Reload();

}   

}

PLEASE HELP ME!!!