Я хотел бы сделать так, чтобы камера немного увеличивала масштаб, когда игрок целится из пистолета.
Камера является родителем игрового объекта игрока.
Я пробовал FieldOfViewи это работает, но это не то, что мне нужно.Вместо этого я просто хочу действительно увеличить (= изменить значение z положения камеры).
Когда я использовал FieldOfView, я использовал этот код:
private IEnumerator LerpFoV(float fov)
{
// lerping a value in this way may take quite some time to reach the exact target value, so we will just stop lerping when the difference is small enough, i.e 0.05
float dif = Mathf.Abs(camera.fieldOfView - fov);
while (dif > 0.05)
{
camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, fov, 0.1f);
// update the difference
dif = Mathf.Abs(camera.fieldOfView - fov);
yield return 0;
}
camera.fieldOfView = fov;
yield return 0;
}
Может кто-нибудь сказать мне, каксделать то же самое с позицией z?
Я думаю, что это не так сложно, как я думаю, но этот код не работает:
private IEnumerator LerpZPosition(float zValue)
{
float dif = Mathf.Abs(camera.transform.position.z - zValue);
while (dif > 0.05)
{
camera.transform.position.z = Mathf.Lerp(camera.transform.position.z, zValue, 0.1f);
// update the difference
dif = Mathf.Abs(camera.transform.position.z - zValue);
yield return 0;
}
camera.transform.position.z = zValue;
yield return 0;
}
Компилятор говорит мне: «Невозможно изменить тип значениявозвращаемое значение `UnityEngine.Transform.position '. Подумайте о сохранении значения во временной переменной".
Может кто-нибудь сказать мне, как это сделать правильно?
Спасибо.