Суббота, 04 Мая 2024, 19:05

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум игроделов » Записи участника » Knife_Kill [45]
Результаты поиска
Knife_KillДата: Понедельник, 27 Июля 2015, 15:22 | Сообщение # 21 | Тема: Несколько ошибок при создании ИИ
частый гость
Сейчас нет на сайте
Здравствуйте! При создании ИИ у меня появилось несколько ошибок, а именно:


вот весь код, в чем может быть проблема?

Код
using UnityEngine;
using System.Collections;

public class Enemy : MonoBehaviour
{

      public Transform target;
      private NavMeshAgent agent;
      public Transform home;

      // Use this for initialization
      void Start()
      {
          agent = (NavMeshAgent)this.GetComponent("NavMeshAgent");
      }

      // Update is called once per frame
      void Update()
      {
          GameObject go = GameObject.FindGameObjectWithTag("Player");
          agent.SetDestination(target.position);

          if (Vector3.Distance(agent.transform.position, go.transform.position) < 50) //Пробовал так же использовать Vector2, толку ни какого не дало
          {
              target = go.transform;
              transform.LookAt(target);
          }

          else
          {
              target = home;
          }
      }
}

Добавлено (27 июля 2015, 15:22)
---------------------------------------------
На сколько я понимаю, мне нужно настроить сам NavMesh как описано тут, но я этого сделать не могу, т.к. в Navigation можно выбирать только Terrain и объекты с MeshRender, а у меня 2D игра и на объектах висят SpriteMesh...
P.s. Я пытался менять SpriteMesh на MeshRender, но тогда текстуры у объекта пропадали, да и скрипт, вроде, все еще не работал.

Сообщение отредактировал Knife_Kill - Понедельник, 27 Июля 2015, 15:08
Knife_KillДата: Пятница, 24 Июля 2015, 23:40 | Сообщение # 22 | Тема: AddForce не работает
частый гость
Сейчас нет на сайте
MANMANA, seaman, В коде я писал с маленькой, вы уж не подумайте biggrin
beril, Действительно, все дело в массе. Спасибо
Knife_KillДата: Пятница, 24 Июля 2015, 23:27 | Сообщение # 23 | Тема: AddForce не работает
частый гость
Сейчас нет на сайте
beril, Хммм, заработало.
Но почему если я пишу -
Код
gameObject.GetComponent<Rigidbody2D> ().AddForce (Vector2.up * 500);

Оно работает нормально, а если прописываю переменную Jump со значением 500, то оно не работает?
Код
gameObject.GetComponent<Rigidbody2D> ().AddForce (Vector2.up * Jump);

Не могу понять

Добавлено (24 июля 2015, 23:27)
---------------------------------------------
beril, А в целом, спасибо!

Knife_KillДата: Пятница, 24 Июля 2015, 22:40 | Сообщение # 24 | Тема: AddForce не работает
частый гость
Сейчас нет на сайте
beril,
Код
rigidbody2D.AddForce(new Vector2(0f, jump));
- пишет ошибку в Юньке и в Visual Studio
Код
GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, jump));
- ничего не происходит
Knife_KillДата: Пятница, 24 Июля 2015, 18:52 | Сообщение # 25 | Тема: AddForce не работает
частый гость
Сейчас нет на сайте
кое-кто, Да, 5.0.1f1
Knife_KillДата: Пятница, 24 Июля 2015, 17:55 | Сообщение # 26 | Тема: AddForce не работает
частый гость
Сейчас нет на сайте
Здравствуйте, столкнулся с такой проблемой - в новой Юньке AddForce не работает как раньше, почему? И как сейчас можно записать?
Код
using UnityEngine;
using System.Collections;

public class Control : MonoBehaviour {

     public GameObject player;
     public float speed = 2f;
     public float jump = 1.5f;
     public bool jumping;

  // Use this for initialization
  void Start ()
     {
   
  }

     // Update is called once per frame

     void Update ()
     {
         if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
         {
             transform.Translate(Vector3.left * speed * Time.deltaTime, Space.Self);
         }

         else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
         {
             transform.Translate(Vector3.right * speed * Time.deltaTime, Space.Self);
         }

         if(Input.GetKey(KeyCode.W))
         {
             //rigidbody2D.AddForce(new Vector2(0f, jump)); - раньше работало
         }
   
  }
}


П.с. пробовал через GetComponent, но все равно не работает.
Код
GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, jump));
Knife_KillДата: Пятница, 24 Июля 2015, 00:21 | Сообщение # 27 | Тема: Проблемы со скоростью передвижения
частый гость
Сейчас нет на сайте
MANMANA, Хорошо, спасибо, сейчас попробую разобраться
Knife_KillДата: Пятница, 24 Июля 2015, 00:01 | Сообщение # 28 | Тема: Проблемы со скоростью передвижения
частый гость
Сейчас нет на сайте
Здравствуйте, у меня проблема со скоростью передвижения. Вот код:
Код
using UnityEngine;
using System.Collections;

public class controll : MonoBehaviour {

     public float speed = 0.001f;
     public int rotate = 2;

     void Update()
     {

         if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
         {
             transform.Rotate(new Vector3(0, -rotate, 0));
         }

         else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
         {
             transform.Rotate(new Vector3(0, rotate, 0));
         }

         if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
         {
             transform.Translate(new Vector3(0, 0, -speed / 4));
         }

         else if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
         {
             transform.Translate(new Vector3(0, 0, speed/4));
         }
          

     }
}

Суть в том, что какое бы значение для speed я бы не подставлял - объект все равно передвигается на бешенной скорости, но стоит мне speed поделить на 4, как вдруг все становится более-мение плавно. В чем может быть проблема?
Knife_KillДата: Четверг, 08 Января 2015, 01:19 | Сообщение # 29 | Тема: Удаление старого объекта + Collision
частый гость
Сейчас нет на сайте
Цитата beril ()
Вроде того. в локальную переменную go заносим ссылку на только что созданный обьект

Окей, спасибо
Knife_KillДата: Среда, 07 Января 2015, 23:47 | Сообщение # 30 | Тема: Удаление старого объекта + Collision
частый гость
Сейчас нет на сайте
Цитата beril ()
Основы нужно учить) То что в скобках - это параметры

Я и так стараюсь прям с самых "низов" начать, но вкапываясь в суть и пытаясь написать что-то возникает много вопросов, поэтому я и "бегу" спрашивать на форум biggrin

Добавлено (07 января 2015, 23:41)
---------------------------------------------

Цитата MR_Borg ()
В объекте который должен сталкиваться с чем либо пиши

Спасибо, более-мение разобрался

Добавлено (07 января 2015, 23:47)
---------------------------------------------

Цитата beril ()
GameObject go = Instantiate(rock) as GameObject;

Получается, что этой строкой мы объявили еще один ГеймОбъект под названием "go", как бы "присвоили" ему то, что он должен спавнить предметы под названием "rock" и конвертируем это в ГеймОбъект?
Knife_KillДата: Среда, 07 Января 2015, 22:16 | Сообщение # 31 | Тема: Удаление старого объекта + Collision
частый гость
Сейчас нет на сайте
Здравствуйте!
Обучаясь Юньке я где-то у вас на форуме нашел ссылку на урок про Flappy Birds на Юньке, так вот, сделал я все по гайду, все нормально работает. Но я задался вопросом - как удалять объект который "птичка" уже преодолела? (В уроке этого нет)
Ясное дело, что через Destroy, но если я добавлю строчку (смотрите ниже пример) - ничего не происходит, как можно починить?

Код
using UnityEngine;
using System.Collections;

public class Generate : MonoBehaviour {

     public GameObject rock;
     public int score = 0;
         
     void Start ()     
     {
      InvokeRepeating("CreateRock", 1f, 1.5f);
     }
         
     void OnGUI()
     {
      GUI.color = Color.black;
      GUILayout.Label(" Score: " +score.ToString());
     }

     void CreateRock ()     
     {
      Instantiate(rock);
      Destroy(rock, 5); //Эту строчку я добавил
      score++;
     }
}


P.s. Еще я не могу понять как работает Collision (есть ли урок с его описанием?) в документации смотрел - ничерта не понял. А еще больше мне не понятно - как при помощи коллизии проверять столкновение с предметом... (Может быть даже при помощи коллайдера, не могу понять разницы)
P.s.s. Можно ли в коллизию добавить gameObject объявленный в коде (к примеру:)
Код
void OnCollisionEnter(Collision *объект*)
или как это вообще сделать? На сколько я понял после Collision мы объявляем еще одну "переменную", правильно ли я понял?

Зарание благодарю.


Сообщение отредактировал Knife_Kill - Среда, 07 Января 2015, 22:38
Knife_KillДата: Вторник, 06 Января 2015, 18:57 | Сообщение # 32 | Тема: Вопрос-[ответ] по Unity
частый гость
Сейчас нет на сайте
Цитата MR_Borg ()
 if (GUI.Button(new Rect(100, 100, 20, 20), Image))

Т.е. мне нужно вместо Image поставить картинку? Объявить GameObject и прописать его? Получается так?

P.s. Через ГО я пробовал, в итоге "нахимичил", что из всех кнопок работала только одна.ы
Knife_KillДата: Вторник, 06 Января 2015, 17:09 | Сообщение # 33 | Тема: Вопрос-[ответ] по Unity
частый гость
Сейчас нет на сайте
Как можно проверять нажатие на клавишу?
Например есть у меня меню (скрин ниже), и я хочу чтобы при нажатии на эту кнопку происходил переход на другую сцену/выход/переход в меню опций.
Можете, пожалуйста, парочку примеров кода скинуть?
И можно ли как-то сделать через GUI именно эти кнопки? (текстуры)

P.s. Мне нужны примеры, ибо я так и не пойму как проверять нажатие на кнопку (Коллизия? Коллайдер?)

Knife_KillДата: Вторник, 06 Января 2015, 12:20 | Сообщение # 34 | Тема: Шейдеры
частый гость
Сейчас нет на сайте
Цитата FSProduction ()
всё там с этим норм! Просто, ты что-то не так делаешь.
Попробуй отрубить режим Directx11 в настройках плеера. Подобные ошибки бывают и из-за него.

Хорошо, позже попробую
Knife_KillДата: Понедельник, 05 Января 2015, 21:12 | Сообщение # 35 | Тема: Шейдеры
частый гость
Сейчас нет на сайте
Цитата FSProduction ()
а сейчас проблема в том, что шейдер обычный "Diffuse" не умеет работать с прозрачностью.
Используй "Transparent/Diffuse" или "Sprites/Default".


Что же я глупый что ли biggrin Пробовал... Все равно не помогает. Остальные объекты - просто текстура перемещенная на сцену.

P.s. В общем все остальные объекты - созданный спрайт с наложенной текстурой. Сделал так же с деревом - заработало. (Создал спрайт и наложил текстуру)
Но в уроках, да и вообще используют готовый спрайт, где много предметов и при помощи Tilling и т.д. выставляют нужный им "отрезок" - неужели в новой Юньке (версия 4.5 вроде) такая "фича" не "прокатывает" и теперь объекты нужно создавать при помощи GameObject -> Create Other -> Sprite и туда "тыкать" текстуру? Если да - то теперь, получается, что при помощи Tilling выставлять какой-либо кусочек сцены не вариант?


Сообщение отредактировал Knife_Kill - Понедельник, 05 Января 2015, 21:28
Knife_KillДата: Понедельник, 05 Января 2015, 18:09 | Сообщение # 36 | Тема: Шейдеры
частый гость
Сейчас нет на сайте
Цитата allods ()
Убедись что у тебя белый фон с альфой

Специально открыл ФШ и сделал Альфой (видимо, действительно она не был альфой), но все еще хуже стало =D
Теперь если ползунок АльфаКатаут стоит в краю (как на скрине) - то вся текстура коричневая, если я ее кручу в любую сторону - весь предмет прозрачный (не видн вообще ничего)



P.s. так же менял я параметры (делал из 2D спрайта GUI), менял Filtеr Mode и все равно ничего

Добавлено (05 января 2015, 18:09)
---------------------------------------------


Покрутил Tilling и т.д. (в 1000ый раз) - вот что получилось... Но ведь это не дело. Опять же - в чем может быть проблема?


Сообщение отредактировал Knife_Kill - Понедельник, 05 Января 2015, 18:02
Knife_KillДата: Понедельник, 05 Января 2015, 17:02 | Сообщение # 37 | Тема: Шейдеры
частый гость
Сейчас нет на сайте
Цитата FSProduction ()
зайди в папку "Texture" через обозреватель проекта (менеджер файлов, тот что снизу :D), там выбирай нужный файл текстуры и изменяй его свойства.

Окей, спасибо, попробую.
Knife_KillДата: Понедельник, 05 Января 2015, 16:38 | Сообщение # 38 | Тема: Шейдеры
частый гость
Сейчас нет на сайте
Цитата FSProduction ()
в том, что у изображения нужно выбрать параметр "Alpha is transparency" или изменить тип на GUI.

Тип изменял, ничего, а вот параметр не изменял... Где его можно найти?
Knife_KillДата: Понедельник, 05 Января 2015, 15:54 | Сообщение # 39 | Тема: Шейдеры
частый гость
Сейчас нет на сайте
И снова здравствуйте! Проблема заключается в том, что я создал куб и наложил на него текстуру, изменил шейдер на Transporate/Cutout/diffuse но ничего не произошло, в чем может быть проблема? И если можно - скиньте, пожалуйста, книжечку или урок про шейдеры.

P.s. Галочки выделенные фиолетовым пытался включаться/выключать - 0 эффекта. AlfaCutout тоже крутил - и тоже 0 эффекта.

Knife_KillДата: Понедельник, 05 Января 2015, 00:12 | Сообщение # 40 | Тема: Если счет меньше 1 - не впускать дальше
частый гость
Сейчас нет на сайте
Ладно, в любом случае спасибо.
Форум игроделов » Записи участника » Knife_Kill [45]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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