F-ES Sitecore
Вы говорите, что хотите, чтобы он рос и сжимался, но не указываете, когда\как он растет и когда\как он сжимается. Если вы хотите расти на Fire2 и сжиматься на Fire1, то вам понадобится код типа
var f1 = Input.GetAxis("Fire1");
var f2 = Input.GetAxis("Fire2");
if (f1 > 0)
{
transform.localScale += new Vector3(0f, 0f, -0.01f * f1);
}
else if (f2 > 0)
{
transform.localScale += new Vector3(0f, 0f, 0.01f * f2);
}
Помимо того, что у меня были разные условия для роста и сжатия, я умножил значение оси на 0,01, так как кнопки огня возвращают 0 или 1, а рост в 1 раз-это довольно экстремально. Технически вы можете просто жестко закодировать это значение, поскольку умножение на 1 ничего не делает, но я предполагаю, что элементы управления с аналоговыми кнопками огня, такие как xbox и ps4, могут возвращать значение от 0 до 1 в зависимости от того, насколько оно нажато.
Если вы хотите, чтобы спрайт "подпрыгнул", то есть вырос до определенного размера, а затем снова уменьшился и так далее, вам понадобится что-то вроде этого;
private float scaleChange = 0.01f;
void Update()
{
var f2 = Input.GetAxis("Fire2");
if (f2 > 0)
{
// Fire2 is held so scale the z axis by the scaleChage value
transform.localScale += new Vector3(0f, 0f, scaleChange * f2);
// check if we have reached the upper or lower bound of the scale
if (transform.localScale.z >= 1.5 || transform.localScale.z <= 0.5)
{
// we are either at the max scale or the min scale so reverse the scaling by multiplying it by -1
// if we were growing before we are now shrinking and vice versa
scaleChange = -1 * scaleChange;
}
}
}