Суббота, 20 Апреля 2024, 10:28

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » romeo98 [212]
Результаты поиска
romeo98Дата: Четверг, 19 Февраля 2015, 08:59 | Сообщение # 81 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
Vetek, всмысле тупо закрытие окна?
Код
if(Input.GetKeyDown(KeyCode.Escape)
{
Application.Quit();
}


Добавлено (19 февраля 2015, 08:59)
---------------------------------------------
Vip_and_Rip, можно. Другие способы тоже есть, например, через текстовые файлы ( XML, INI ).


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Четверг, 19 Февраля 2015, 09:25
romeo98Дата: Среда, 18 Февраля 2015, 23:09 | Сообщение # 82 | Тема: Движок для создания игр на android/iOS на js
участник
Сейчас нет на сайте
Можно взять Unity3d. Многие могут не одобрить мой совет... Как по мне, так легко и быстро... Там конечно не совем JS, а UnityScript, но это почти одно и тоже... Если есть время разобраться с движком, то согласен насчет кокоса и не придется париться с лицензией и их ограничениями на Unity3d. dry

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Среда, 18 Февраля 2015, 23:11
romeo98Дата: Понедельник, 02 Февраля 2015, 23:23 | Сообщение # 83 | Тема: Изменение меша в realtime
участник
Сейчас нет на сайте
shizofren, а нагрузка не большая будет? Все-таки, грубо говоря целый мир, хоть и не большой... Плюс, это тогда придется каждую гору делать, как отдельный объект, а затем делить на части? Ох мне кажется нагрузка будет... Я приму во внимание этот вариант, но кто-нибудь предложит еще?

Добавлено (02 февраля 2015, 23:23)
---------------------------------------------
Все еще нужны варианты решения задачи...


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Суббота, 31 Января 2015, 23:49
romeo98Дата: Суббота, 31 Января 2015, 22:11 | Сообщение # 84 | Тема: Изменение меша в realtime
участник
Сейчас нет на сайте
Есть у кого-нибудь идеи как лучше это сделать? Мне нужны не столько кратеры, сколько "разрушаемые горы". С каждым поподанием гора должна разрушатся. Как бы это сделать?

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender
romeo98Дата: Пятница, 30 Января 2015, 15:40 | Сообщение # 85 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
Vetek, а скамейка статичная часть карты?

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender
romeo98Дата: Пятница, 30 Января 2015, 08:27 | Сообщение # 86 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
Vetek, программно?
1) сделать массив объектов. Туда добавить 2 объекта и в цикле переберания массива присвоить одну высоту. Псли не программно, то тупо написать в параметре высоты в компоненте transform одно число. :/
2) для начала, на него нужно повесить коллайдер. Можно добавить rigidbody. Теперь объект будет твердым и падать вниз, если внизу другой объект с коллайдером, то он остановится. Опять же, как ты хочешь "положить"?


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Пятница, 30 Января 2015, 08:28
romeo98Дата: Пятница, 30 Января 2015, 08:23 | Сообщение # 87 | Тема: Изменение меша в realtime
участник
Сейчас нет на сайте
Недавно начал разбираться с программной деформацией мешей. Попытался сделать пример: на шаре при столкновении с объектом образуется кратер. Порывшись в интернете нашел код, который я подредактировал под себя. Вот что из этого вышло:
Код

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class PlanetEditor : MonoBehaviour
{
          protected static Transform editorTransform;

          // MESH
          private Mesh mesh;
          private Vector3[] points;
          private Vector3[] vertices;
          private int[] triangles;
          private Vector2[] uvs;

          public float depthLimit = 25;

          public float brushStrength = 0.1f;
          public float brushSize = 1;

          void Start()
          {
              editorTransform = transform;
              mesh = GetComponent<MeshFilter>().mesh;
              Spheriphy();
          }

          void HitCollision(Vector3 colPoint)
          {
              LowerPoint(DefineBrushSize(colPoint), brushStrength);
          }

          void Spheriphy()
          {
              vertices = mesh.vertices;
              triangles = mesh.triangles;
              uvs = mesh.uv;

              mesh.Clear();
              mesh.vertices = vertices;
              mesh.triangles = triangles;
              mesh.uv = uvs;
              mesh.Optimize();
              mesh.RecalculateNormals();
              points = mesh.vertices;

              gameObject.AddComponent<MeshCollider>();
          }

          Vector3 FindNearestPoint(Vector3 point)
          {
              Vector3 nearestPoint = new Vector3();
              float lastDistance = 9999999;

              for (int i = 0; i < points.Length; i++)
              {
                  float distance = Vector3.Distance(point, points[i]);

                  if (distance < lastDistance)
                  {
                      lastDistance = distance;
                      nearestPoint = points[i];
                  }
              }
              return nearestPoint;
          }

          public Vector3[] DefineBrushSize(Vector3 point)
          {
              List<Vector3> brushPoints = new List<Vector3>();
              Vector3 nearestPoint = FindNearestPoint(point);

              for (int i = 0; i < points.Length; i++)
              {
                  float distance = Vector3.Distance(nearestPoint, points[i]);

                  if (distance <= brushSize)
                  {
                      brushPoints.Add(points[i]);
                  }
              }
              return brushPoints.ToArray();
          }

          public void LowerPoint(Vector3[] editPoints, float strength)
          {
              for (int z = 0; z < editPoints.Length; z++)
              {
                  for (int i = 0; i < points.Length; i++)
                  {
                      if (points[i] == editPoints[z])
                      {
                          float pointDistance = Vector3.Distance(points[i], editorTransform.position);

                          if (pointDistance > depthLimit)
                          {
                    for (int v = 0; v < editPoints.Length; v++)
                    {
                        points[i] = points[i].normalized * (pointDistance - strength);
                    }
                          }
                      }
                  }
              }
              UpdateMesh();
          }

          public void UpdateMesh()
          {
              mesh.Clear();
              mesh.vertices = points;
              mesh.triangles = triangles;
              mesh.uv = uvs;
              mesh.Optimize();
              mesh.RecalculateNormals();
              points = mesh.vertices;
          }
}


Код вообще не мой, я просто удалил лишние для моей задачи. Вместе с кодом прилагался меш. Как я предпологаю, этот меш просто сфера с большим числом полигонов, чем стандартная. Я попытался заменить этот меш на свой. Своя моделька вроде бы тоже не малополигональная. Есть отличие в рельефе, тоесть, меш в комплекте просто высокопол. сфера, а у меня рельефная сфера (типо земля с горами). Код на сфере с новым мешом перестал работать - кратеры не образуются. Был бы благодарен, если подскажите более изящное решение (если есть) или поможете с этой проблемой.

P.S. Функция "HitCollision" вызывается извне. Ее вызывает объект, с которым столкнулась сфера и этот объект передает в функцию свои координаты.

Добавлено (30 января 2015, 08:23)
---------------------------------------------
Что? Нет идей?


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Четверг, 29 Января 2015, 01:06
romeo98Дата: Среда, 28 Января 2015, 19:39 | Сообщение # 88 | Тема: Стоимость услуг программиста 2D игры на unity
участник
Сейчас нет на сайте
Здравствуйте!
Я получил предложение сделать 2D игру. Заказчик дает мне 2 месяца на выполнение. Игра не сложная, вот пример https://appsto.re/lv/EGW13.i . Используемый движок Unity3d. Т.к. у меня нет опыта в оплачиваемой работе, хочу посоветоваться с вами. Какую оплату с него возможно взять при успешном выполнении моей задачи? В мои задачи входит только программирование, графику предоставляет он сам. По его словам бюджет не ограничен, но переплачивать не собирается.
Буду благодарен за адекватные и объективные ответы.

PS Риск мошеничества я осознаю и не допущу этого. Так что можете не предупреждать. smile


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender
romeo98Дата: Четверг, 15 Января 2015, 08:21 | Сообщение # 89 | Тема: Игровой компьютер за 1800$ для 4К разрешения
участник
Сейчас нет на сайте
В альтернативе,
RAM - Mushkin Blackline 16GB (2 x 4GB) - почему 16 гб, если 2 по 4? Или я что-то не понимаю в компах? Всмысле, я в реале плохо смыслю в компах. Просто заметил это несходство smile


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender
romeo98Дата: Воскресенье, 11 Января 2015, 17:03 | Сообщение # 90 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
Vip_and_Rip, сделай заглушку или в условии она и стоит?

PS Если не понимаешь о чем я, то заглушка - это bool переменная. Перед тем как включать анимацию проверь, чтобы она была false. Когда включил анимацию, то ставь ее на true. Как я думаю, у тебя условие все время выполняется и анимации включается заново и заново, а "once" отвечает за то, что если ты один раз включил анимацию, то на последнем кадре она остановится. Если бы она не стояла, то анимация играла бы пока ты ее вручную не остановишь. (вроде, я с анимацией давно не работал)


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Воскресенье, 11 Января 2015, 17:08
romeo98Дата: Воскресенье, 11 Января 2015, 16:54 | Сообщение # 91 | Тема: Трудности перевода скрипта from JS to C# - Unity, Unity3D
участник
Сейчас нет на сайте
Код
public ArrayList cells = new ArrayList();          
public ArrayList doorsToCells = new ArrayList();          
public ArrayList imediateCells = new ArrayList();          
public bool testForCells = true;          
public float waitToTestCells = 2f;          
public int stage = 1;          

public GameObject animatedDoor;          
[HideInInspector]          
public bool doorOpen = true;          

void Awake ()           
{          
           doorOpen = true;          
           cells = GameObject.FindGameObjectsWithTag("AIpathCell");          
           doorsToCells.length = cells.length;          
           testForCells = true;          
           waitToTestCells = 2;          
           stage = 1;          
}          

void Update ()           
{          
           if (animatedDoor)          
            doorOpen = animatedDoor.GetComponent<DoorScript>().open;          

           if (testForCells && waitToTestCells <= 0)          
           {          
            for (GameObject imediateCell in imediateCells)          
            {          
             for (int i = 0; i <= cells.length - 1; i++)          
             {          
              if (cells[i] == imediateCell)          
               doorsToCells[i] = 1;          
             }          
            }          
                      
            for (stage = 2; stage <= cells.length; stage++)          
            {          
             for (int i = 0; i <= cells.length - 1; i++)          
             {          
              if (doorsToCells[i] == stage - 1)          
               for (GameObject checkDoor in cells[i].GetComponent<AIpathCellScript>().doors)          
               {          
                if (checkDoor != gameObject)          
                {          
                 for (GameObject checkCell in checkDoor.GetComponent<IpathDoorScript>().imediateCells)          
                 {          
                  for (int j = 0; j <= cells.length - 1; j++)          
                  {          
                   if (cells[j] == checkCell && doorsToCells[j] == null)          
                            doorsToCells[j] = stage;          
                  }          
                 }          
                }          
               }          
             }          
            }          
                      
            testForCells = false;          
            Debug.Log(doorsToCells.ToString());          
           }          
           waitToTestCells -= 1;          
}          

void OnTriggerEnter (Collider other)          
{          
           if (other.tag == "AIpathCell")          
            imediateCells.Add(other.gameObject);          
}


Код не проверял. Возможно будет ошибка. Если будет, то скинь сюда. Мне очень нравится статья на хабре (ЭТА). Если мне нужно сделать какой-то массив или множество, я всегда захожу туда и выбираю тот вариант, который максимально мне подходит.


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Воскресенье, 11 Января 2015, 17:01
romeo98Дата: Пятница, 09 Января 2015, 19:00 | Сообщение # 92 | Тема: Направление вектора относительно поворота камеры [РЕШЕНО]
участник
Сейчас нет на сайте
Есть объект, который находится на поверхности шара. Есть камера, которая вращается вокруг этого же шара. Камера имеет разную позицию и разный поворот, но все время смотрит в сторону шара (типо вид сверху). Я получаю с джойстика данные о стикере и хочу подвинуть этот объект относительно сторон камеры. То есть, допустим, я смотрю в экран и вижу объект. Стикер повел вверх и объект подвинулся для моих глаз вверх, но мировые координаты не являются таковыми (Y не верх в данном положении камеры и объекта). Как преобразовать вектор на который я хочу подвинуть объект в вектор относительно камеры.

Например:
Код
                        
Vector3 данные_с_джойстика = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0) * допустимое_расстояние;
                        
//мы знаем, что нужный вектор это Camera.main.transform.up

transform.position = позиция_включающая_данные_с_джойстика_относительно_Camera.main.transform.up;


PS мне нужно, чтобы этот объект не передвигался все время, а находился в области, где макс. радиус от начальной точки - допустимое_расстояние.

Что-то не приходит в голову решение. Прошу помочь. А так же, извините за такое сложно объяснение.

Добавлено (09 января 2015, 19:00)
---------------------------------------------
Cделал так:

Код
Vector3 данные_с_джойстика = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0) * допустимое_расстояние;

transform.position = начальная_позиция + (данные_с_джойстика.y * Camera.main.transform.up) + (данные_с_джойстика.x * Camera.main.transform.right);


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Пятница, 09 Января 2015, 19:36
romeo98Дата: Вторник, 06 Января 2015, 21:09 | Сообщение # 93 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
LuckeR, у перенесенного объекта не изменен scale?

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Вторник, 06 Января 2015, 22:45
romeo98Дата: Пятница, 02 Января 2015, 15:18 | Сообщение # 94 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
nektoi, внеси переключение флага falling в true под условие выше.

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Пятница, 02 Января 2015, 15:19
romeo98Дата: Вторник, 30 Декабря 2014, 14:58 | Сообщение # 95 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
andarky,
Может твой игрок выше 900 метров? Попробуй убрать значение длины луча. Если не помогло, то попробуй в скрипте явно установить переменную дистанции до земли в float. Может компилятор думает, что он int. Может т.к. расстояние до земли меньше 1, то компилятор округлает значение до целого числа, до нуля.


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Вторник, 30 Декабря 2014, 15:06
romeo98Дата: Среда, 24 Декабря 2014, 18:27 | Сообщение # 96 | Тема: Проблема с сокращенным скриптом Joystick из Simple Assets
участник
Сейчас нет на сайте
Решил избавится от лишнего, по моему мнению, кода Joystick´a в новом ассете Sample Assets (Standart Assets хотят потом заменить им).

Вышел один скрипт без всяких унаследований и лишних пространств имен (только интерфейсы EventSystems).
Код

using UnityEngine;
using UnityEngine.EventSystems;

public class VJoystick : MonoBehaviour, IPointerUpHandler, IPointerDownHandler, IDragHandler
{

           public int MovementRange = 100;

           [HideInInspector] public static float x;
           [HideInInspector] public static float y;

           public enum AxisOption
           {                    // Options for which axes to use                          
               Both,                    // Use both
               OnlyHorizontal,                    // Only horizontal
               OnlyVertical                    // Only vertical
           }

           public AxisOption axesToUse = AxisOption.Both;   // The options for the axes that the still will use
                  
           private Vector3 startPos;
           private bool useX;                    // Toggle for using the x axis
           private bool useY;                    // Toggle for using the Y axis

           void Start()
           {

               startPos = transform.position;

               // set axes to use
               useX = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyHorizontal);
               useY = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyVertical);

           }

           private void UpdateVirtualAxes(Vector3 value)
           {

               var delta = startPos - value;
               delta.y = -delta.y;
               delta /= MovementRange;
               if (useX)
                   x = -delta.x;

               if (useY)
                   y = delta.y;

           }

           public void OnDrag(PointerEventData data)
           {

               Vector3 newPos = Vector3.zero;

               if (useX)
               {
                   int delta = (int)(data.position.x - startPos.x);
                   delta = Mathf.Clamp(delta, -MovementRange, MovementRange);
                   newPos.x = delta;
               }

               if (useY)
               {
                   int delta = (int)(data.position.y - startPos.y);
                   delta = Mathf.Clamp(delta, -MovementRange, MovementRange);
                   newPos.y = delta;
               }
               transform.position = new Vector3(startPos.x + newPos.x, startPos.y + newPos.y, startPos.z + newPos.z);
               UpdateVirtualAxes(transform.position);
           }

           public void OnPointerUp(PointerEventData data)
           {
               transform.position = startPos;
               UpdateVirtualAxes(startPos);
           }

           public void OnPointerDown(PointerEventData data)
           {
           }

}


Проблема в том, что джойстик уже на мобильном тесте игры слишком ограничен и не реагирует на значение переменной Movement Range. По идеи, чем больше Movement Range, тем дальше от начальной точки я могу подвинуть джойстик, но на практике не так. Используя родной скрипт (без моего сокращения) была такая же проблема. В Editor все работает правильно.

Добавлено (24 декабря 2014, 18:27)
---------------------------------------------
Я понял! На мобилке требуется число на много больше, чем в Editor. В editor мне достаточно поставить в переменную Movement Range 35, а для мобилки 250... тогда будет все ок...


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Среда, 24 Декабря 2014, 18:12
romeo98Дата: Среда, 24 Декабря 2014, 16:46 | Сообщение # 97 | Тема: Книги по созданию игр от Романа Сакутина
участник
Сейчас нет на сайте
Ho_Sung_Pak, я еще раз скажу, что у него ничего не покупал, но видел его канал на youtube. Я не думаю, что он мошенник.

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Среда, 24 Декабря 2014, 16:46
romeo98Дата: Среда, 24 Декабря 2014, 16:40 | Сообщение # 98 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
Цитата Vip_and_Rip ()

Ответ капитанский конечно, но причина в одном из стандартных скриптов. Наверняка там стоит ограничение на градусы какое нибудь

Очевидно, да. Проблема решилась написанием нового скрипта управления.

Только возник новый вопрос. По прежнему изометрия, вид сверху, как в rpg конца 80х годов. Персонаж представлен двухмерной плашкой, на которую натянута текстура. Как сделать, что бы эта плашка (т.е персонаж) не проходила сквозь стены? Игра большей частью в 3d, потому 2d коллайдеры не панацея. Так же не действует натягивание на плашку box-collader'a. Какие есть варианты?


Всмысле, большей частью 3D? Там 3D модели или что? А так же, какие именно возникают проблемы, когда натягиваешь boxcollider?


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender
romeo98Дата: Среда, 24 Декабря 2014, 16:35 | Сообщение # 99 | Тема: Книги по созданию игр от Романа Сакутина
участник
Сейчас нет на сайте
Ты спрашиваешь, стоит ли покупать эти книги? Я их не читал. Я бы их и не купил. Как я понял, они для начинающих: быстрый старт и тд. Сейчас стартануть можно и на youtube, и используя разные статьи в интернете. Я, честно говоря, не уверен, что он скажит что-то, чего нету в бесплатных уроках. Если бы это были какие-то уроки по проф. программированию, то можно было бы подумать, а так.... Но это лично мое мнение wink

Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Среда, 24 Декабря 2014, 16:36
romeo98Дата: Вторник, 23 Декабря 2014, 19:35 | Сообщение # 100 | Тема: [Mobile-Online] Без названия
участник
Сейчас нет на сайте
Выглядит не плохо. Конечно, идея не новая, но популярная на сегодняшний день. С нуля пишешь серверную часть или используешь что-нибудь?

PS вид таких игр - изометрия или 2,5D (не вид сверху). Это так, чтобы знал wink


Flist - social platform
PuzzleSystem - Open-source Unity Asset
[2D] Mission: Defender


Сообщение отредактировал romeo98 - Вторник, 23 Декабря 2014, 19:37
Форум игроделов » Записи участника » romeo98 [212]
Поиск:

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