| 
	
		
		
			| Результаты поиска |  |  |  | 
| Lertmind | Дата: Суббота, 20 Сентября 2014, 19:25 | Сообщение # 541 | Тема: cant add script |  |   заслуженный участник Сейчас нет на сайте | Ты должен файл назвать так: имя.cs, где имя это название класса (public class characterController : MonoBehaviour {). В данном случае ты скачал с именем "charactercontroller.cs.cs", переименуй в "characterController.cs".
 Добавлено (20.09.2014, 19:25)---------------------------------------------
 Я этот урок тоже читал, автор не предполагал, что человек может не знать, как нужно называть скрипты.
 |  |  |  |  |  | 
| Lertmind | Дата: Суббота, 20 Сентября 2014, 09:14 | Сообщение # 542 | Тема: Размер текстуры отображаемой на экране |  |   заслуженный участник Сейчас нет на сайте | Как вариант: преобразовать точки по углам текстуры в координаты экрана, потом уже легко определить ширину и высоту. Camera.WorldToScreenPoint в помощь. 
 Добавлено (20.09.2014, 09:14)
 ---------------------------------------------
 Скрипт, который работает для спрайта:
 
 Код using UnityEngine; 
 public class Test : MonoBehaviour
 {
 void Start()
 {
 var sr = GetComponent<SpriteRenderer>();
 // Определяем точки в мировых координатах
 Bounds bounds = sr.bounds;
 float top = transform.position.y + bounds.extents.y;
 float right = transform.position.x + bounds.extents.x;
 float bottom = transform.position.y - bounds.extents.y;
 float left = transform.position.x - bounds.extents.x;
 // Размер в пикселях
 Vector3 size = Camera.main.WorldToScreenPoint(new Vector3(right, top, 0))
 - Camera.main.WorldToScreenPoint(new Vector3(left, bottom, 0));
 // Округляем до целых
 size.x = Mathf.Round(size.x); // Ширина
 size.y = Mathf.Round(size.y); // Высота
 Debug.Log(size);
 }
 }
 
 Сообщение отредактировал Lertmind - Суббота, 20 Сентября 2014, 09:15 |  |  |  |  |  | 
| Lertmind | Дата: Среда, 17 Сентября 2014, 11:19 | Сообщение # 543 | Тема: проблемка с collider2d |  |   заслуженный участник Сейчас нет на сайте | А у всех работает, значит твой косяк и никто не поможет тебе с такой недостаточной информацией. |  |  |  |  |  | 
| Lertmind | Дата: Понедельник, 15 Сентября 2014, 01:58 | Сообщение # 544 | Тема: Имитация ландшафта в 2D [libgdx] |  |   заслуженный участник Сейчас нет на сайте | Посмотри скрины к игре OpenTTD, там похожий ландшафт как в генераторе. Если тебе нужен именно такой, то в 2D можно. Можно что-то нагуглить на isometric terrain. Хороших примеров не нашёл, но например здесь есть бесплатный движок на java. Поройся в OpenTTD и похожих тайкунах. |  |  |  |  |  | 
| Lertmind | Дата: Понедельник, 15 Сентября 2014, 01:36 | Сообщение # 545 | Тема: Android Build ошибка |  |   заслуженный участник Сейчас нет на сайте | MANMANA, Eclipse не обязательно ставить, Android SDK Manager доступен через меню программ. Но я тоже думаю, что стоит правильно переставить SDK. 
 dzrone3488, ты всё по инструкции делал?
 Некоторые советуют копируют файлы, которые в ошибках в нужные места. В твоём случае aapt.exe нужно скопировать из C:\Program Files\Android\android-sdk\build-tools\последняя_версия. Такое решение предлагается здесь например.
 |  |  |  |  |  | 
| Lertmind | Дата: Суббота, 13 Сентября 2014, 19:25 | Сообщение # 546 | Тема: Туплю в написании скрипта |  |   заслуженный участник Сейчас нет на сайте | Может в этой строчке obj.transform.position = ray.GetPoint(hit.distance) + new Vector3(0, 0.5f, 0); добавить Clamp? obj.transform.position = ray.GetPoint(Mathf.Clamp(hit.distance, 0f, 2f)) + new Vector3(0, 0.5f, 0);
 Добавлено (13.09.2014, 19:25)---------------------------------------------
 Правда объект будет чуть выше, если дальше смотреть и расстояние чуть другое (потому что луч не параллелен поверхности). В играх от первого лица обычно объект просто перед тобой.
 |  |  |  |  |  | 
| Lertmind | Дата: Пятница, 12 Сентября 2014, 01:58 | Сообщение # 547 | Тема: точный плавный поворот |  |   заслуженный участник Сейчас нет на сайте | Цитата allods (  ) Lertmind, 
 float angle = Mathf.LerpAngle(angle , targetAngle, Time.deltaTime);
 transform.eulerAngles = new Vector3(0, angle, 0);
 
 Этого достаточно
Ничего подобного, твой код работает неправильно, здесь не будет равномерно движения (интерполяция между разными углами) , а в моём коде будет.
 
 У polous правильный код с равномерным движением:
 Перед началом поворота -
 Код Quaternion target = Quaternion.Euler (startAngle_x, startAngle_y + AngleOfRotate, startAngle_z);На каждой итерации -
 Код transform.rotation = Quaternion.RotateTowards (transform.rotation, target, Time.deltaTime * speed); // Здесь deltaTime * speed - это СМЕЩЕНИЕ
 
 Сообщение отредактировал Lertmind - Пятница, 12 Сентября 2014, 01:58 |  |  |  |  |  | 
| Lertmind | Дата: Четверг, 11 Сентября 2014, 21:22 | Сообщение # 548 | Тема: Соединение объектов в форме дуги |  |   заслуженный участник Сейчас нет на сайте | Это гуглится на "blender rounded edges". Ответ например здесь http://blender.stackexchange.com/questio....85#2485. Простой способ Ctrl + B. Или использовать модификатор Bevel. |  |  |  |  |  | 
| Lertmind | Дата: Суббота, 06 Сентября 2014, 02:24 | Сообщение # 549 | Тема: точный плавный поворот |  |   заслуженный участник Сейчас нет на сайте | allods, ты - "молодец", но человеку не помочь этой функцией, если он не знает как правильно должно работать. Ему и надо было показать как надо делать, что я сделал выше. С твоим LerpAngle, надо ещё проделывать такое (не считая ещё таких важных нюансов, как изменение startAngle и targetAngle для повторного поворота):
 
 Код public float rotationSpeed = 0f; // Скорость поворота public float targetAngle = 90f; // Угол на который надо повернуться
 public float startAngle = 0f;
 float journeyTime = 0f;// Времени в движении
 float currentTime = 0f;
 
 void Start()
 {
 journeyTime = targetAngle / rotationSpeed;
 }
 
 void Update()
 {
 currentTime += Time.deltaTime;
 float fracComplete = currentTime / journeyTime;
 float angle = Mathf.LerpAngle(startAngle, targetAngle, fracComplete);
 transform.eulerAngles = new Vector3(0, angle, 0);
 }
По мне здесь больше геморроя.
 
 Правка: minAngle переназвал в startAngle, так понятней.
 
 
 Сообщение отредактировал Lertmind - Пятница, 12 Сентября 2014, 02:27 |  |  |  |  |  | 
| Lertmind | Дата: Суббота, 06 Сентября 2014, 00:51 | Сообщение # 550 | Тема: точный плавный поворот |  |   заслуженный участник Сейчас нет на сайте | Ты просто неправильно делаешь проверку на достижение желаемого угла. Твой последний с Quaternion.Lerp будет двигаться с разной скорость. Мой вариант с transform.Rotate, где скорость поворота одинаковая всегда:
 
 Код public class RotateMe : MonoBehaviour {
 
 public float rotationSpeed = 0f; // Скорость поворота
 public float targetAngle = 0f; // Угол на который надо повернуться
 
 IEnumerator RotateMeNow()
 {
 float currentAngle = 0f;
 while (true)
 {
 float step = rotationSpeed * Time.deltaTime;
 if (currentAngle + step > targetAngle)
 {
 // Докручиваем до нашего угла
 step = targetAngle - currentAngle;
 transform.Rotate(Vector3.up, step);
 break;
 }
 currentAngle += step;
 transform.Rotate(Vector3.up, step);
 yield return null;
 }
 }
 
 void Update()
 {
 if (Input.GetMouseButtonDown(0))
 {
 StartCoroutine(RotateMeNow());
 }
 }
 }
Добавлено (06.09.2014, 00:51)---------------------------------------------
 Если ты не научился работать с корутинами:
 
 Код public class RotateMe : MonoBehaviour {
 public float rotationSpeed = 0f; // Скорость поворота
 public float targetAngle = 0f; // Угол на который надо повернуться
 
 bool goRotatePlr = false;
 float currentAngle = 0f;
 
 void Start()
 {
 goRotatePlr = true;
 }
 
 void Update()
 {
 if (goRotatePlr)
 {
 float step = rotationSpeed * Time.deltaTime;
 if (currentAngle + step > targetAngle)
 {
 // Докручиваем до нашего угла
 step = targetAngle - currentAngle;
 transform.Rotate(Vector3.up, step);
 goRotatePlr = false;
 currentAngle = 0f;
 }
 else
 {
 currentAngle += step;
 transform.Rotate(Vector3.up, step);
 }
 }
 }
 }
 |  |  |  |  |  | 
| Lertmind | Дата: Среда, 03 Сентября 2014, 23:16 | Сообщение # 551 | Тема: Spider Plant [Gamiron №8] |  |   заслуженный участник Сейчас нет на сайте | Портят игру такие баги: 1. Неправильная обработка поиска пути у юнитов: они жутко тупят, застревают.
 2. "Рабочие" неправильно определяют ближайшую "Плавильню", отучить нереально и "Плавильню" не удалить.
 3. Идущий от тебя враг не получает урона, приходиться его преследовать и бить когда он встанет.
 
 Простой вариант решения столкновения рабочих - не проверять у них коллизии. Этот хак/костыль ещё в Starcraft использовали, здесь об этом написано если интересно.
 |  |  |  |  |  | 
| Lertmind | Дата: Среда, 03 Сентября 2014, 22:51 | Сообщение # 552 | Тема: Поиск количества true в массиве в update |  |   заслуженный участник Сейчас нет на сайте | Вообще у тебя проблема с логикой приложения, обычно нет смысла так делать. 
 Но если тебе так хочется:
 
 Код public class Test : MonoBehaviour {
 bool array = new bool[10];
 int count = 0;
 
 void Update()
 {
 int count = 0;
 foreach (bool val in array)
 {
 if (val) count++;
 }
 
 // Используешь переменную count
 // ...
 }
 }
 |  |  |  |  |  | 
| Lertmind | Дата: Среда, 03 Сентября 2014, 01:47 | Сообщение # 553 | Тема: Голосование за проекты конкурса "Gamiron №8" |  |   заслуженный участник Сейчас нет на сайте | Drish - Spider Plant |  |  |  |  |  | 
| Lertmind | Дата: Среда, 03 Сентября 2014, 01:00 | Сообщение # 554 | Тема: Space Conflict [Gamiron #8] |  |   заслуженный участник Сейчас нет на сайте | Шрифт плохочитаемый: сам по себе, курсив так ещё и в верхнем регистре. Верхний регистр стоит применять только в редких случаях, но точно не когда идёт много текста. Для примера, обычный Arial: 
 |  |  |  |  |  | 
| Lertmind | Дата: Четверг, 28 Августа 2014, 23:09 | Сообщение # 555 | Тема: Помогите сделать задержку |  |   заслуженный участник Сейчас нет на сайте | Цитата beril (  ) Используй Таймер или Invoke Это парашный таймер, лучше использовать Coroutine, про который автор темы и говорил, только он не понял как с ним работать. Как с ними работать хорошо написано здесь http://unitypatterns.com/.
 
 Но в данном случае, лучше делать как написал GantZ_Yaka.
 |  |  |  |  |  | 
| Lertmind | Дата: Четверг, 28 Августа 2014, 16:43 | Сообщение # 556 | Тема: Woodcutter Chuck (Аркада) [Android] |  |   заслуженный участник Сейчас нет на сайте | Выдержанно в одном стиле, это радует. Можно было бы добавить ещё вместо дерева что-то: блоки бетона с арматурой вместо веток, дерево из сказки с волшебными бобами, здание с антеннами и вывешенным бельём, космическую станцию (как раз по модулям) с их зеркальными пластинами; так было бы брутальней. |  |  |  |  |  | 
| Lertmind | Дата: Четверг, 28 Августа 2014, 16:24 | Сообщение # 557 | Тема: FastBurger [2d | Haxe | Android] |  |   заслуженный участник Сейчас нет на сайте | Цитата inventrix (  ) Странно, кто нибудь еще не видит скрины?Ага, мне бы теперь развидеть бабу с бородой.
 |  |  |  |  |  | 
| Lertmind | Дата: Среда, 27 Августа 2014, 23:57 | Сообщение # 558 | Тема: Совсем бум бум |  |   заслуженный участник Сейчас нет на сайте | 1. Учить надо английский. 2. Если ты не изучал ЯП, то будет сложно в первый раз. На некоторых язык писать проще, например на C#, Java, JS, Python писать проще, чем на C, C++.
 3. Из движков тебе многие посоветую Unity3D, я тоже. Там С#, поэтому будет хорошо прочитать книгу типа Троелсен - Язык программирования C#. Редактор кода в Unity уже есть, но можно использовать Visual Studio.
 
 А вообще лучше научись гуглить и не захламлять форум элементарными вопросами.
 |  |  |  |  |  | 
| Lertmind | Дата: Среда, 27 Августа 2014, 21:36 | Сообщение # 559 | Тема: Запрет анимации из Update во время воспроизведения другой |  |   заслуженный участник Сейчас нет на сайте | Цитата Там не TakeKatana.TakeKatana, а TakeKatana.KatanaTaking. Я про объявление переменной. public TakeKatana TakeKatana; // Это ваша строчка
 
 Мой способ так себе, нужно делать гибче. Один из хороших способов это "система конечных автоматов" (finite-state machine (FSM)).
 |  |  |  |  |  | 
| Lertmind | Дата: Среда, 27 Августа 2014, 19:36 | Сообщение # 560 | Тема: Запрет анимации из Update во время воспроизведения другой |  |   заслуженный участник Сейчас нет на сайте | Может из-за того, что ты назвал объект класса так же как и класс? public TakeKatana TakeKatana; // Это ужас Хотя даже так должно работать. По твоему коду не видно, что не так. И я не понял, зачем проверять на false, я думал что проверку if (!animation.IsPlaying("KatanaTakeClip")) ты поставишь перед всеми if Joy.
 
 
 Сообщение отредактировал Lertmind - Среда, 27 Августа 2014, 19:49 |  |  |  |  |  
 |