Результаты поиска
| |
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, В коде я писал с маленькой, вы уж не подумайте 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 ( ) Основы нужно учить) То что в скобках - это параметры Я и так стараюсь прям с самых "низов" начать, но вкапываясь в суть и пытаясь написать что-то возникает много вопросов, поэтому я и "бегу" спрашивать на форум Добавлено (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".
Что же я глупый что ли Пробовал... Все равно не помогает. Остальные объекты - просто текстура перемещенная на сцену.
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 - не впускать дальше |
частый гость
Сейчас нет на сайте
| Ладно, в любом случае спасибо.
|
|
| |
|