コード例 #1
0
    public static void Load()
    {
        if (savedAudios != null)
        {
            foreach (FMODAudioSource audio in savedAudios)
            {
                GameObject.Destroy(audio.gameObject);
            }
            savedAudios.Clear();
            savedAudios = null;
        }
        savedAudios = new List <FMODAudioSource> ();
        string dir  = GameConfig.GetUserDataPath() + "/PlanetExplorers/Audio Saves/";
        string path = dir + "audio_points.xml";

        if (File.Exists(path))
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(path);
            foreach (XmlNode node in xmldoc.DocumentElement.ChildNodes)
            {
                if (node.Name == "AUDIO")
                {
                    Vector3 pos = Vector3.zero;
                    pos.x = XmlConvert.ToSingle(node.Attributes["posx"].Value);
                    pos.y = XmlConvert.ToSingle(node.Attributes["posy"].Value);
                    pos.z = XmlConvert.ToSingle(node.Attributes["posz"].Value);
                    Vector3 rot = Vector3.zero;
                    rot.x = XmlConvert.ToSingle(node.Attributes["rotx"].Value);
                    rot.y = XmlConvert.ToSingle(node.Attributes["roty"].Value);
                    rot.z = XmlConvert.ToSingle(node.Attributes["rotz"].Value);
                    string          evtpath = node.Attributes["path"].Value;
                    float           volume  = XmlConvert.ToSingle(node.Attributes["volume"].Value);
                    float           pitch   = XmlConvert.ToSingle(node.Attributes["pitch"].Value);
                    float           mindist = XmlConvert.ToSingle(node.Attributes["mindist"].Value);
                    float           maxdist = XmlConvert.ToSingle(node.Attributes["maxdist"].Value);
                    FMODAudioSource audio   = CreateAudioSource(pos, rot);
                    audio.path        = evtpath;
                    audio.volume      = volume;
                    audio.pitch       = pitch;
                    audio.minDistance = mindist;
                    audio.maxDistance = maxdist;
                    foreach (XmlNode pnode in node.ChildNodes)
                    {
                        if (pnode.Name == "PARAM")
                        {
                            string pn = pnode.Attributes["name"].Value;
                            float  pv = XmlConvert.ToSingle(pnode.Attributes["value"].Value);
                            audio.SetParam(pn, pv);
                        }
                    }
                    savedAudios.Add(audio);
                }
            }
        }
    }
コード例 #2
0
    public static void AlterSaveState(FMODAudioSourceRTE rte, bool state)
    {
        FMODAudioSource found = savedAudios.Find(iter => iter == rte.audioSrc);

        if (found == null)
        {
            savedAudios.Add(rte.audioSrc);
            rte.gizmoColor = Color.green;
        }
        else
        {
            savedAudios.Remove(rte.audioSrc);
            rte.gizmoColor = Color.yellow;
        }
    }
コード例 #3
0
    // Use this for initialization
    void Start()
    {
        audioSrc = GetComponent <FMODAudioSource>();
        gizmo    = GameObject.CreatePrimitive(PrimitiveType.Quad);
        gizmo.transform.parent        = transform;
        gizmo.transform.localPosition = Vector3.zero;
        r          = gizmo.GetComponent <Renderer>();
        mat        = Material.Instantiate(Resources.Load <Material>("AudioGizmoMat")) as Material;
        r.material = mat;
        mat.color  = Color.yellow;
        col        = gizmo.GetComponent <Collider>();
        (col as MeshCollider).convex = true;
        col.isTrigger = true;

        bound = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        Collider c = bound.GetComponent <Collider>();

        Collider.DestroyImmediate(c);
        bound.transform.parent        = transform;
        bound.transform.localPosition = Vector3.zero;
        Renderer br = bound.GetComponent <Renderer>();

        boundmat             = Material.Instantiate(Resources.Load <Material>("AudioBoundMat")) as Material;
        br.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        br.receiveShadows    = false;
        br.material          = boundmat;
        bound.SetActive(false);

        gizmo.layer = LayerMask.NameToLayer("PE Environment");
        gizmo.transform.rotation = Camera.main.transform.rotation;
        gskin = Resources.Load <GUISkin>("AudioRTESkin");

        if (PeFmodEditor.savedAudios != null)
        {
            FMODAudioSource found = PeFmodEditor.savedAudios.Find(iter => iter == audioSrc);
            if (found != null)
            {
                gizmoColor = Color.green;
            }
        }

        if (audioSrc.audioInst != null)
        {
            EventDescription _desc;
            audioSrc.audioInst.getDescription(out _desc);
            _desc.getPath(out inputPath);
        }
    }
コード例 #4
0
ファイル: BGAInst.cs プロジェクト: shrubba/planetexplorers
 void OnDestroy()
 {
     FMODAudioSource.Destroy(audioSrc);
 }
コード例 #5
0
ファイル: BGAInst.cs プロジェクト: shrubba/planetexplorers
 void Awake()
 {
     audioSrc = gameObject.AddComponent <FMODAudioSource> ();
 }