Воскресенье, 24 Ноября 2024, 12:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
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()
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг