I have a script with all of my enemies stats in a script called EnemyStats, but I need to access 2 string variables (AudioIntro and AudioMain) from another script which plays battle music which does not derive from EnemyStats. I know this has been answered many times before, but none of the answers helped me.
Here is the EnemyStats script
By the way EncryptFloat is a type of float I programmed to be encrypted, but I dont think that will be important for this.
using UnityEngine;
using System.Collections;
public class EnemyStats:MonoBehaviour {
public string EnemyName {
get{ return EnemyName; }
set{ EnemyName = value; }
}
public string EnemyDescription {
get{ return EnemyDescription; }
set{ EnemyDescription = value; }
}
public string EnemyEncounterText {
get{ return EnemyEncounterText; }
set{ EnemyEncounterText = value; }
}
public EncryptFloat Level {
get{ return Level; }
set{ Level = value; }
}
public EncryptFloat HP {
get{ return HP; }
set{ HP = value; }
}
public EncryptFloat Attack {
get{ return Attack; }
set{ Attack = value; }
}
public EncryptFloat Defense {
get{ return Defense; }
set{ Defense = value; }
}
public EncryptFloat Speed {
get{ return Speed; }
set{ Speed = value; }
}
public EncryptFloat Reward_EXP_Min {
get{ return Reward_EXP_Min; }
set{ Reward_EXP_Min = value; }
}
public EncryptFloat Reward_EXP_Max {
get{ return Reward_EXP_Max; }
set{ Reward_EXP_Max = value; }
}
public EncryptFloat AI {
set{ AI = value; }
}
public string AudioIntro {////////Variable I need
get{ return AudioIntro; }
set{ AudioIntro = value; }
}
public string AudioMain {////////Variable I need
get{ return AudioMain; }
set{ AudioMain = value; }
}
}
And here is the Battle script.
using UnityEngine;
using System.Collections;
public class Battle:MonoBehaviour{
public string AudioIntro;
public string AudioMain;
AudioSource AudioPlayer;
AudioClip Intro;
AudioClip Loop;
void GetAudio(){
AudioIntro = EnemyStats.AudioIntro; /////Returns error: An object reference is required for the non-static field, method or property 'EnemyStats.AudioIntro.get'
AudioMain = EnemyStats.AudioMain; /////Returns error: An object reference is required for the non-static field, method or property 'EnemyStats.AudioMain.get'
AudioClip Intro=(AudioClip)Resources.Load(AudioIntro, typeof(AudioClip));
AudioClip Loop=(AudioClip)Resources.Load(AudioMain, typeof(AudioClip));}
void PlayAudio(){
if (Intro == null)
AudioPlayer.clip = Loop;
AudioPlayer.loop = true;
AudioPlayer.Play ();
if (Intro != null)
AudioPlayer.clip = Intro;
AudioPlayer.loop = false;
AudioPlayer.Play ();
}}
As you can see my variables have getters and setters, if that makes a difference. Thanks in advance.