Добавлен Mansur
Здравствуйте. Имеется отличный скрипт CarCamera для автомобиля. Однако есть в нём лишний доработок, когда автомобиль двигается назад, камера тоже поворачивается назад и при этом теряется ориентир движение. Как изменить скрипт чтобы камера оставалась только в одном положение (смотрела только вперёд)?
using UnityEngine;
using System.Collections;
public class CarCamera : MonoBehaviour
{
public Transform target = null;
public float height = 1f;
public float positionDamping = 3f;
public float velocityDamping = 3f;
public float distance = 4f;
public LayerMask ignoreLayers = -1;
private RaycastHit hit = new RaycastHit();
private Vector3 prevVelocity = Vector3.zero;
private LayerMask raycastLayers = -1;
private Vector3 currentVelocity = Vector3.zero;
void Start()
{
raycastLayers = ~ignoreLayers;
}
void FixedUpdate()
{
currentVelocity = Vector3.Lerp(prevVelocity, target.root.rigidbody.velocity, velocityDamping * Time.deltaTime);
currentVelocity.y = 0;
prevVelocity = currentVelocity;
}
void LateUpdate()
{
float speedFactor = Mathf.Clamp01(target.root.rigidbody.velocity.magnitude / 70.0f);
camera.fieldOfView = Mathf.Lerp(55, 72, speedFactor);
float currentDistance = Mathf.Lerp(7.5f, 6.5f, speedFactor);
currentVelocity = currentVelocity.normalized;
Vector3 newTargetPosition = target.position + Vector3.up * height;
Vector3 newPosition = newTargetPosition - (currentVelocity * currentDistance);
newPosition.y = newTargetPosition.y;
Vector3 targetDirection = newPosition - newTargetPosition;
if(Physics.Raycast(newTargetPosition, targetDirection, out hit, currentDistance, raycastLayers))
newPosition = hit.point;
transform.position = newPosition;
transform.LookAt(newTargetPosition);
}
}
Нужно наверно изменить вот это часть:
Vector3 newPosition = newTargetPosition - (currentVelocity * currentDistance);
Однако ни как не могу сообразить.Если знак минус изменить на плюс,то действительно меняется направление камера,но тогда при езде вперёд камера будет смотреть назад.Так тоже проблема не решается.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. N7 Molot
Ред. N7 Molot
Ред. ledoed
Ред. N7 Molot
N7 Molot, Извините,но вы пишете такими загадками,я ведь не окончил программирование а обычный пользователь.Скрипт применяется в Unity v.4.6 и взял я этот скрипт по этому адресу. Здесь по автодвигатель всё хорошо объяснили и я разобрался, а вот по камеру ни каких объяснений, для меня это проблематично.
Позже найду время разберу что да как работает. Но знание программирования всё равно нужны, хотя бы базовые.