Вторник, 04 Июня 2024, 09:46

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • DimOkДата: Понедельник, 04 Февраля 2013, 22:44 | Сообщение # 3561
    ONG studio
    Сейчас нет на сайте
    я понял. только что проверил на 32-бит, та же фигня,придётся перезагружать cry

    Активно пользуюсь Godot Engine

    Сообщение отредактировал DimOk - Понедельник, 04 Февраля 2013, 22:44
    BarugooДата: Понедельник, 04 Февраля 2013, 23:59 | Сообщение # 3562
    частый гость
    Сейчас нет на сайте
    Подскажите толковые учебники по C#
    GronzoДата: Вторник, 05 Февраля 2013, 12:29 | Сообщение # 3563
    почетный гость
    Сейчас нет на сайте
    Привет, уважаемые игроделы!

    В связи с попытками изучить сей движок, назрел вопрос:
    Как я могу создавать программным путем экземпляры моей 3D-модели?

    Исходные данные:
    1. Есть собственная модель
    2. Есть сцена, на которой требуется генерация мира

    Задача:
    1. Генерирование окружающего мира путем размещения отдельных моделей(объектов) вокруг персонажа
    2. Каждая модель должна получать входные данные: координаты размещения, тип модели
    3. Должна присутствовать возможность уничтожения модели когда она более не нужна

    Головой я понимаю, должен быть, который создаёт экземпляры объектов и размещает их на сцене. Также, предполагаю что потребуется использование префабов (вроде всё правильно, говорю, не?).
    Но вот с какой стороны подступиться - хоть убейте - не понимаю

    По сути мне бы одну строчку скрипта на C#, в которой написано получение объекта и его создание. Цикл и размещение реализую сам.
    Буду рад любой помощи! Спасибо!


    Скорость перебора паролей прямо пропорциональна квадрату температуры утюга
    IIyxMASTERДата: Вторник, 05 Февраля 2013, 13:34 | Сообщение # 3564
    постоянный участник
    Сейчас нет на сайте
    http://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html -> создание
    http://docs.unity3d.com/Documentation/ScriptReference/Resources.Load.html -> загрузка из ресурсов
    Вот за что действительно хвала юнитекам - это за их скрипт референс, все разжевано :-)


    Сообщение отредактировал IIyxMASTER - Вторник, 05 Февраля 2013, 13:37
    DimOkДата: Вторник, 05 Февраля 2013, 14:04 | Сообщение # 3565
    ONG studio
    Сейчас нет на сайте
    smile перезагрузил... ура, всё работает.

    Активно пользуюсь Godot Engine
    ЛевшаДата: Вторник, 05 Февраля 2013, 14:39 | Сообщение # 3566
    почти ветеран
    Сейчас нет на сайте
    Цитата
    одну строчку скрипта на C#, в которой написано получение объекта и его создание.

    Код

    GameObject[] newObject;

    void Start () {
          instatantiate (newObject[0], transform.position, transform.rotation);
    }


    X.cor.R (Prologue)

    Сообщение отредактировал Левша - Вторник, 05 Февраля 2013, 14:39
    GronzoДата: Вторник, 05 Февраля 2013, 15:19 | Сообщение # 3567
    почетный гость
    Сейчас нет на сайте
    спасибо за помощь!

    Скорость перебора паролей прямо пропорциональна квадрату температуры утюга
    MaxaonДата: Вторник, 05 Февраля 2013, 17:28 | Сообщение # 3568
    участник
    Сейчас нет на сайте
    А можно продать издателу игру сделанную на Unity3d Free? То есть легально это?
    Knight1032Дата: Вторник, 05 Февраля 2013, 17:37 | Сообщение # 3569
    заслуженный участник
    Сейчас нет на сайте
    Maxaon, Да, задолбали уже. =)

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    EchoITДата: Вторник, 05 Февраля 2013, 17:40 | Сообщение # 3570
    старожил
    Сейчас нет на сайте
    Knight1032, надо FAQ что-ли сделать... Хотя их всё равно никто никогда не читает. huh

    Долгожданный анонсик: State of War
    NeToXДата: Среда, 06 Февраля 2013, 15:00 | Сообщение # 3571
    Neto Software
    Сейчас нет на сайте
    EchoIT, Почему это то?некоторые будут.



    Мои проекты:
    [3D]Square World[API VK]
    [3D]Dead Prison[Windows]
    [2D]Save Fruit[Android,windows]
    basistДата: Среда, 06 Февраля 2013, 15:14 | Сообщение # 3572
    пациент Flight Dream Studio
    Сейчас нет на сайте
    NeToX, Из-за одного писать не стоит.
    RacotДата: Среда, 06 Февраля 2013, 16:00 | Сообщение # 3573
    постоянный участник
    Сейчас нет на сайте
    Цитата (basist)
    Из-за одного писать не стоит.

    ну ну одного biggrin
    Их тут тысячи не так уж и мало
    вот только
    Цитата (EchoIT)
    надо FAQ что-ли сделать... Хотя их всё равно никто никогда не читает.

    А это проблема


    Специалист "во всем" - специалист "ни в чем"
    ------------------------------------
    Script Reference для Unity3D
    Помогу со скриптами for Unity3D
    basistДата: Среда, 06 Февраля 2013, 17:07 | Сообщение # 3574
    пациент Flight Dream Studio
    Сейчас нет на сайте
    Racot,
    Я обособил, но тем не менее я прав biggrin
    LlfeДата: Пятница, 08 Февраля 2013, 23:18 | Сообщение # 3575
    был не раз
    Сейчас нет на сайте
    Разбираю скрипт, устанавливающий надпись над обьектом.
    Код
    using UnityEngine;
    using System.Collections;

    public class ques_givers : MonoBehaviour {
    //===---Variables---===
    private bool avail_quest;  
    //===---END VARIABLES---===  
       // имя объекта д
         public string objectName;
         // использовать ли рейкастинг для отображения имени только если объект не закрыт другим объектом
         // будет работать если на объекте есть коллайдер
         public bool useRayCast;
         // размер объекта (используется в условии по рейкастингу)
         public float objectSize = 2;
       
         // вспомогательные переменные
         private bool _showName;
         private Vector2 _position;
       
         public void Awake()
         {
             // если имя не указано, то отображаем имя объекта сцены
             if (string.IsNullOrEmpty(objectName))
             {
                 objectName = name;
             }
         }
       
         public void Update()
         {
             _showName = false;
             // позиция относительно камеры
             Vector3 cameraRelative = Camera.main.transform.InverseTransformPoint(transform.position);
             // если z>0, то точка находится перед камерой
             if (cameraRelative.z > 0)
             {
                 // если используем рейкастинг
                 if(useRayCast)
                 {
                     RaycastHit hit;
       
                     // направление луча
                     Vector3 direction = transform.position - Camera.main.transform.position;
       
                     // сам луч
                     Ray ray = new Ray(Camera.main.transform.position, direction);
       
                     // посылаем луч
                     if (Physics.Raycast(ray, out hit))
                     {
                         // если дистанция до цели удовлетворяет условиям, то отображаем имя
                         if(hit.distance >= (direction.magnitude-objectSize))
                         {
                             Vector3 screenPosition = Camera.main.WorldToScreenPoint(transform.position);
                             _position = new Vector2(screenPosition.x - 60f, Screen.height - screenPosition.y - 10f);
                             _showName = true;      
                         }
                     }
                 }
                 else
                 {
                     // случай без рейкастинга
                     Vector3 screenPosition = Camera.main.WorldToScreenPoint(transform.position);
                     _position = new Vector2(screenPosition.x - 60f, Screen.height - screenPosition.y - 10f);
                     _showName = true;                 
                 }
       
             }
         }
       
       
         public void OnGUI()
         {
             // если следует отобразить имя
             if (_showName)
             {
                 // считаем позицию
                 Rect rect = new Rect(_position.x, _position.y, 120f, 20f);
       
                 // создаем стиль с выравниванием по центру
                 GUIStyle label = new GUIStyle(GUI.skin.label);
                 label.alignment = TextAnchor.MiddleCenter;
       
                 // выводим имя объекта с созданным стилем, чтобы имя было выведено по центру
                 GUI.Label(rect, objectName, label);
             }
         }
    }

    Прошу разжевать мне данный скрипт, т.к. комментарии, описанные в данном скрипте не совсем доходят мне. 1-й вопрос интересующий:
    Код
    Vector3 cameraRelative = Camera.main.transform.InverseTransformPoint(transform.position);
    Не понятно мне, в доках вычитал, ф-я inversetransformpoint() преобразует мировое положение обьекта в локальное. — нефига не понимаю зачем оно там и вообще...
    2-й вопрос.
    Направление луча.
    Vector3 direction = transform.position - Camera.main.transform.position;
    Что мы получим, отняв позицию игрока от позиции камеры?
    Прошу помощи и благодарен заранее откликнувшимся, т.к. нечерта не понимаю.
    LaushДата: Воскресенье, 10 Февраля 2013, 14:44 | Сообщение # 3576
    почти ветеран
    Сейчас нет на сайте
    Как эту ошибку исправить


    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    LimonchikДата: Воскресенье, 10 Февраля 2013, 15:24 | Сообщение # 3577
    частый гость
    Сейчас нет на сайте
    var hours = 0.0;
    var minutes = 0.0;
    var seconds = 0.0;
    var s = 1;

    function Update (){
    seconds +=s;
    if (seconds >= 59)
    seconds = 0;
    }
    function Start () {
    if (hours < 23)
    hours = 0;
    if (minutes >= 59);
    hours +=s;
    if (seconds == 59);
    minutes +=s;
    }
    Подскажите в чем проблема.
    Заранее спасибо
    EchoITДата: Воскресенье, 10 Февраля 2013, 15:50 | Сообщение # 3578
    старожил
    Сейчас нет на сайте
    Возможно ли как-то в уже скомпилированную игру подгружать кастомные ресурсы? (текстуры, текстовые файлы)

    Долгожданный анонсик: State of War
    LimonchikДата: Воскресенье, 10 Февраля 2013, 15:55 | Сообщение # 3579
    частый гость
    Сейчас нет на сайте
    EchoIT, Скомпилированную игру можно вроде как то декомпилировать http://www.unity3d.ru/distribution/viewtopic.php?f=105&p=90104
    SnakeRДата: Воскресенье, 10 Февраля 2013, 16:14 | Сообщение # 3580
    постоянный участник
    Сейчас нет на сайте
    EchoIT, идем в референс и читаем все что связано с Resources.Load

    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    Поиск:

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