Cinemachine Следуйте за заиканием камеры, если целевой объект для следования жесткому теле тяжести отключен. Как заставиC#

Место общения программистов C#
Ответить
Anonymous
 Cinemachine Следуйте за заиканием камеры, если целевой объект для следования жесткому теле тяжести отключен. Как застави

Сообщение Anonymous »

При использовании гравитации он работает нормально, камера следует гладко. и я попытался в жестком теле, чтобы установить свойство интерполяции для интерполяции, но оно не сильно изменилось. src = "https://i.sstatic.net/qo6omjnz.jpg"/>
И это настройки камеры кинематографии после того, как игра запускается, так как я создаю Prefab Ball Ball Prefab, немного позже, я использую сценарий, чтобы найти и назначить камеру. src = "https://i.sstatic.net/revlu4kz.jpg"/>
Сценарий, который перемещает мяч, прикрепленный к мячу
using UnityEngine;
using UnityEngine.InputSystem;

[RequireComponent(typeof(Rigidbody))]
public class MovePlayer : MonoBehaviour
{
[Header("Movement Settings")]
public float forwardForce = 10f;
public float sideForce = 8f;
public float laneLimit = 4f;

private Rigidbody rb;

void Start()
{
rb = GetComponent();
rb.freezeRotation = false;
rb.interpolation = RigidbodyInterpolation.Interpolate;
}

void FixedUpdate()
{
// Apply forward force
rb.AddForce(Vector3.forward * forwardForce, ForceMode.Force);

// Side input
float horizontalInput = 0f;
if (Keyboard.current.aKey.isPressed || Keyboard.current.leftArrowKey.isPressed)
horizontalInput = -1f;
else if (Keyboard.current.dKey.isPressed || Keyboard.current.rightArrowKey.isPressed)
horizontalInput = 1f;

rb.AddForce(Vector3.right * horizontalInput * sideForce, ForceMode.Force);

// Clamp velocity instead of position
Vector3 velocity = rb.linearVelocity;
velocity.x = Mathf.Clamp(velocity.x, -sideForce, sideForce);
rb.linearVelocity = velocity;
}
}
< /code>
Это часть сценария сценария. Часть START (), которая создает мяч и назначает его камере Cinemachine. Этот сценарий прикреплен к пустому GameObject. < /p>
void Start()
{
// Spawn player
ball = Instantiate(ballPrefab);
// Position the ball a little further up so it doesn't fall through the floor immediately
ball.transform.position = new Vector3(0, wallHeight + 0.5f, 0);
ball.tag = "Player";
ballRb = ball.GetComponent();

// Attach Cinemachine camera to follow the ball
var cineCam = FindFirstObjectByType();
if (cineCam != null)
{
cineCam.Follow = ball.transform;
cineCam.LookAt = ball.transform;

}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... gidbody-gr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»