Пропадает цель для снаряда

Программирование на Юнити.

Re: Пропадает цель для снаряда

Сообщение Heliosis 23 апр 2017, 15:41

Kabanelloo писал(а):Я думал ты его пускаешь )) А он это типо и есть энеми?


Дамми в данном случае будет энеми, да, шар должен лететь к нему, но вместо этого он просто обnullяет target
Heliosis
UNIт
 
Сообщения: 147
Зарегистрирован: 10 фев 2016, 20:50

Re: Пропадает цель для снаряда

Сообщение nik26 23 апр 2017, 15:44

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

кусок инстанса
Синтаксис:
Используется csharp
      if (currentHero != null)
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (hit.collider != null && hit.collider.gameObject.CompareTag("Enemy")) //тут мне проще было поставить тегом
                {
                    Debug.Log("current target" + hit.collider.name);
                    target = hit.collider.gameObject;

                    Ability ab = GameObject.Instantiate(currentHero.abilities[0], currentHero.transform.position, currentHero.transform.rotation);
                    ab.SetTarget(target);
                }
                else
                {
                    target = null;
                }
            }
        }


ps не сразу заметил метода onUse(), но и этот велосипед работает)
Последний раз редактировалось nik26 23 апр 2017, 15:51, всего редактировалось 1 раз.
Аватара пользователя
nik26
UNIт
 
Сообщения: 110
Зарегистрирован: 22 июн 2013, 02:13

Re: Пропадает цель для снаряда

Сообщение Heliosis 23 апр 2017, 15:50

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

кусок инстанса
Синтаксис:
Используется csharp
      if (currentHero != null)
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (hit.collider != null && hit.collider.gameObject.CompareTag("Enemy")) //тут мне проще было поставить тегом
                {
                    Debug.Log("current target" + hit.collider.name);
                    target = hit.collider.gameObject;

                    Ability ab = GameObject.Instantiate(currentHero.abilities[0], currentHero.transform.position, currentHero.transform.rotation);
                    ab.SetTarget(target);
                }
                else
                {
                    target = null;
                }
            }
        }


Так-то все так, но я просто пытался сделать единый код для героя с возможностью призывать разные абилки.
Ведь если я просто буду инстанцировать абилку в коде героя, то я не смогу уже сделать как хотел: перебором всех абилок.
Ну, не хотелось бы писать if (Input.GetKeyDown(KeyCode.Alpha*номер*)) { ... } для каждой абилки в отдельности, или так и надо?..
Heliosis
UNIт
 
Сообщения: 147
Зарегистрирован: 10 фев 2016, 20:50

Re: Пропадает цель для снаряда

Сообщение Kabanelloo 23 апр 2017, 16:08

у меня так молния двигается на хиро , по другому просто нет таргета. Его некто не назначает или я просто мало зная про абстрактный класс.
Синтаксис:
Используется csharp

    public override void SetTarget(GameObject _target)
    {
        target = GameObject.FindGameObjectWithTag("GameController").GetComponent<HeroChooser>().target;
    }

 
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea

Re: Пропадает цель для снаряда

Сообщение nik26 23 апр 2017, 16:10

не совсем понимаю.. приведите пример кода как вы хотите вызывать абилки
Аватара пользователя
nik26
UNIт
 
Сообщения: 110
Зарегистрирован: 22 июн 2013, 02:13

Re: Пропадает цель для снаряда

Сообщение Kabanelloo 23 апр 2017, 16:14

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

только абилки бьют хиро , думаю это не правильно ))) Мало инфы я просто хотел найти таргет , и в разных случаев он есть , просто я не знаю как у него иерархично устроена сцена , и сама идея.

Вот нашел он присваивает таргет через хиро , там же инициализировал массив абилок . Первый в списке Этот шар наследуемый от абилок.

Вроде у него еще код есть который вызывает абилки. ибо не видел ни строчки где абилки по кнопке юзаются . Видимо автоматически .

Синтаксис:
Используется csharp
target = controller.GetComponent<HeroChooser>().target;
 
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea

Re: Пропадает цель для снаряда

Сообщение nik26 23 апр 2017, 16:32

Kabanelloo писал(а):только абилки бьют хиро , думаю это не правильно )))
у него там как класс думми наследуемый от хиро судя по скринам


ну кароч вызов абилок дапустим внутри кода хиро такой:
Синтаксис:
Используется csharp
  protected virtual void Update()
    {
        if (controller == null)
        {
            controller = GameObject.FindGameObjectWithTag("GameController");
        }

        if (controller.GetComponent<HeroChooser>().currentHero == this)
        {
            speed.x = Input.GetAxisRaw("Horizontal") * moveSpeed;
            speed.y = Input.GetAxisRaw("Vertical") * moveSpeed;

            GetComponent<Rigidbody2D>().velocity = speed;

            for (int i = 0; i < 4; i++)
            {
                if (Input.GetKeyDown((i+1).ToString()))
                {
                    abilities[i].SetTarget(target).SetHero(this.gameObject).onUse();
                }
            }
        }
        else
        {
            GetComponent<Rigidbody2D>().velocity = new Vector2();
        }
    }

при выборе цели можно кстати сразу присваивать её хиро
Синтаксис:
Используется csharp
if (currentHero != null)
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (hit.collider != null && hit.collider.gameObject.CompareTag("Enemy"))
                {
                    target = hit.collider.gameObject;
                    currentHero.target = target;
                }
                else
                {
                    target = null;
                }
            }
        }
 

вот тут по красоте можно так сделать
Синтаксис:
Используется csharp
    public override void onUse()
    {
        Instantiate(gameObject, hero.transform.position, Quaternion.identity);
    }

    public override Ability SetTarget(GameObject _target)
    {
        target = _target;
        return this;

    }

    public override Ability SetHero(GameObject _hero)
    {
        hero = _hero;
        return this;
    }

тип делать нечо вот и украсил немножк :D
Аватара пользователя
nik26
UNIт
 
Сообщения: 110
Зарегистрирован: 22 июн 2013, 02:13

Re: Пропадает цель для снаряда

Сообщение Heliosis 23 апр 2017, 18:47

Спасибо всем, но таргет все еще слетает просто так.
Я уже все перепробовал, но ничего не выходит.
Heliosis
UNIт
 
Сообщения: 147
Зарегистрирован: 10 фев 2016, 20:50

Re: Пропадает цель для снаряда

Сообщение nik26 23 апр 2017, 19:12

Heliosis писал(а):Спасибо всем, но таргет все еще слетает просто так.
Я уже все перепробовал, но ничего не выходит.

попробуй открыть этот проект клац
отпишись о результате..
Аватара пользователя
nik26
UNIт
 
Сообщения: 110
Зарегистрирован: 22 июн 2013, 02:13

Re: Пропадает цель для снаряда

Сообщение Heliosis 23 апр 2017, 21:49

nik26 писал(а):
Heliosis писал(а):Спасибо всем, но таргет все еще слетает просто так.
Я уже все перепробовал, но ничего не выходит.

попробуй открыть этот проект клац
отпишись о результате..


Черт, уж точно не знаю, что именно ты там менял (хотя я посмотрю еще, конечно же), но ты охренен, спс огромное)
Heliosis
UNIт
 
Сообщения: 147
Зарегистрирован: 10 фев 2016, 20:50

Re: Пропадает цель для снаряда

Сообщение Heliosis 23 апр 2017, 22:04

О, и да, как убрать скольжение манекена, когда его толкает ГГ?
Heliosis
UNIт
 
Сообщения: 147
Зарегистрирован: 10 фев 2016, 20:50

Пред.

Вернуться в Скрипты

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

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