Я делаю свою пародию на Гд, вот значит что квадратик там поворачивается во время прыжка, я хочу чтобы у меня было также, вот ниже весь мой код игрока Player, вчера ломал голову и есть 1 скрипт, но тот скрипт работал через ж*пу, по другому я не знаю, надеюсь что кто-то поможет мне с этой задачей.
Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
private const float Speed = 6;
private const float JumpForce = 7;
private const float BackgroundSpeed = 1; // Скорость фона
[SerializeField] private Rigidbody2D rigidbody2D;
[SerializeField] private ParticleSystem particleSystem;
[SerializeField] private AudioSource audioSource;
private bool _isGrounded;
[SerializeField] private Transform groundCheckObject;
[SerializeField] private LayerMask layerMask;
[SerializeField] private Transform bg;
[SerializeField] private GameObject DeadSong;
private float initialBgPositionX; // Начальная позиция фона
private Vector3 initialPosition; // Добавляем переменную для хранения начальной позиции
private void Start()
{
initialPosition = transform.position; // Сохраняем начальную позицию при запуске сцены
initialBgPositionX = bg.position.x;
}
private void Update()
{
if (!Global.Playmode) return;
_isGrounded = Physics2D.OverlapCircle(groundCheckObject.position, 0.1f, layerMask);
if (_isGrounded)
{
particleSystem.Play();
}
else
{
particleSystem.Stop();
}
transform.Translate(new Vector2(Speed * Time.deltaTime, 0));
// Двигаем фон с меньшей скоростью
float bgMove = Speed * BackgroundSpeed * Time.deltaTime;
bg.Translate(new Vector2(bgMove, 0));
Jump();
ParticleSystemSetSpeed();
}
private void ParticleSystemSetSpeed()
{
var velocityOverLifeTime = particleSystem.velocityOverLifetime;
velocityOverLifeTime.x = rigidbody2D.velocity.x;
}
private void Jump()
{
if (Input.GetMouseButtonDown(0) && _isGrounded)
{
rigidbody2D.velocity = new Vector2(rigidbody2D.velocity.x, JumpForce);
}
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Obstacle"))
{
DieAndRespawn();
audioSource.Play();
Invoke("HideDeadSong", 0.1f);
}
}
private void DieAndRespawn()
{
transform.position = initialPosition;
bg.position = new Vector3(initialBgPositionX, bg.position.y, bg.position.z);
DeadSong.SetActive(false);
}
private void HideDeadSong()
{
// Инвертируем состояние активности объекта DeadSong
DeadSong.SetActive(!DeadSong.activeSelf);
}
}
Суть: Чтобы квадратик поворачивался во время прыжка как в оригинальной Гд.