Вот у меня есть код(Без смеха):
void Start()
{
rb = GetComponent<Rigidbody2D>();
fill = 0.5f;
}
// Update is called once per frame
void Update()
{
bar.fillAmount = fill;
}
void OnTriggerEnter2D(Collider2D col)
{
if (col.gameObject.name == "dieCollider")
{
if (transform.position.x > 9.93f)
{
rb.AddForce(new Vector2(+5.0f, 0),ForceMode2D.Impulse);
}
if (transform.position.x < 9.92f)
{
rb.AddForce(new Vector2(-5.0f, 0),ForceMode2D.Impulse);
}
fill = fill - 0.1f;
}
if (fill <= 0)
{
Destroy(gameObject);
Debug.Log("Print");
Application.LoadLevel (Application.loadedLevel);
}
}
void OnTriggerStay2D(Collider2D col)
{
fill = fill - 0.01f;
if (fill <= 0)
{
Destroy(gameObject);
Debug.Log("Print");
Application.LoadLevel (Application.loadedLevel);
}
}
И
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void FixedUpdate()
{
if (Input.GetKey(KeyCode.A))
{
speedX = -horizontalSpeed;
}
else if (Input.GetKey(KeyCode.D))
{
speedX = horizontalSpeed;
}
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(new Vector2(0, verticalImpulse), ForceMode2D.Impulse);
}
if (transform.position.y <= -4.57f)
{
Destroy(gameObject);
}
transform.Translate(speedX, 0, 0);
speedX = 0;
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Ground")
isGrounded = true;
}
private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.tag == "Ground")
isGrounded = false;
}
Как сделать так,чтобы когда персонаж заходил в триггер,и на пару секунд у него блокировалось управление.
Можете попробовать изучить и реализовать паттерн "Состояние". Если коротко - у вас, например, есть отдельный абстрактный класс, отвечающий за обработку ввода (например BaseInputController
). От него наследуются, например DefaultInputController
и StunInputController
, первый имеет стандартную логику передвижения, а второй игнорирует весь ввод (а там уже меняйте, как хотите). Реализация будет какая-нибудь такая (абсолютно случайный пример из головы):
using System;
using System.Collections;
using UnityEngine;
public class Test : MonoBehaviour
{
BaseInputController _currentController;
private void Start()
{
_currentController = new DefaultInputController();
}
private void FixedUpdate()
{
_currentController.UpdateControll();
}
public void DoStun(float duration)
{
_currentController = new StunInputController();
StartCoroutine(DelayedActionRoutine(duration, () => _currentController = new DefaultInputController()));
}
IEnumerator DelayedActionRoutine(float delay, Action action)
{
yield return new WaitForSeconds(delay);
action?.Invoke();
}
abstract class BaseInputController
{
public abstract void UpdateControll();
}
class DefaultInputController : BaseInputController
{
public DefaultInputController() { }
public override void UpdateControll()
{
//Здесь будет обработка управления вашим персонажем. Можете передавать его параметры в конструктор класса и управлять ими здесь
}
}
class StunInputController : BaseInputController
{
public override void UpdateControll()
{
//Можно, например, показывать всплывающее сообщение над персонажем при попытке его сдвинуть
}
}
}
Таким образом можно клепать сколько угодно "особых" состояний-типов-управления и переходить между ними через какие-то условия верхнего класса. Параметры, которые требуется обрабатывать конкретному типу управления можно передавать в его конструктор (например, для базового - можете передавать базовую скорость и прочие параметры)
Сам недавно начал изучать. Я бы сделал так: Получи объект к которому прикреплен скрипт и выключи его
object.GetComponent<NameScript>().enabled = false;
Создай метод в котором включай обратно скрипт спустя пару сек
Invoke("NameMethod", 2f)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пробую так, но выводит undefined:
У меня есть слайдер написанный на slick slider(там есть клавиши переключения, но речь не о них)У меня в макете есть цифры переключения слайдера(картинка...
Я бы хотел сделать 2 фоновое видео на страницуПервое видео фиксируется на указанный период времени, второе после предыдущего и является постоянным