Accessing a non-static string variable in another script C#

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.

If it is non static, you need a reference. You’ll only be able to set those variables inside of a function. If these components are both on the same object:

public class Battle : MonoBehaviour
{
    //all you variables....

    void Start()
    {
        EnemyStats e = GetComponent<EnemyStats>();
        AudioIntro = e.AudioIntro;
        AudioMain = e.AudioMain;
    }

    //your play audio function goes here
}

If they are on different object then you need to get a reference to the object that has the EnemyStats component, possibly through GameObject.Find(/*enemy object name*/) and then call GetComponent<EnemyStats>() on that object.