Результаты поиска
| |
VerdCS | Дата: Вторник, 28 Февраля 2017, 21:53 | Сообщение # 1 | Тема: Помогите пожалуйста настроить управление! |
частый гость
Сейчас нет на сайте
| Skorb, исходя из того что для прыжка вы используете Rigidbody2D.velocity, попытаюсь предположить что вам нужен контроллер на основе встроенной физики. Посмотрите как такой тип контроллера делается в официальном уроке по Юнити 2D Character Controllers.
Что касается окна, идея такова:
1. Создаёте и настраиваете, в редакторе, UI элемент со всем необходимым вам функционалом, то есть нужное вам окно. 2. Из скрипта, в Awake (), вы отключаете GameObject этого окна GameObject.SetActive. 3. При получении урона игроком проверяете что количество его жизни меньше допустимого предела и если это так включаете окно тем же способом.
Сообщение отредактировал VerdCS - Вторник, 28 Февраля 2017, 21:54 |
|
| |
VerdCS | Дата: Суббота, 25 Февраля 2017, 13:56 | Сообщение # 2 | Тема: Блики на краях текстур |
частый гость
Сейчас нет на сайте
| pRecon, попробую. Изначально текстура была полностью белая. Затем на эту текстуру были наложены рёбра развётки и уже по этим линиям рисовались текстура модели. Однако некоторые участки оказались свободными от развёртки и мы оставили их белыми. В результате уже в движке и именно при просмотре через камеру начали появляться белые швы на местах стыков полигонов. Похоже что точность наложения текстуры падала и на модель начинали попадать те участки текстуры, которые остались белыми, потому что не должны были быть использованы. Но дело тут было вовсе не в движке.
На ваших скриншотах явно видно что блики появляются на стыках полигонов. Это похоже на ошибку при наложении текстуры. Как если бы часть модели осталась без текстуры.
Проблема действительно может быть в картах нормалей.
Вы не используете какие либо фильтры для камеры, или скрипты связанны с постообработкой?
Возможно это будет вам полезно http://answers.unity3d.com/questions/10302/messy-alpha-problem-white-around-edges.html
Сообщение отредактировал VerdCS - Суббота, 25 Февраля 2017, 14:06 |
|
| |
VerdCS | Дата: Суббота, 25 Февраля 2017, 12:45 | Сообщение # 3 | Тема: Блики на краях текстур |
частый гость
Сейчас нет на сайте
| pRecon, ммм, это очень мне напоминает один баг с которым я сталкивался ранее. Но в тот раз был не террейн а импортированная модель персонажа. Суть была в том что на стыках швов развёрстки, там где развёрстка граничила с белым фоном текстуры, швы начинали бликовать белым. При этом проблема наблюдалась только при просмотре через игровую камеру. В 3D редакторе и в сцене всё выглядело нормально. Частично проблема решалась увеличением качества картинки (сглаживние, меньшее сжатие и прочее). Окончательно она решилась тем что цвет заднего фона текстуры, был изменён на близкий к цвету текстуры. В вашем случая я вижу тоже что видел и там. Как будто рёбра развёрстки при отрисовке залезают за границы текстуры. Возможно вам стоит поискать в этом направлении. Но я ничего не нашёл по этому поводу.
|
|
| |
VerdCS | Дата: Суббота, 25 Февраля 2017, 12:27 | Сообщение # 4 | Тема: Блики на краях текстур |
частый гость
Сейчас нет на сайте
| pRecon, я правильно понимаю что рисуете вы на терейне?
|
|
| |
VerdCS | Дата: Суббота, 25 Февраля 2017, 11:10 | Сообщение # 5 | Тема: Блики на краях текстур |
частый гость
Сейчас нет на сайте
| pRecon, можете показать изображение текстуры?
|
|
| |
VerdCS | Дата: Пятница, 17 Февраля 2017, 20:20 | Сообщение # 6 | Тема: Raycast All |
частый гость
Сейчас нет на сайте
| RebyataYaNeShary, скорее всего дело в том что луч выпущенный методом Physics.RaycastAll(StartRay, FinalRay, 100.0f), не касается искомых объектов.
Метод Debug.DrawLine(StartRay, FinalRay, Color.red); рисует не луч, а прямую линию между двумя координатами. Он не подходит для вашей задачи и показывает ложный результат.
Добавьте строку Debug.DrawRay (StartRay, FinalRay.normalized * 100f, Color.cyan); что бы увидеть реальное направление и длину луча.
Ещё один момент. StartRay это действительно координата начала луча. FinalRay это не "вектор конца рэйкаста", это вектор направления луча. Луч, испускается из точки StartRay, по направлению FinalRay. Поскольку FinalRay это вектор направления, он нормализуется перед применением.
Сообщение отредактировал VerdCS - Пятница, 17 Февраля 2017, 20:21 |
|
| |
VerdCS | Дата: Воскресенье, 12 Февраля 2017, 01:18 | Сообщение # 7 | Тема: Движение перонажа в 2D на определенном участке |
частый гость
Сейчас нет на сайте
| EchoIT,
Цитата EchoIT ( ) Зато увеличивают желание разобраться самому. Если бы в своё время на другом форуме меня несколько не послали на три буквы за приставания по поводу добавления новой фракции в игру S.T.A.L.K.E.R., я бы скорее всего сейчас не занимался геймдевом вообще.
Так никогда и не знаешь как оно повернётся, иногда достаточно показать как это делается, иногда просто направить мысль в нужное русло, а иногда лучше всего дать пинка и оно само пойдёт . А уж что из этого получиться никто не знает.
Rean,
Согласен, плавали все. И будем плавать. Новички никуда не денутся и их масса всегда будет основной, пока движок будет жить. Выход только один, запереться и всех игнорировать. Отвечать никто не заставляет. Вы не соглашаетесь, но мы друг другу не и противоречим. Мир работает не так потому что он работает сложнее. Как вы сказали вариантов много и сделать всё своими силами это лишь опция. Выбор за человеком. Рано или поздно возникнет ситуация когда единственным вариантом останется взять и разобраться во всём самому. И она возникнет независимо от того будем мы её создавать искусственно или нет. Готовых рецептов не так много как кажется, и не многие согласятся решать чужие проблемы бесплатно, когда они действительно станут сложными. Просто я считаю что не стоит предвзято относиться к новому человеку, особенно если он вполне адекватно задаёт вопрос, только из-за того что мы уже видим к чему это может привести.
URGINSAN,
Позор мне, стараюсь вычитывать текст, но всё равно упускаю такие моменты.
|
|
| |
VerdCS | Дата: Суббота, 11 Февраля 2017, 19:25 | Сообщение # 8 | Тема: Движение перонажа в 2D на определенном участке |
частый гость
Сейчас нет на сайте
| Поддерживаю посыл комментаторов выше. Как говориться "дай человеку рыбу и он будет сыт один день, научи человека рыбачить и он будет сыт всю жизнь". Только реальность так не работает. Мы все используем готовые движки и специализированные API вместо того что бы писать свои, тогда когда этого действительно не требуется. Потому цель всегда важнее средств которыми она достигается. Не факт что человеку нужно становиться специалистом по Unity и мастером по C#, что бы решить ту задачу которая перед ним возникла сию минуту. Каждый сам для себя решает каким путём идти. Если человек решил прийти на форум и задать вопрос, за что его судить? Не ради этого ли форум создавался? Никто не любит нравоучения, они только провоцируют людей на конфликт и отбивают желание снова обращаться к сообществу.
|
|
| |
VerdCS | Дата: Суббота, 11 Февраля 2017, 18:05 | Сообщение # 9 | Тема: Движение перонажа в 2D на определенном участке |
частый гость
Сейчас нет на сайте
| Kxarog, убедитесь в том что перемещение персонажа осуществляется именно в FixedUpdate и с помощью метода rigidbody2D.MovePosition; убедитесь что в настройках компонента rigidbody2D параметры Interpolate и CollisionDetection установлены в положение Interpolate и Continuous соответственно.
|
|
| |
VerdCS | Дата: Суббота, 11 Февраля 2017, 17:39 | Сообщение # 10 | Тема: Движение перонажа в 2D на определенном участке |
частый гость
Сейчас нет на сайте
| Kxarog, не за что. Помогло ли это решение?
Что касается других вариантов... они конечно есть, и их довольно много, но все они сложнее и сложнее, вплоть до своей собственной физической системы. Альтернативного но такого же простого варианта в голову не приходит.
|
|
| |
VerdCS | Дата: Суббота, 11 Февраля 2017, 15:47 | Сообщение # 11 | Тема: Движение перонажа в 2D на определенном участке |
частый гость
Сейчас нет на сайте
| Настраиваете сцену так что бы коллайдеры ограничивали непроходимые участки. http://s1.uploadpics.ru/images/bJRPraiogz.png
Создаёте игрока с коллайдером и rigidbody2D, rigidbody настраиваете так как на скрине http://s1.uploadpics.ru/images/W1oPrpiilf.png
Перемещаете rigidbody игрока скриптом в FixedUpdate http://s1.uploadpics.ru/images/-youHaijlf.png
|
|
| |
VerdCS | Дата: Вторник, 05 Апреля 2016, 17:45 | Сообщение # 12 | Тема: Не пойму причину ошибки |
частый гость
Сейчас нет на сайте
| ik содержит null, либо GameObject.FindGameObjectWithTag("Player") не нашла ни одного объекта с указанным тегом, либо нашла но у найденного объекта нет компонента IKCtrl
|
|
| |
VerdCS | Дата: Среда, 23 Марта 2016, 15:40 | Сообщение # 13 | Тема: Переход на другой уровень при наборе определенного числа |
частый гость
Сейчас нет на сайте
| Сейчас Application.LoadLevel считается устаревшим. Нужно подключать UnityEngine.SceneManagement и использовать SceneManager.LoadScene();
Код using UnityEngine.SceneManagement;
if (count > 100) { SceneManager.LoadScene("SceneName"); }
|
|
| |
VerdCS | Дата: Четверг, 17 Марта 2016, 20:37 | Сообщение # 14 | Тема: collider |
частый гость
Сейчас нет на сайте
| shustr1k76, если я правильно понял у префаба игрока, есть дочерний объект, с компонентом Text. Этот компоненты вы перетянули в поле переменной countText у префаба игрока. Если это так то во первых countText = GetComponent<Text>(); инициализирует переменную значением null, и приведёт к ошибке, поэтому эту строчку нужно изъять; во вторых уничтожая клон префаба методом Destroy (gameObject), вы так же уничтожаете дочерний объект с его текстом, и поэтому не увидите изменений. Что бы всё сработало клон префаба, при создании, должен каким то образом инициализировать переменную countText, объектом который уже находиться внутри сцены и от этого клона никак не зависит. Попробуйте сделать так: добавьте в сцену пустой объект. На этот объект добавьте следующий скрипт.
Код using UnityEngine; using UnityEngine.UI; using System.Collections;
public class Test : MonoBehaviour { public Text countText; int globalCount = 0;
public static Test current;
void Start () { current = this; }
public void IncrementCount () { globalCount++; countText.text = globalCount.ToString (); print(globalCount); } }
Соответственно в переменную countText перетяните нужный вам Text из сцены. Метод GetPunch () тоже нужно изменить:
Код void GetPunch () { counter--;
print (counter); if (counter <= 0) { count = count + 1; Test.current.IncrementCount (); Destroy (gameObject); } }
Убедитесь что переменная countText, в скрипте Test, инициализирована.
Сообщение отредактировал VerdCS - Четверг, 17 Марта 2016, 20:37 |
|
| |
VerdCS | Дата: Четверг, 17 Марта 2016, 08:01 | Сообщение # 15 | Тема: collider |
частый гость
Сейчас нет на сайте
| shustr1k76, Наверное переменная countText ничего не содержит. Попробуй добавить в конце Start() следующую строку:
Код void Start () { /// print ("countText содержит: " + countText); }
Если countText содержит null, значит на том объекте, на котором весит скрипт, нет компонента Text, и метод -
Код countText = GetComponent<Text>(); , не найдя ничего, присваивает countText значение - null
Попробуй удалить эту строку, и в самом инспекторе вручную указать переменной countText нужный Text-компонент.
|
|
| |
VerdCS | Дата: Воскресенье, 13 Марта 2016, 22:18 | Сообщение # 16 | Тема: collider |
частый гость
Сейчас нет на сайте
| shustr1k76, попробуй так:
Код void GetPunch() { counter--;
print (counter); if (counter <= 0) { count = count + 1; countText.text = count.ToString (); Destroy (gameObject); } }
|
|
| |
VerdCS | Дата: Воскресенье, 06 Марта 2016, 15:44 | Сообщение # 17 | Тема: Доступ к объекту производного класса из базового C# |
частый гость
Сейчас нет на сайте
| OpenGOO, Да, как вариант. Спасибо.
|
|
| |
VerdCS | Дата: Воскресенье, 06 Марта 2016, 13:35 | Сообщение # 18 | Тема: Доступ к объекту производного класса из базового C# |
частый гость
Сейчас нет на сайте
| В первый раз сталкиваюсь с такой задачей. Меня интересует есть ли варианты решения, о которых я, возможно, не знаю.
Есть объект Collider2D, полученный любым из возможных способов; Нужно получить доступ к полям объекта, производного, от этого объекта (BoxCollider2D, CircleCollider2D и т.д.).
Моё решение.
Код Collider2D collider = Physics2D.OverlapArea (pointA, pointB);
if (collider is BoxCollider2D) {
BoxCollider2D box = collider.GetComponent<BoxCollider2D> (); //Делаем что-то с box
} else if (collider is PolygonCollider2D) {
PolygonCollider2D poly = collider.GetComponent<PolygonCollider2D > (); //Делаем что-то с poly }
Проблема в том что GetComponent возвращает первый попавшийся компонент и если на GO будет несколько BoxCollider2D, то возвращаться будет всегда первый.
Есть идеи?
|
|
| |
VerdCS | Дата: Понедельник, 29 Февраля 2016, 22:13 | Сообщение # 19 | Тема: Scrollbar |
частый гость
Сейчас нет на сайте
| Вариантов много. Проще всего я думаю добавить на scrollbar компонент Event Trigger. Ну а у Event Trigger добавить события. Например Begin Drag и End Drag. По первому событию отключать вращение камеры, по второму включать. В любом случае событий много, можно подобрать что то под свои требования.
|
|
| |
VerdCS | Дата: Пятница, 26 Февраля 2016, 23:24 | Сообщение # 20 | Тема: Поворот и направление движения 2D |
частый гость
Сейчас нет на сайте
| Не знаю как у вас реализован интерфейс. Добавьте скрип, в качестве компонента, к пуле.
Код using UnityEngine; using System.Collections;
public class LinerMovement : MonoBehaviour, IMovement { bool IsAlreadyFired = false;
public void Move(GameObject entity) { if (!IsAlreadyFired) { //entity.transform.Translate(entity.transform.up * Time.deltaTime); // не понятное направление //entity.GetComponent<Rigidbody2D>().AddForce(entity.transform.up * 1000); // всё работает как нужно //IsAlreadyFired = true; } } void Update () { transform.position += transform.up * Time.deltaTime; } }
Сообщение отредактировал VerdCS - Пятница, 26 Февраля 2016, 23:36 |
|
| |
|