Вторник, 23 Апреля 2024, 23:40

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос-[ответ] по Unity (Задаём свои вопросы)
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • allodsДата: Вторник, 31 Декабря 2013, 17:01 | Сообщение # 5201
    почти ветеран
    Сейчас нет на сайте
    Цитата Riketta ()
    Есть CC, есть объект - вытянутый и узкий.

    Нужно как-то расположить CC для просчета коллизий на этом объекте.


    Может я не так понял но разве не лучше использовать меш коллайдер

    Добавлено (31.12.2013, 17:01)
    ---------------------------------------------
    Как можно сделать следы ног, колес , крови, на земле, стенах? Как то текстуру накладывать прям на поверхность другой. А если текcтура стены повторяющаяся , то и след тоже будет повторятся по всей стене ? Короче кто как делал просто для примера?

    AdomДата: Вторник, 31 Декабря 2013, 17:20 | Сообщение # 5202
    Печенька!
    Сейчас нет на сайте
    allods, Я думаю можно сделать также как и со стрельбой могу свой пример скинуть а там дальше сам мозгуй )
    allodsДата: Вторник, 31 Декабря 2013, 18:57 | Сообщение # 5203
    почти ветеран
    Сейчас нет на сайте
    Какой еще стрельбой? Ты про фейк дырки в стенах?
    AdomДата: Среда, 01 Января 2014, 18:12 | Сообщение # 5204
    Печенька!
    Сейчас нет на сайте
    allods, Ну да по моему принцип тот же )

    Добавлено (01.01.2014, 18:12)
    ---------------------------------------------
    Как можно сделать чтобы при взятии объекта этот объект добавлялся в массив ?
    И еще допустим что этих объектов в массиве много как можно выделить один определенный объект и удалить его ?

    allodsДата: Среда, 01 Января 2014, 23:00 | Сообщение # 5205
    почти ветеран
    Сейчас нет на сайте
    В массив ты добавишь только часть объекта, либо его трансформ либо обжект либо что другое. Сделай с начало сумку куда ты будешь добавлять. В общем ты не с того начал.
    Нужно разработать сами вещи, их черновик как и из чего они будут состоять, после к ним ты сможешь сделать сумку, а потом уже и выкидывание и подбирание и сам крафтинг. А щас ты просто маришся дурью, тебе надо подумать и понять как это все можно устроить.
    RS366Дата: Четверг, 02 Января 2014, 04:03 | Сообщение # 5206
    частый гость
    Сейчас нет на сайте
    Riketta, юзай меш-коллайдер, нужно взаимодействие с другими меш-коллайдерами - галочка на convex.

    AdomДата: Четверг, 02 Января 2014, 21:17 | Сообщение # 5207
    Печенька!
    Сейчас нет на сайте
    Как можно сделать что-бы Игрок как-бы телепортировался к определнному месту как в Dishonored ?
    Или просто толкало игрока в нужную точку


    Сообщение отредактировал Adom - Четверг, 02 Января 2014, 21:26
    PocifikДата: Четверг, 02 Января 2014, 21:53 | Сообщение # 5208
    участник
    Сейчас нет на сайте
    Цитата Adom ()
    Как можно сделать что-бы Игрок как-бы телепортировался к определнному месту как в Dishonored ?
    Или просто толкало игрока в нужную точку

    Издеваешься? Измени его координаты. В чем проблема?
    allodsДата: Четверг, 02 Января 2014, 22:30 | Сообщение # 5209
    почти ветеран
    Сейчас нет на сайте
    Цитата Adom ()
    Как можно сделать что-бы Игрок как-бы телепортировался к определнному месту как в Dishonored ?

    Включи логику wacko
    berilДата: Четверг, 02 Января 2014, 23:21 | Сообщение # 5210
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата Adom ()
    Как можно сделать что-бы Игрок как-бы телепортировался к определнному месту как в Dishonored ?
    Или просто толкало игрока в нужную точку

    Вот чето есть My WebPage




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    LimonchikДата: Воскресенье, 05 Января 2014, 13:20 | Сообщение # 5211
    частый гость
    Сейчас нет на сайте
    Помогите надо нарисовать 5 текстур по порядку,но получается так что рисуется 1 текстура и съезжает в сторону.Думаю что проблема в GUI.DrawTexture т.к он не создает их, а просто прорисовывает.Чем его можно заменить?
    Код

    void Obj()
              {
                      for(i = 0;i<5;i++)
                      {
                              if(it[i].on==true)
                              {
                      Rect vector =new Rect(x,y,it[i].x,it[i].y);
                      GUI.DrawTexture(vector,it[i].piche);
                      x+=it[i].picthe;
                              }
                      }
               }


    Сообщение отредактировал Limonchik - Воскресенье, 05 Января 2014, 14:46
    set16Дата: Воскресенье, 05 Января 2014, 14:18 | Сообщение # 5212
    постоянный участник
    Сейчас нет на сайте
    Тип items, покажите.

    =>The darkness of distant lands [3D]<=
    LimonchikДата: Воскресенье, 05 Января 2014, 15:01 | Сообщение # 5213
    частый гость
    Сейчас нет на сайте
    Ошибся там не items а it
    Код
    public List<id> it = new List<id>();

    Код
    void Obj()     
                  {     
                          for(i = 0;i<5;i++)     
                          {     
                        if(it[i].on==true)     
                        {     
                          Rect vector =new Rect(x,y,it[i].x,it[i].y);     
                          GUI.DrawTexture(vector,it[i].piche);     
                          x+=it[i].picthe;     
                        }     
                          }     
                   }


    Добавлено (05.01.2014, 15:01)
    ---------------------------------------------
    Я пишу инвентарь без ячеек т.е вещи можно было просто перемещать вещи по всему инвентарю. Не знаю как рисовать texture в инвентаре по порядку.
    вот весь скрипт
    (invenary)
    Код
         
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;

    public class Inventory : MonoBehaviour {
        public List<id> it = new List<id>();
        public bool _on=false;
        public GUISkin skin;
        public int i;
        public int x;
        public int y;
        public MouseLook camera;
        Rect vector;
        public MouseLook player;
        void Start () {
        }
        void Update () {
         Screen.showCursor = true;
           
         if(_on)
         {
         camera.enabled=false;player.enabled=false;}
         else{camera.enabled=true;player.enabled=true;}     
        if(Input.GetKeyDown(KeyCode.I))
         {
          _on = !_on;
         }
        }
        void OnGUI()
        {
         GUI.skin = skin;
         if (_on)
         {GUI.Window(0,new Rect(100,100,Screen.width -200,Screen.height-100),Obj,"Inventory");}
        }
        void Obj(int idd)
        {
            
        }
    }

    2 скрипт с параметрами вещей
    (id)
    Код

    using UnityEngine;
    using System.Collections;

    public class id : MonoBehaviour {
        public string name;
        public int count;
        public string text;
        public int xPiche,yPiche;
        public Texture2D picthe;
        void Start () {
        }
        void Update () {
           
        }
    }



    Сообщение отредактировал Limonchik - Воскресенье, 05 Января 2014, 15:33
    set16Дата: Воскресенье, 05 Января 2014, 15:23 | Сообщение # 5214
    постоянный участник
    Сейчас нет на сайте
    public class id : MonoBehaviour {
    public string name;
    public int count;
    public string text;
    public int xPiche,yPiche;
    public Texture2D piche;
    void Start () {
    }

    piche вижу

    А где picthe;
    из строки
    x+=it[i].picthe;

    Может имели ввиду x+=it[i].xPiche


    =>The darkness of distant lands [3D]<=

    Сообщение отредактировал set16 - Воскресенье, 05 Января 2014, 15:24
    LimonchikДата: Воскресенье, 05 Января 2014, 15:25 | Сообщение # 5215
    частый гость
    Сейчас нет на сайте
    *
    Код
    public Texture2D picthe;
    set16Дата: Воскресенье, 05 Января 2014, 15:30 | Сообщение # 5216
    постоянный участник
    Сейчас нет на сайте
    x типа int, а picthe типа Texture2D

    в строке x+=it[i].picthe; возникнет ошибка ( не соответствие типов )


    =>The darkness of distant lands [3D]<=
    LimonchikДата: Воскресенье, 05 Января 2014, 15:32 | Сообщение # 5217
    частый гость
    Сейчас нет на сайте
    Код
    void Obj()     
                  {     
                          for(i = 0;i<5;i++)     
                          {     
                        if(it[i].on==true)     
                        {     
                          Rect vector =new Rect(x,y,it[i].x,it[i].y);     
                          GUI.DrawTexture(vector,it[i].piche);     
                          x+=it[i].x;     
                        }     
                          }     
                   }
    set16Дата: Воскресенье, 05 Января 2014, 15:36 | Сообщение # 5218
    постоянный участник
    Сейчас нет на сайте
    Функция Obj() Правильна, хотя нет

    Переменной x в класк it нет, it[i].x, должно быть x+=it[i].xPiche

    А в лист в редакторе текстуры добавляете?


    =>The darkness of distant lands [3D]<=

    Сообщение отредактировал set16 - Воскресенье, 05 Января 2014, 15:44
    LimonchikДата: Воскресенье, 05 Января 2014, 15:44 | Сообщение # 5219
    частый гость
    Сейчас нет на сайте
    Код
    for(i = 0;i<5;i++)
          {     
    GUILayout.BeginArea(new Rect(x[i],y,it[i].x,it[i].y));    
         //vector =new Rect(x,y,it[i].x,it[i].y);
         GUILayout.Box(it[i].picthe,GUILayout.Width(100f),GUILayout.Height(100f));
          }
         x[i+1]+=it[i].x
         GUILayout.EndArea();

    Пытался через кнопку.Та же проблема.

    Добавлено (05.01.2014, 15:44)
    ---------------------------------------------
    Текстуры да добавляю


    Сообщение отредактировал Limonchik - Воскресенье, 05 Января 2014, 15:46
    set16Дата: Воскресенье, 05 Января 2014, 15:58 | Сообщение # 5220
    постоянный участник
    Сейчас нет на сайте
    Попробуйте

    Код
    void Obj()        
                     {        
                             for(i = 0;i<5;i++)        
                             {        
                           if(it[i].on==true)        
                           {        
                             Rect vector =new Rect(x,y, it[i].xPiche,it[i].yPiche);        
                             GUI.DrawTexture(vector,it[i].piche);        
                              x+=it[i].xPiche;        
                           }        
                             }        
                      }


    Только не пойму как выполняется условие если переменной on нет в типе id

    Условие  if(it[i].on==true) выполняется 1 раз, по этому и 1 текстура

    Добавлено (05.01.2014, 15:58)
    ---------------------------------------------
    А зачем вообще вы ввели переменною on?


    =>The darkness of distant lands [3D]<=

    Сообщение отредактировал set16 - Воскресенье, 05 Января 2014, 15:55
    Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос-[ответ] по Unity (Задаём свои вопросы)
    Поиск:

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