Задать вопрос
@TurtleSigma
Люблю работать

Как сделать так, чтобы после проверки If в Update действие выполнялось 1 раз?

Короче тут смысл в том что пистолет должен поворачиваться вместе с героем, а изменение позиции нужно из-за того что герой при повороте тоже почему-то сдвигается (у меня моделька просто сырая и неправильная). Необязательно решать эту проблему с помощью кода, если можно то и по другому, но мне кажется легче это делать в коде

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotat : MonoBehaviour
{
    public SpriteRenderer Hero;
    public SpriteRenderer Sh;
    private void Update()
    {
        if (Hero.flipX == true)
        {
            Sh.flipX = true;
            transform.position += new Vector3(3, 0);       
        }
        if (Hero.flipX == false)
        {
            Sh.flipX = false;
        }
    }
}
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@DrRen7
думаю проще игрока перевернуть , потому как там скорее всего ещё должны быть трансформы из которых пули летят и тд
float _inputX;
    float _inputLastInput=1;
    private void Update()
    {
        _inputX = Input.GetAxisRaw("Horizontal");
        Mover();
    }

    private void Mover()
    {
        if (_inputX == 0) return;
        if (_inputLastInput != _inputX) RotObj();
        transform.position+=transform.right*Time.deltaTime;
    }
    void RotObj()
    {
        _inputLastInput *= -1;
        float angle = 180;
        if (_inputLastInput == 1) angle = 0;
        transform.rotation = Quaternion.Euler(0,angle,0);
    }
Ответ написан
Комментировать
Denis_16
@Denis_16
Я программист
Если я правильно понял, то можно сделать так!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotat : MonoBehaviour
{
    public SpriteRenderer Hero;
    public SpriteRenderer Sh;

    public bool Blocking = false;

    private void Update()
    {
        if (Blocking == false)
        {
            if (Hero.flipX == true)
            {
                 Sh.flipX = true;
                 transform.position += new Vector3(3, 0);       
            }
            if (Hero.flipX == false)
            {
                 Sh.flipX = false;
            }

            Blocking = true;
        }
    }
}


А потом когда надо Blocking вернуть на false!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы