Движение сверху вниз в Unity 2D с использованием твердых телC#

Место общения программистов C#
Ответить
Anonymous
 Движение сверху вниз в Unity 2D с использованием твердых тел

Сообщение Anonymous »

Вот как устроена моя сцена:
Игрок на вершине кувшинки
Игрок может тянуть кувшинки и, когда они подходят близко, прыгать на них. Кувшинка привязана к одной точке с помощью целевого сустава, поэтому, когда игрок перестает ее тянуть, она возвращается в исходную точку. Игрок может свободно перемещаться внутри текущей кувшинки.

Код: Выделить всё

// LilyPad.cs

public class LilyPad : MonoBehaviour {
private Vector2 _targetPosition;
private Rigidbody2D _rb;

[SerializeField] private float speed;
[SerializeField] private float pullForce = 10f;

private bool _pull;

private Vector2 _seed;

private void Start() {
_rb = GetComponent();
_targetPosition = transform.position;
}

public void Pull(Vector2 target) {
_pull = true;
_targetPosition = target;
_force.relativeForce = Vector2.zero;
}

public void Leave() {
_pull = false;
}

private void FixedUpdate() {
if (_pull) {
var direction = (_targetPosition - (Vector2) transform.position).normalized;
_rb.AddForce(direction * pullForce);
}
}
}
Существует метод Pull, чтобы начать подтягивать кувшинку к положению игрока, и метод Leave, чтобы прекратить подтягивание.

Код: Выделить всё

// Jump.cs (on the player)

public class Jump : MonoBehaviour {
private LilyPad _currentPad;
private float startDistance, distance;

[SerializeField] private float maxJumpDistance = 4f;

private Transform root;
private Vector2 prevPosition;
private Rigidbody2D _rb;

private void Start() {
_rb = GetComponent();
_pc = GetComponent
();
PlayerController.systemActions.SkillsMap.skill2.started += HandleSkill;
}

private void HandleSkill(InputAction.CallbackContext callbackContext) {
if (!Selectable.selected) return;

if (Vector2.Distance(transform.position, _currentPad.transform.position) 

Подробнее здесь: [url]https://stackoverflow.com/questions/78684871/unity-2d-top-down-movement-using-rigidbodies[/url]
Ответить

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

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

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

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

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