Суббота, 20 Апреля 2024, 16:49

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » У меня появилась проблема с моим скриптом (нужна помощь!)
У меня появилась проблема с моим скриптом
KrokoEvilДата: Воскресенье, 08 Сентября 2013, 09:35 | Сообщение # 1
был не раз
Сейчас нет на сайте
я делал скрипт анимации чтобы при 1 нажатие была анимация прицеливание а при 2 нажатие типо он убирает пест ккбы от бедра но у меня там есть проблема в то что он прицеливается но не убирает обратно или при каждом нажатие происходит 1 анимация
в общем вот код
Код
using UnityEngine;
using System.Collections;

public class Aim : MonoBehaviour {
  public Transform GunAim;
  public AnimationClip Aim1;
  public AnimationClip Aim2;
  private float Timeout;
  private int rndAnim;
         //как видите я делал это через Bool но не это не работает (кому не лень можете объяснить как пользоваться переменой Bool или кинте ссылку на описание желательно рус)
  public bool AimTest;
   void Update ()
   {
    if(Input.GetMouseButtonDown(1))
    {
      if(Timeout>0)
     {
      Timeout -= Time.deltaTime;
     }
     if(Input.GetMouseButtonDown(1)&Timeout<=0&AimTest==false)
     {
       Timeout = 0.035f;
      Vector3 DirectionRay = transform.TransformDirection(Vector3.forward);
      RaycastHit Hit;
      rndAnim = Random.Range(0,1);
      if(rndAnim==0)
      {  
       GunAim.animation.Play(Aim1.name);
       AimTest = true;
      }
     if(Input.GetMouseButtonDown(1)&Timeout<=0&AimTest==true)
     {  
       Timeout = 0.035f;
                    //не знаю почему но нижние 2 строки  выводит как ошибку а хотя на самом пистолете также на Лкм стрельба и на R перезарядку также стоит и все пашет а тут выводит ошибку  
      Vector3 DirectionRay = transform.TransformDirection(Vector3.forward);
      RaycastHit Hit;
      rndAnim = Random.Range(0,1);
      if(rndAnim==0)
      {
       GunAim.animation.Play(Aim2.name);
       AimTest = false;
      }
     }
    }
   }
  }
}

Зарание спасибо


http://afraidoflight.ucoz.ru/ Сайт моего проекта (Анонс :D)
NEBRДата: Воскресенье, 08 Сентября 2013, 10:15 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
KrokoEvil, Те две строчки выводят ошибку, потому что ты эти переменные уже объявил чуть выше и они у тебя в этом же блоке. Юнька об этом писала в консоли. Ты копируй что там написано, и через гугл переводчик переводи, будет понятно что это за ошибки. Если ты хочешь в том месте кода выпустить еще один луч, его нужно назвать по другому. И ячейку для хранения объекта с которым он столкнется - тоже по другому назвать. А вообще скрипт нелогичен. Не понимаю зачем нужен рандом анимаций, если их две и по логике первая проигрывается при прицеливании, вторая - после. Рандом тут не нужен... Взял бы какой нибудь тутор на эту тему, разобрал бы его, сделал что нибудь похожее )

King Size #Gamiron12
KrokoEvilДата: Воскресенье, 08 Сентября 2013, 11:51 | Сообщение # 3
был не раз
Сейчас нет на сайте
эм а как мне хотяб реализовать действие при повторном нажатие ?

http://afraidoflight.ucoz.ru/ Сайт моего проекта (Анонс :D)
NEBRДата: Воскресенье, 08 Сентября 2013, 17:42 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
например через булевую переменную. Скрипт на C#

Код

private bool flag = false;
void Update() {
if (Input.GetMouseButtonDown(0)) {
if (flag == false) {
// логика при первом нажатии
flag = true;
}
else if (flag == true) {
// логика при втором нажатии
flag = false;
}
}


King Size #Gamiron12

Сообщение отредактировал NEBR - Воскресенье, 08 Сентября 2013, 17:43
ЛевшаДата: Воскресенье, 08 Сентября 2013, 20:21 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Код
if (flag == false) {
// логика при первом нажатии
flag = true;
}
else if (flag == true) { // если до этого дойдет, то и так ясно что оно true - условие лишнее.
// логика при втором нажатии
flag = false;


smile


X.cor.R (Prologue)

Сообщение отредактировал Левша - Воскресенье, 08 Сентября 2013, 20:22
lentinantДата: Воскресенье, 08 Сентября 2013, 22:11 | Сообщение # 6
ленивый программист
Сейчас нет на сайте
И вообще, були можно записывать как
Код
if(!flag)
{
}
else
{
}


Когда-то тут будут ссылки на крутые проекты. Или нет.
KrokoEvilДата: Понедельник, 09 Сентября 2013, 10:21 | Сообщение # 7
был не раз
Сейчас нет на сайте
Спасибо вам большое biggrin

http://afraidoflight.ucoz.ru/ Сайт моего проекта (Анонс :D)
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » У меня появилась проблема с моим скриптом (нужна помощь!)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг