При использовании гравитации он работает нормально, камера следует гладко. и я попытался в жестком теле, чтобы установить свойство интерполяции для интерполяции, но оно не сильно изменилось. 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
Cinemachine Следуйте за заиканием камеры, если целевой объект для следования жесткому теле тяжести отключен. Как застави ⇐ C#
Место общения программистов C#
1759436616
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;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79781276/cinemachine-follow-camera-stuttering-if-the-target-object-to-follow-rigidbody-gr[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия