Всем удачи, процветания на работе, и в семье - уюта и счастья.
Помогите с такой проблемкой: Есть камера, есть объект. Объект движется по оси X с определенной скоростью, камера постоянно за ним следит.
И тут начинается проблема. Анимация объекта отображается отлично, а вот перемещение всего мира, относительно таргета камеры движется с рывками.
Вот код камеры. prefab - это наша цель. пробовал все в мире убирать, кидал какой-нибудь объект в сцену, чтобы было видно движение, и все равно рывки.
Синтаксис:
Используется javascript
var target : Transform;
var distance = 7.0;
var height = 3.0;
var heightDamping = 2.0;
var rotationDamping = 3.0;
var prefab : GameObject;
var positionX=0.0f;
var positionY=0.0f;
var positionZ=0.0f;
function Start () {
Application.targetFrameRate=30;
var pos = Vector3 (positionX, positionY, positionZ);
var player=Instantiate(prefab, pos, Quaternion.identity);
target=player.GetComponent(Transform);
}
@script AddComponentMenu("Camera-Control/Smooth Follow")
function LateUpdate () {
if (!target)
return;
var wantedRotationAngle = target.eulerAngles.y;
var wantedHeight = target.position.y + height;
var currentRotationAngle = transform.eulerAngles.y;
var currentHeight = transform.position.y;
currentRotationAngle = Mathf.LerpAngle (currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);
currentHeight = Mathf.Lerp (currentHeight, wantedHeight, heightDamping * Time.deltaTime);
var currentRotation = Quaternion.Euler (0, currentRotationAngle, 0);
transform.position = target.position;
transform.position -= currentRotation * Vector3.forward * distance;
transform.position.y = currentHeight;
transform.LookAt (target);
}
var distance = 7.0;
var height = 3.0;
var heightDamping = 2.0;
var rotationDamping = 3.0;
var prefab : GameObject;
var positionX=0.0f;
var positionY=0.0f;
var positionZ=0.0f;
function Start () {
Application.targetFrameRate=30;
var pos = Vector3 (positionX, positionY, positionZ);
var player=Instantiate(prefab, pos, Quaternion.identity);
target=player.GetComponent(Transform);
}
@script AddComponentMenu("Camera-Control/Smooth Follow")
function LateUpdate () {
if (!target)
return;
var wantedRotationAngle = target.eulerAngles.y;
var wantedHeight = target.position.y + height;
var currentRotationAngle = transform.eulerAngles.y;
var currentHeight = transform.position.y;
currentRotationAngle = Mathf.LerpAngle (currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);
currentHeight = Mathf.Lerp (currentHeight, wantedHeight, heightDamping * Time.deltaTime);
var currentRotation = Quaternion.Euler (0, currentRotationAngle, 0);
transform.position = target.position;
transform.position -= currentRotation * Vector3.forward * distance;
transform.position.y = currentHeight;
transform.LookAt (target);
}