Как реализовать?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как реализовать?

Сообщение GvillXqz 24 ноя 2017, 01:41

Есть код :
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class (name) : MonoBehaviour
{
    public FadeOut FadeOut;
    public ShakingEffect ShakingEffect;
    public float timetoEarthquake = 10f;
    public float distance = 1f;
    public GameObject FadeCanvas;
    public GameObject EarthPlanet;
    public GameObject EarthPlanetInfected;
    public AudioSource AudioSource;
    public AudioClip Earthquake;
    public bool EarthquakeOn = false;

    void Start()
    {
    }

    void Update()
    {

        if (Input.GetKeyDown(KeyCode.E))
        {
            Ray ray = new Ray(transform.position, transform.forward);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, distance))
            {
                if (hit.collider.CompareTag("Earth"))
                {
                    if (timetoEarthquake <= 0)
                    {
                        EarthquakeOn = true;
                        FadeCanvas.SetActive(true);
                        var FadeOut = gameObject.GetComponent<FadeOut>();
                        FadeOut.enabled = true;
                        AudioSource.PlayOneShot(Earthquake, 1F);
                        var Shake = ShakingEffect.Shake = true;
                        EarthPlanet.SetActive(false);
                        EarthPlanetInfected.SetActive(true);
                    }
                }
            }
        }
    }

Как сделать так,чтобы timetoEarthquake -= Time.deltaTime вычислялся не одноразово по KeyCode.E и хиту по коллайдеру,а пока не будет <= 0
GvillXqz
UNец
 
Сообщения: 1
Зарегистрирован: 24 ноя 2017, 01:01

Re: Как реализовать?

Сообщение Pollux 24 ноя 2017, 01:51

Ввести bool переменную, выставить её true после нажатия кнопки, добавить её проверку в оператор if вместе с Input.GetKeyDown(KeyCode.E) через логический оператор ИЛИ, затем в else условия timetoEarthquake <= 0 обратно возвращать в false
Аватара пользователя
Pollux
UNITрон
 
Сообщения: 276
Зарегистрирован: 01 сен 2016, 22:31

Re: Как реализовать?

Сообщение Woolf 24 ноя 2017, 12:38

За такие названия тем, надо удалять без комментариев.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Как реализовать?

Сообщение Paul Siberdt 24 ноя 2017, 18:34

Всем привет, в последнее время совершенно отбился от форума, зато а у меня появилась новая любимая иконка и подходящее настроение...

Изображение

Топикстартеру советую навести в теме марафет. :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Как реализовать?

Сообщение Cr0c 24 ноя 2017, 18:39

Paul Siberdt писал(а):Всем привет, в последнее время совершенно отбился от форума, зато а у меня появилась новая любимая иконка и подходящее настроение...

Изображение


Лабиринт отражений, про плюсомёт писал(а):Ствол дёргается, и в сторону торговца со свистом летит алый, светящийся, крестообразный предмет. Прибалт пытается пригнуться, но это бесполезно. Модераторы не промахиваются. На рубашке торговца расплывается огненный крест, или, как принято говорить, «плюс». Три таких плюса — и вход в клуб «Анекдоты» будет для него закрыт навсегда.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21