Я работаю над демонстрационным аудиопроектом в Unity 5 и сталкиваюсь с некоторыми проблемами. Моя цель - присвоить значение currentHealth (которое содержится внутри отдельного сценария «PlayerHealth») параметру в FMOD, который модулирует музыку (делает ее более интенсивной) по мере того, как здоровье игрока уменьшается. Я не программист, любые средства, но был вынужден пачкать руки, чтобы реализовать музыку в Unity 5.Невозможно преобразовать выражение `object 'для типа` float' - HealthParam.SetValue (PlayerHealth.currentHealth);
HealthParam.setValue (PlayerHealth.currentHealth);
Эта строка кода делает Unity несчастным. Я понял, что это может иметь какое-то отношение к различию между членами static и экземпляром, но опять же я не программист и действительно не знаю, как вникать в сорняки.
Ошибки:
"Аргумент
#1' cannot convert
объекта 'выражение типа` поплавка'"«Лучший перегруженный метод соответствие для `FMOD.Studio.ParameterInstance.setValue (поплавка)» имеют некоторые недопустимые аргументов»
" ссылка на объект требуется для доступа к нестатическому члену `PlayerHealth.currentHealth"
Вот скрипт:
using UnityEngine;
using System.Collections;
public class MusicManager : MonoBehaviour
{
public int startingHealth = 100;
public int currentHealth;
public PlayerHealth playerHealth;
GameObject player;
[FMODUnity.EventRef]
public string ScaryMusic = "event:/ZombunnyHorrorMusic";
FMOD.Studio.EventInstance MusicEv;
FMOD.Studio.ParameterInstance HealthParam;
void awake()
{
// player = GameObject.FindGameObjectWithTag ("Player");
// playerHealth = player.GetComponent <PlayerHealth>();
}
void Start()
{
MusicEv = FMODUnity.RuntimeManager.CreateInstance (ScaryMusic);
MusicEv.getParameter ("Health", out HealthParam);
MusicEv.start();
}
void update()
{
// currentHealth = Mathf.Abs (PlayerHealth.currentHealth);
HealthParam.setValue (PlayerHealth.currentHealth);
}
void OnDestroy()
{
MusicEv.stop (FMOD.Studio.STOP_MODE.IMMEDIATE);
}
}
@Пожалуйста, укажите определение класса HealthParam. – tchelidze
Можете ли вы поделиться кодом класса «HealthParam»? –