Результаты поиска
| |
Lertmind | Дата: Четверг, 07 Апреля 2016, 00:25 | Сообщение # 401 | Тема: как повесить кнопку на gameObject |
заслуженный участник
Сейчас нет на сайте
| Цитата dreenline ( ) Ставил персонажей, давал им бокс коллайдер 2д как триггер и добавлял event trigger(pointer down). Чтобы нажать на collider можно использовать MonoBehaviour.OnMouseDown(), но он пробивает сквозь UI. Чтобы работал EventTrigger надо добавить Physics Raycaster на камеру, только надо настроить слои, всё что включено считается как UI элемент и для него будет выполняться EventSystem.current.IsPointerOverGameObject(). Про три способа блокирования кликов сквозь UI здесь рассказано https://www.youtube.com/watch?v=EVZiv7DLU6E.
|
|
| |
Lertmind | Дата: Вторник, 05 Апреля 2016, 09:23 | Сообщение # 402 | Тема: Last Hope TowerDefense |
заслуженный участник
Сейчас нет на сайте
| У тебя не Tower Defense, не стратегия и нет РПГ элементов. Тег Defense подходит, но это не жанр, это скорее Аркада. Про интерфейс: наложи текст внизу на полосы прогресса, чтобы не занимать лишнее место; кнопки Buy должны быть кнопками, а не текстом.
|
|
| |
Lertmind | Дата: Понедельник, 04 Апреля 2016, 21:43 | Сообщение # 403 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| Vicka, с этого надо было начинать, можно изменить верх поворота:
Код transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(SpotTarget.transform.position - transform.position, Vector3.back), // Если камера смотрит по оси Z speed * Time.deltaTime); Но тогда надо держать позицию шара по оси Z на одном уровне с пушкой, чтобы она не поворачивалась вдоль ствола. P.S. Хотя я не понял какой именно ты хочешь результат, нужно объяснять лучше.
Сообщение отредактировал Lertmind - Понедельник, 04 Апреля 2016, 21:48 |
|
| |
Lertmind | Дата: Понедельник, 04 Апреля 2016, 20:46 | Сообщение # 404 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| Цитата Vicka ( ) Вот чей-то за хрень? Создал проект с нуля, добавил твой код, speed поставил 2, у меня поворачивает плавно. Unity 5.3.4f1. Похоже проблема не в коде. На всякий случай: создавал пустой GO со скриптом для точки поворота, дочерними добавлял два куба для ствола и магазина для визуализации. Если кинешь проект, то можно посмотреть.
|
|
| |
Lertmind | Дата: Понедельник, 04 Апреля 2016, 19:49 | Сообщение # 405 | Тема: Сравнить два рисунка и сообщить совпадают ли они- Python |
заслуженный участник
Сейчас нет на сайте
| Написал простое сравнение. Перед try создаю два изображения Surface размером с окно, закрашиваю белым, на одном будет рисоваться ввод пользователя, на другом нарисован эталон линий (в обоих случаях закрашиваю чёрным). По нажатию пробела сравниваю каждый пиксель и подсчитываю сколько пикселей совпадает, сколько не закрашено и сколько закрашено лишнего за границами эталона. Первые два числа при сложении дают сколько всего пикселей у эталона, если первое число разделить на общее число, то получим отношение насколько закрашено, а третье число делённое на общее - отношение ошибки за границами. Если закрашено 100%, но ошибка за границами больше какого-то порога, то значит не удалось.
Код # coding: utf-8 import pygame, random pygame.init() # Определить некоторые цвета black = (0,0,0) white = (255,255,255) green = (0,255,0) red = (255,0,0) blue = (0,0,255) size=[700,500] screen=pygame.display.set_mode(size) pygame.display.set_caption("Obychenie") screen.fill(white)# Очистить экран и установить фон done = False last_pos = (0, 0) color = (black)# цвет отпечатка мыши radius = 2 def roundline(srf, color, start, end, radius): dx = end[0]-start[0] dy = end[1]-start[1] distance = max(abs(dx), abs(dy)) for i in range(distance): x = int( start[0]+float(i)/distance*dx) y = int( start[1]+float(i)/distance*dy) pygame.draw.circle(srf, color, (x, y), radius)
# Surface на котором пользователь рисует sf_input = pygame.Surface(size) sf_input.fill(white) # Surface на котором эталонный рисунок sf_origin = pygame.Surface(size) sf_origin.fill(white) for y_offset in range(10,280,20): pygame.draw.line(sf_origin,black,[280,10+y_offset],[420,20+y_offset],2) for y_offset in range(20,280,20): pygame.draw.line(sf_origin,black,[280,20+y_offset],[420,10+y_offset],2)
try: while True: e = pygame.event.wait() if e.type == pygame.QUIT: raise StopIteration if e.type == pygame.MOUSEBUTTONDOWN: pygame.draw.circle(screen, color, e.pos, radius) # sf_input pygame.draw.circle(sf_input, black, e.pos, radius) done = True if e.type == pygame.MOUSEBUTTONUP: done = False if e.type == pygame.MOUSEMOTION: if done: pygame.draw.circle(screen, color, e.pos, radius) roundline(screen, color, e.pos, last_pos, radius) # sf_input pygame.draw.circle(sf_input, black, e.pos, radius) roundline(sf_input, black, e.pos, last_pos, radius) last_pos = e.pos for y_offset in range(10,280,20): pygame.draw.line(screen,green,[280,10+y_offset],[420,20+y_offset],2) for y_offset in range(20,280,20): pygame.draw.line(screen,green,[280,20+y_offset],[420,10+y_offset],2) pygame.draw.rect(screen,black,[50,20,250,280],2) pygame.draw.rect(screen,black,[400,20,250,280],2) pygame.draw.rect(screen,blue,[280,20,40,280],1) pygame.draw.rect(screen,blue,[380,20,40,280],1)
if e.type == pygame.KEYDOWN: if e.key == pygame.K_SPACE: # Сравнение matched = 0 # Пиксели совпали с эталоном, inside_failure = 0 # не совпали внутри, outside_failure = 0 # ушли за границы for x in range(0, size[0]): for y in range(0, size[1]): color_input = sf_input.get_at((x, y)) color_origin = sf_origin.get_at((x, y)) if color_input == black and color_origin == black: matched += 1 elif color_input == white and color_origin == black: inside_failure += 1 elif color_input == black and color_origin == white: outside_failure += 1 total = matched + inside_failure # Пикселей в эталоне print str.format("{0:.2%}, {1:.2%}", matched / float(total), outside_failure / float(total))
pygame.display.flip() except StopIteration: pass pygame.quit() Добавлено (04 апреля 2016, 19:49) --------------------------------------------- Если нужно подсчитывать на ходу, то необходимо во время ввода подсчитывать.
|
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 20:44 | Сообщение # 406 | Тема: Не могу экспортировать нормально |
заслуженный участник
Сейчас нет на сайте
| Если это работает правильно, то почему нет.
|
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 20:30 | Сообщение # 407 | Тема: Не могу экспортировать нормально |
заслуженный участник
Сейчас нет на сайте
| Цитата ZVEN ( ) А это к чему? Типа модели могут скомуниздить? Просто пример как не надо делать. Нет, это же проект специально для уроков, они выложили его в открытый доступ, но не учли, что не у всех есть Maya.
|
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 20:23 | Сообщение # 408 | Тема: Глюк Gui на разных разрешениях |
заслуженный участник
Сейчас нет на сайте
| Цитата Seymor ( ) http://stackoverflow.com/questions/5021090/screen-width-android Там к Android 2.2, люди уже на Android 6 переходят.
|
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 20:22 | Сообщение # 409 | Тема: Не могу экспортировать нормально |
заслуженный участник
Сейчас нет на сайте
| Вот в общем-то и одна из причин, почему не стоит использовать blend файлы напрямую. В одной серии уроков по Unity от Microsoft эти гении хранили модели в формате от Maya, как будто у всех есть несколько лишних тысяч долларов.
|
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 19:43 | Сообщение # 410 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| Цитата allods ( ) Хз но у меня с массой в 10к при силе в 2000 не вертит ее Ха, там при массе 1000 уже надо силы порядка 10000 или 100000 не помню, чтобы сдвинуть.
Цитата allods ( ) Не шатать а вертеть. Я и говорю, чтобы вертеть надо либо Suspension Distance в 0, либо отключать временно колёса. При этом физический материал не поможет - физика колёс считается отдельно от остальной физики. Так зачем тебе поворот? Поворот будет когда машина неподвижна, в гараже например? В этом случае тебе не нужна физика колёс. Если во время движения, то нужна особая настройка, в таком я не разбираюсь.
Сообщение отредактировал Lertmind - Воскресенье, 03 Апреля 2016, 19:44 |
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 19:29 | Сообщение # 411 | Тема: Не могу экспортировать нормально |
заслуженный участник
Сейчас нет на сайте
| Можно перетащить blend файл в Assets, просто это нежелательно. Добавлено (03 апреля 2016, 19:29) --------------------------------------------- Сейчас заметил, в Unity 5.3.4f1 с Blender 2.77 проблема: Blender could not convert the .blend file to FBX file. You need to use Blender 2.45-2.49 or 2.58 and later versions for direct Blender import to work. Наверно ещё не добавлена поддержка.
|
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 19:08 | Сообщение # 412 | Тема: Не могу экспортировать нормально |
заслуженный участник
Сейчас нет на сайте
| Если ты в Blender не создавал материалы, а просто в UV Editor ставил текстуру через Image -> Open Image, то после того как сунул fbx в Assets у тебя должны создаться материалы по умолчанию (Standard) и тебе надо вручную перетащить текстуры на материалы. Если ты использовал материалы в Blender, то тебе надо сначала перетащить текстуры в Assets, а потом уже fbx, чтобы текстуры связались с материалами. Причём относительный путь не важен, он ищет по названию текстуры. Про Normal и другие не знаю, но основная текстура находится. Ещё в помощь есть плагин для Blender GEX, который должен упрощать экспорт моделей, сам не пробовал ещё.
|
|
| |
Lertmind | Дата: Воскресенье, 03 Апреля 2016, 02:45 | Сообщение # 413 | Тема: Random |
заслуженный участник
Сейчас нет на сайте
| Цитата ShortKedr ( ) Хм... сомнительно. Числа включительно идут min, max, поэтому от 0 до 998 (их же 999, а не 1000) У Random.Range включительно для float, для int максимальное не включительно. Так что там Random.Range(0, 999) должно быть.
|
|
| |
Lertmind | Дата: Суббота, 02 Апреля 2016, 03:58 | Сообщение # 414 | Тема: Its my magic, Skor. |
заслуженный участник
Сейчас нет на сайте
| Цитата dreenline ( ) P.S. как вставлять видео с ютуба прямиком сюда? Код Код [video]https://www.youtube.com/watch?v=3cr6uXUz6yQ[/video]
|
|
| |
Lertmind | Дата: Пятница, 01 Апреля 2016, 20:47 | Сообщение # 415 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| Цитата allods ( ) Нужно повернуть объект через rigidbody.AddRelativeTorque по горизонтали. Ты про ось Y?
Цитата allods ( ) В Unity5 даже с силой 99999м объект просто отказывается вертеться, как будто колеса приклеены. Не правда, я сейчас попробовал. Зависит от массы, у меня масса 100 (колёса по 20) и силы в 100 хватает чтобы расшатать машину:
Код void FixedUpdate() { float turn = Input.GetAxis("Horizontal"); rb.AddRelativeTorque(Vector3.up * 100f * turn); } Можно вообще без учёта массы с ForceMode.Acceleration. Если хочешь "машину на льду", то ставишь Suspension Distance в 0. Я на самом деле не понял зачем тебе машину шатать.
Сообщение отредактировал Lertmind - Пятница, 01 Апреля 2016, 20:49 |
|
| |
Lertmind | Дата: Пятница, 01 Апреля 2016, 03:14 | Сообщение # 416 | Тема: Unity на русском |
заслуженный участник
Сейчас нет на сайте
| Не существует.
|
|
| |
Lertmind | Дата: Пятница, 01 Апреля 2016, 00:54 | Сообщение # 417 | Тема: Вопрос-[ответ] по Unity |
заслуженный участник
Сейчас нет на сайте
| beril, это легко ищется. В C# для маленьких классов надо самому писать Copy/Clone методы, для больших используют сериализацию. Здесь http://stackoverflow.com/questions/78536/deep-cloning-objects пример метода клонирования через сериализацию, класс должен быть с атрибутом Serializable и его поля иметь сериализуемые типы, например int подойдёт, а Vector3 уже нет.
|
|
| |
Lertmind | Дата: Четверг, 31 Марта 2016, 23:53 | Сообщение # 418 | Тема: Photon Cloud |
заслуженный участник
Сейчас нет на сайте
| Надо было на официальной странице смотреть, там написано про использование callback функций при изменении значений https://doc.photonengine.com/en....d-state, в твоём случае OnPhotonCustomRoomPropertiesChanged(Hashtable propertiesThatChanged). Здесь пример использования https://github.com/gabeoch....imer.cs, который должен у тебя лежать в проекте.
Сообщение отредактировал Lertmind - Четверг, 31 Марта 2016, 23:55 |
|
| |
Lertmind | Дата: Четверг, 31 Марта 2016, 23:02 | Сообщение # 419 | Тема: Photon Cloud |
заслуженный участник
Сейчас нет на сайте
| Может это решение http://forum.photonengine.com/discuss....n-lobby? Там написано, что при создании комнаты надо указывать какие свойства обновлять:
Код h = new Hashtable(); h.Add("levelName", chosenLevel); ss = new string[2]; ss[0] = "levelName"; ss[1] = "gameType";
PhotonNetwork.CreateRoom(chosenLevel, true, true, 10, h, ss);
Сообщение отредактировал Lertmind - Четверг, 31 Марта 2016, 23:02 |
|
| |
Lertmind | Дата: Среда, 30 Марта 2016, 21:28 | Сообщение # 420 | Тема: Python(организация рисования движения мыши на pygame ) |
заслуженный участник
Сейчас нет на сайте
| Например код отсюда http://stackoverflow.com/questio....-pygame:
Код import pygame, random
screen = pygame.display.set_mode((800,600))
draw_on = False last_pos = (0, 0) color = (255, 128, 0) radius = 10
def roundline(srf, color, start, end, radius=1): dx = end[0]-start[0] dy = end[1]-start[1] distance = max(abs(dx), abs(dy)) for i in range(distance): x = int( start[0]+float(i)/distance*dx) y = int( start[1]+float(i)/distance*dy) pygame.draw.circle(srf, color, (x, y), radius)
try: while True: e = pygame.event.wait() if e.type == pygame.QUIT: raise StopIteration if e.type == pygame.MOUSEBUTTONDOWN: color = (random.randrange(256), random.randrange(256), random.randrange(256)) pygame.draw.circle(screen, color, e.pos, radius) draw_on = True if e.type == pygame.MOUSEBUTTONUP: draw_on = False if e.type == pygame.MOUSEMOTION: if draw_on: pygame.draw.circle(screen, color, e.pos, radius) roundline(screen, color, e.pos, last_pos, radius) last_pos = e.pos pygame.display.flip()
except StopIteration: pass
pygame.quit()
|
|
| |
|