Бозингар, в основном потому что такой способ движения. Rigidbody2d.MovePosition для физики это грубая телепортация без скорости. Фактически ты переустанавливаешь объект в новые позиции, а не задаешь ему скорость. Для Rigidbody скороость это причина движения, а не результат, т.е. если она есть то координаты будут сами меняться, но переустановка в новую позицию не создает скорость. Вобщем, если нужен спидометр - его придется написать самому. Как разность векторов позиции прошлого и этого кадра делить на Time.deltaTime, например. Есть подозрение что Rigidbody там лишний, присваивать координаты можно и без физики, а так ты этим самым присваиванием будешь затирать любые попытки физ движка сдвинуть ГО куда он считает правильным.
Была у меня попытка реализоать веревку на джоинтах, в качестве одной из проблем - неадекватное поведение когда веревка слишком растянута. Боролся как раз с помощью подавления Rigidbody физики тупым присваиванием transform.position так чтобы все частицы находились на одной линии, а силы рассчитывались вручную и прилагались только к концам веревки. Но если веревка снова сокращалась до длины меньше критической - интерполировал частицам веревки координаты и скорости и отправлял в свободное плавание на основе Rigidbody физики.
Мораль: или Rigidbody физика или покадровое присваивание координат. Поотдельности работают прекрасно, одновременно - второе подавит все проявления первого.
Здравствуйте. Очень хотелось бы узнать про взаимодействие с UI елементами через свои скрипты, интересует как обращаться в своих скриптах к конкретному объекту UI. К примеру у меня есть skrollbar у которого есть переменные Size, Value.... Подскажите может у кого есть туториалы(на русском) на данную тему или какой то полезный материал. Буду благодарен.
ivan2009, главное подключить модуль UnityEngine.UI . После этого появляются все нужные классы. Например Scrollbar.value - значение положения скроллбара от 0 до 1.
Что я делаю для разработки игры? Собираю простейшую концепцию - строю диздок такой игры, какую пока что попроще. И что дальше? Люди же делают и программирование, и визуализацию в одиночку. Что я должен делать? Учить C# и моделировать коробочки одновременно? Или как? Пожалуйста, опишите с чего начать. Очень хочу начать делать игры, даже пусть то будут простейшие змейки, три в ряд, платформеры, марио, какие то инди хорроры с кривой графой и выживалки с багами налево направо, умоляю, скажите с чего мне начать. Ужасно завидую участникам gamiron 10. Рук нет, есть только кривые культяпки.
Скажите пожалуйста. Вот я хочу использовать скрипт LanguageBaseCS, лежащий на обьекте LanguageBase, а это скрипт GuiTextCS. Как мне с него обратиться к тому скрипту и использовать его переменные string (публичные)
Код
void OnGUI () { languageBase = Find("LanguageBase").GetComponent("LanguageBaseCS") as LanguageBaseCS; GUI.Box (new Rect(Screen.width/2-250,Screen.height/2-150,500,340), (languageBase.menu), grandlabelstyle); if (GUI.Button (new Rect(Screen.width/2-150,Screen.height/2-50,300,40), "New Game", menubutton)) { //Application.LoadLevel(1); Debug.Log ("Pressed ''New Game'', no level to load"); }
Как открыть юнити 4,6 да или любую юнити ниже 5,0 не открывая сам проэкт? Дело в том что раньше этот проэкт был 4,6, перевел его в 5,0 . Нужно открыть юнити 4,6 и начать новый проэкт но эта предлагает downgrade мой проэкт
Нужно открыть юнити 4,6 и начать новый проэкт но эта тварь предлагает downgrade мой проэкт
Удерживая Alt запускай Юньку 4.6 через иконку/вкладку в меню Пуск. Откроется диалоговое окно, в котором ты сможешь создать новый проект. Помни, товарищ! Удерживай Alt, пока не откроется диалог выбора проекта! Ну так, на всякий случай :). Используя эту нехитрую рекомендацию, ты сможешь открывать несколько проектов одновременно/параллельно. http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Здравствуйте.Есть пару вопросов. Ситуация такая персонаж вбегает в определенную зону, когда он в зоне то становится активным UI элемент (текст).На текст хочу сделать коррутину что бы менялась прозрачность текста.И вот тут бока... Скрипты ниже
активация UI элемента
Код
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class TowerSpawn : MonoBehaviour { private bool trigger; public GameObject text;
// Use this for initialization void Start () {
}
// Update is called once per frame void Update () {
if (trigger) { text.SetActive(true); } if (!trigger) { text.SetActive(false); } } public void OnTriggerEnter(Collider myCollider){ if (myCollider.CompareTag ("Player")) { trigger = true; } } public void OnTriggerExit(Collider myCollider){ if (myCollider.CompareTag ("Player")) { trigger = false; } }
}
попытка сделать коррутину на мерцание надписи
Код
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class TextFade : MonoBehaviour { Renderer rend;
Color c; // Use this for initialization void Awake () { gameObject.AddComponent<Renderer> (); rend = gameObject.GetComponent<Renderer> ();
}
// Update is called once per frame void Update () { StartCoroutine ("Fade");
} IEnumerator Fade(){ for (float f = 1f; f>=0; f-=0.1f) { c = rend.material.color; c.a = f; yield return null; } } }
в общем при динамически создаваемом рендерере когда персонаж в зоне активации UI элемента, юнити ругается мол рендерера то нету у обьекта... сам же я не знаю какой рендерер надо лепить на UI элемент, там есть canvasrenderer но у него не доступна rend.material.color; И ещё такая вот штука, по умолчанию UI элемент не активен и как бы я не писал поиск его(в первом скрипте), искал по имени,тэгу, через родителя пробовал... всегда при входе в зону активации юнити ругалось что ссылка на обьект пустая, делаю UI элемент активным по умолчанию...вся работает нормально....решилось это только после того как я ручками перетащил элемент в графу GameObject text. Мне вот интересно почему так. Буду очень признателен за помощь
Здравствуйте.Есть пару вопросов. Ситуация такая персонаж вбегает в определенную зону, когда он в зоне то становится активным UI элемент (текст).На текст хочу сделать коррутину что бы менялась прозрачность текста.И вот тут бока... Скрипты ниже
активация UI элемента Код using UnityEngine; using System.Collections; using UnityEngine.UI;
public class TowerSpawn : MonoBehaviour { private bool trigger; public GameObject text;
// Use this for initialization void Start () {
}
// Update is called once per frame void Update () {
if (trigger) { text.SetActive(true); } if (!trigger) { text.SetActive(false); } } public void OnTriggerEnter(Collider myCollider){ if (myCollider.CompareTag ("Player")) { trigger = true; } } public void OnTriggerExit(Collider myCollider){ if (myCollider.CompareTag ("Player")) { trigger = false; } }
}
попытка сделать коррутину на мерцание надписи Код using UnityEngine; using System.Collections; using UnityEngine.UI;
public class TextFade : MonoBehaviour { Renderer rend;
Color c; // Use this for initialization void Awake () { gameObject.AddComponent<Renderer> (); rend = gameObject.GetComponent<Renderer> ();
}
// Update is called once per frame void Update () { StartCoroutine ("Fade");
} IEnumerator Fade(){ for (float f = 1f; f>=0; f-=0.1f) { c = rend.material.color; c.a = f; yield return null; } } }
в общем при динамически создаваемом рендерере когда персонаж в зоне активации UI элемента, юнити ругается мол рендерера то нету у обьекта... сам же я не знаю какой рендерер надо лепить на UI элемент, там есть canvasrenderer но у него не доступна rend.material.color; И ещё такая вот штука, по умолчанию UI элемент не активен и как бы я не писал поиск его(в первом скрипте), искал по имени,тэгу, через родителя пробовал... всегда при входе в зону активации юнити ругалось что ссылка на обьект пустая, делаю UI элемент активным по умолчанию...вся работает нормально....решилось это только после того как я ручками перетащил элемент в графу GameObject text. Мне вот интересно почему так. Буду очень признателен за помощь
Полазил посмотрел....ток чего то не понял...там у него Notice наследуется от Text, что за текст...это он сам писал скрипт и наследовался от него или же это стандартный класс в библиотеках юнити. Сейчас попробую сделать коррутину такую же... Просто я брал коррутину с документации по движку....
Всем здравствуйте. Не так давно начал работать с Unity. До этого имел дело с клиент/сервер приложением, написанным на as3/php. Всё было предельно ясно... AS3 выступал в роли клиента, а php был сервером. Взаимодействие шло через JSON. Вся логика была на php, клиент только "рисовал" всё что требовалось игре. А как дела обстоят в Unity, если писать сервер на C#? Кто есть кто?
Сообщение отредактировал xrenomonster - Четверг, 13 Августа 2015, 14:34
xrenomonster, C# отлично подходит для написания серверов. Думаю, в интернете предостаточно документации на эту тему: Вот нашел статью на Хабре Рук нет, есть только кривые культяпки.
Dj_FroZTBite, меня интересует именно вопрос разделения на клиент/сервер. Во всех обучалках, что я сейчас нашёл код клиента и сервера пишется в C# и прикрепляется к gameObject в Unity. Как в данном случае определить где клиент, а где сервер? Или тут строгого деления не существует?
Сообщение отредактировал xrenomonster - Четверг, 13 Августа 2015, 14:49
Здравствуйте.Тут такое дело...Есть текст который я сделал дочерним элементом персонажа, и висит он над его головой, только вот он вертится вместе с персонажем,мне надо что бы текст перемещался вместе с ним но не вертелся... скрипт ниже
Код
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class PlayerState : MyPlayerState { public int minAtack =20; public int maxAtack = 30; public float[] critChance = {0.4f, 0.6f}; public float finalDamage; public float critTextTimer = 2; private float timerCoolDown = 2; private Text text; private float atackPause = 1; private float lastTimeAtack = 0;
// Use this for initialization void Start(){ text = GameObject.Find("CritText").GetComponent<Text>(); }