Unity
- 4 ответа
- 0 вопросов
2
Вклад в тег
public class Map : MonoBehaviour
{
public float speed;
void Update()
{
transform.Translate(Vector2.left * (speed * Time.deltaTime)); //Движение объекта
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
{
speed = 0;
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEditor.U2D;
using UnityEngine;
using UnityEngine.SceneManagement;
public class PlayerControl : MonoBehaviour
{
private bool _isAlive = true; // введем булевую переменную указывающую на то, что персонаж жив
public float force;
public float speed;
public Sprite astronaut_2;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Jump();
}
// указываем, что если позиция равна -3, и персонаж не жив (_isAlive не равно true), то перезапускаем сцену
if (!_isAlive && transform.position.y.Equals(-3))
{
SceneManager.LoadScene("level_1");
}
}
void Jump()
{
GetComponent<Rigidbody2D>().velocity = new Vector2(speed, 0f);
GetComponent<Rigidbody2D>().AddForce(Vector2.up * force); //управление персонажа
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "Enemy")
{
GetComponent<Rigidbody2D>().velocity = new Vector2(-7f, 0f);
GetComponent<Rigidbody2D>().AddForce(Vector2.up * 300); //отбрасывание персонажа после соприкосновения с препятсвием
gameObject.GetComponent<SpriteRenderer>().sprite = astronaut_2; //смена спрайта игрока после соприкосновения с препятсвием
_isAlive = false; // после столкновения переключаем переменную в значение false, указывая на то, что персонаж погиб
}
}
}