56 lines
1.6 KiB
C#
56 lines
1.6 KiB
C#
using UnityEngine;
|
||
using UnityEngine.SceneManagement; // Для перезагрузки сцены
|
||
|
||
public class PlayerController : MonoBehaviour
|
||
{
|
||
public float moveSpeed = 5f;
|
||
public float jumpForce = 10f;
|
||
private Rigidbody rb;
|
||
private bool isGrounded = true;
|
||
|
||
public static int coinCount = 0;
|
||
|
||
void Start()
|
||
{
|
||
rb = GetComponent<Rigidbody>();
|
||
coinCount = 0; // Сбрасываем счетчик при старте
|
||
}
|
||
|
||
void Update()
|
||
{
|
||
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime, Space.World);
|
||
|
||
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
|
||
{
|
||
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
|
||
isGrounded = false;
|
||
}
|
||
}
|
||
|
||
// Обработка столкновений с твердыми объектами
|
||
void OnCollisionEnter(Collision collision)
|
||
{
|
||
if (collision.gameObject.CompareTag("Ground"))
|
||
{
|
||
isGrounded = true;
|
||
}
|
||
else if (collision.gameObject.CompareTag("Obstacle"))
|
||
{
|
||
Debug.Log("Игра окончена!");
|
||
// Перезагружаем текущую сцену
|
||
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
|
||
}
|
||
}
|
||
|
||
// Обработка столкновений с триггерами
|
||
void OnTriggerEnter(Collider other)
|
||
{
|
||
if (other.gameObject.CompareTag("Coin"))
|
||
{
|
||
coinCount++;
|
||
Debug.Log("Монеты: " + coinCount);
|
||
Destroy(other.gameObject); // Уничтожаем монету
|
||
}
|
||
}
|
||
}
|