Воскресенье, 17 Ноября 2024, 18:27

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • [_RHYME_]Дата: Воскресенье, 14 Апреля 2013, 21:25 | Сообщение # 3841
    частый гость
    Сейчас нет на сайте
    Ага, спасибо.

    Люди не летают, один сказал, все повторили. Мы доказали обратное © Трейсеры
    vitaminДата: Воскресенье, 14 Апреля 2013, 23:01 | Сообщение # 3842
    был не раз
    Сейчас нет на сайте
    я нашёл и подделал под себя скрипт стрельбы.

    но объекты(пули) которые спауняться из дула пушки не исчезают и остаются лежать на терэйне. Как вставить в код "такой то объект" при контактом с коллайдером дестроится


    Сообщение отредактировал vitamin - Воскресенье, 14 Апреля 2013, 23:01
    basistДата: Понедельник, 15 Апреля 2013, 06:05 | Сообщение # 3843
    пациент Flight Dream Studio
    Сейчас нет на сайте
    Цитата (vitamin)
    но объекты(пули) которые спауняться из дула пушки не исчезают и остаются лежать на терэйне. Как вставить в код "такой то объект" при контактом с коллайдером дестроится


    добавь к пуле
    function OnCollisionEnter(collision : Collision) {

    for (var contact : ContactPoint in collision.contacts) {
    Debug.DrawRay(contact.point, contact.normal);
    }

    if (collision.relativeVelocity.magnitude > 2)
    Destroy (gameObject);
    }
    Fr0sTДата: Понедельник, 15 Апреля 2013, 18:03 | Сообщение # 3844
    постоянный участник
    Сейчас нет на сайте
    А как сделать плавный поворот от одной позиции к другой,например если хочу по игрику повернуть плавно от своей позиции к 90 градусам например.Через RotateTowards?Как?



    basistДата: Понедельник, 15 Апреля 2013, 18:10 | Сообщение # 3845
    пациент Flight Dream Studio
    Сейчас нет на сайте
    Fr0sT, В справке введи RotateTowards
    vitaminДата: Понедельник, 15 Апреля 2013, 22:51 | Сообщение # 3846
    был не раз
    Сейчас нет на сайте
    Цитата (basist)
    добавь к пуле
    function OnCollisionEnter(collision : Collision) {

    for (var contact : ContactPoint in collision.contacts) {
    Debug.DrawRay(contact.point, contact.normal);
    }

    if (collision.relativeVelocity.magnitude > 2)
    Destroy (gameObject);
    }

    это jS или C#?
    Knight1032Дата: Понедельник, 15 Апреля 2013, 22:59 | Сообщение # 3847
    заслуженный участник
    Сейчас нет на сайте
    Есть идея райкастить на материал и по полученной текстуре выводить нужный звук шагов(кирпичная текстура - звук ходьбы по кирпичам и тд.)
    И вот это работает:
    Код
    hit.collider.transform.renderer.material.GetTexture("_MainTex");

    Но как поступить с террейном, как с него получать нужную текстуру? Кто знает?


    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    basistДата: Понедельник, 15 Апреля 2013, 23:28 | Сообщение # 3848
    пациент Flight Dream Studio
    Сейчас нет на сайте
    vitamin, Джава

    Добавлено (15.04.2013, 23:22)
    ---------------------------------------------
    Knight1032,
    Может это?
    Тыц

    Добавлено (15.04.2013, 23:28)
    ---------------------------------------------
    Можно попробовать лучем определять текстуру, но возможно ли такое )))

    romgermanДата: Вторник, 16 Апреля 2013, 20:33 | Сообщение # 3849
    старожил
    Сейчас нет на сайте
    Вот смотрите. У меня луч получается таким вот образом - var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    Я пытаюсь сделать, чтобы, в позиции соприкосновения луча с коллайдером, появлялся объект:
    Код

    var pos = hit.collider.transform.position;
    Instantiate(fireSkillObj, pos, transform.rotation);

    У меня пол - это большой сплюснутый куб. И когда я нажимаю кнопку мыши, чтобы создался объект в позиции мыши (raycast hit), то объект создаётся исключительно в центре куба и ни метром левее/правее/ниже/выше от центра.
    Вот я не знаю, как сделать, чтобы объект появлялся в месте клика.
    Пробовал делать по позиции мыши Input.mousePosition.normalized.x/z, но получается тоже самое.
    Кто даст верный ответ - тому плюс smile (Выгодно же biggrin . +6/5 к репутации)

    Добавлено (16.04.2013, 20:33)
    ---------------------------------------------
    Извините, решение нашёл) Надо было просто создавать объект в позиции hit.point.

    Сообщение отредактировал romgerman - Вторник, 16 Апреля 2013, 20:30
    basistДата: Вторник, 16 Апреля 2013, 20:42 | Сообщение # 3850
    пациент Flight Dream Studio
    Сейчас нет на сайте
    romgerman, Ну вот видишь, не так уж все и плохо)))
    Fr0sTДата: Среда, 17 Апреля 2013, 22:20 | Сообщение # 3851
    постоянный участник
    Сейчас нет на сайте
    Ребяяят
    if(Physics.Raycast(transform.position,-transform.up,out downRay))
    {
    Quaternion fromToRotate = Quaternion.FromToRotation(Vector3.up,downRay.normal);
    transform.rotation = Quaternion.RotateTowards(transform.rotation,fromToRotate,2);
    }
    и значит проблема такая.В некоторых местах где стоит мой перс,на углах бывают такие моменты когда он дергается очень сильно,пытаясь наклониться в обе стороны.С этим чтото можно сделать кроме как скорость поворота понизить?

    Добавлено (17.04.2013, 22:20)
    ---------------------------------------------
    И ещё один вопрос который меня мучает.Можно какнибудь двигать перса с Character controlleroм учитывая его поворот?Я пробовал через transform.translate(0,0,0,space.self) но он тогда не замечает препятствия и насквозь всё проходит.А мне нужно двигать именно с учетом поворота.




    White9Дата: Среда, 17 Апреля 2013, 22:30 | Сообщение # 3852
    заслуженный участник
    Сейчас нет на сайте
    Fr0sT, transform.localEulerAngles = new Vector3(0, CurrentRotation, 0);
    Fr0sTДата: Среда, 17 Апреля 2013, 22:44 | Сообщение # 3853
    постоянный участник
    Сейчас нет на сайте
    White9, Ты это по деганиям?Я уже разобрался,мне бы движение заделать,нужно чтобы перс петлю пробегал.



    White9Дата: Среда, 17 Апреля 2013, 23:21 | Сообщение # 3854
    заслуженный участник
    Сейчас нет на сайте
    Fr0sT, не понял вопрос. Что именно тебе нужно? Приводи в движение charactercontroller стандартной командой, а той, что я скинул - поворачивай...
    Fr0sTДата: Пятница, 19 Апреля 2013, 12:54 | Сообщение # 3855
    постоянный участник
    Сейчас нет на сайте
    White9, Короче игра про соника.Он в петли вбегает и мне нужно чтобы он по этой петле бежал,я сделал чтобы он поворачивался и становился перпенликулярно поверхности на которой стоит и мне надо двигать его не по оси Х относительно мира,а учитывая его поворот,тоесть чтобы он бежал по петле,а не впирался в неё пытаясь дальше двигаться.Как я писал - я пробовал через transform.translate(0,0,0,space.self) но он тогда не замечает препятствия и насквозь всё проходит.А если через move то он не учитывает поворот объекта(((

    Добавлено (18.04.2013, 17:12)
    ---------------------------------------------
    Короче или сделать как в resident evil 1,2,3,чтобы я мог повернуть персонада в нужную сторону,нажать вперед и он бы двигался,но через controller.move

    Добавлено (19.04.2013, 12:54)
    ---------------------------------------------
    сделал moveDirection = transform.transformDirection(moveDirection); но на некоторых углах отказывается двигаться вверх,нужно чтоб двигался чуть его подвинуть.




    romgermanДата: Пятница, 19 Апреля 2013, 18:12 | Сообщение # 3856
    старожил
    Сейчас нет на сайте
    Я пытаюсь сделать сохранение в файл (TXT. Потому что с XML всё сложнее smile ).
    У меня такой код:
    Код

    import System.IO;

    static var dataFileName : String = "gameSettings.txt";
    static var dataFilePath : String;

    function Start() {
      dataFilePath = Application.dataPath + dataFileName;
    }

    function Update() {
      if(Input.GetKeyDown("r")) {
       ReadFile();
      }
       
    }

    static function WriteFile(lineToWrite) {
      var sw : StreamWriter = new StreamWriter(dataFilePath);

      sw.WriteLine(lineToWrite);
       
      sw.Flush();
      sw.Close();
    }

    function ReadFile() {
      var sr = new File.OpenText(dataFilePath);

      var input = sr.ReadLine();

      Debug.Log("data: "+input);

      sr.Close();
    }

    Всё нормально записывается и читается, НО выскакивает ошибка:
    Цитата
    ArgumentNullException: Argument cannot be null.
    Parameter name: path
    System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.IO/FileStream.cs:205)
    System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share)
    (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
    System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) (at /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.IO/StreamWriter.cs:124)
    System.IO.StreamWriter..ctor (System.String path)
    (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string)
    SaveLoad.WriteFile (System.Object lineToWrite) (at Assets/JS/SaveLoad.js:18)
    MainMenu.Start () (at Assets/JS/MainMenu.js:33)

    В скрипте MainMenu просто такой код для записи настроек в файл:
    Код
    SaveLoad.WriteFile('volume-'+volumeSlider+',resolution-'+resPnum+',fullscreen-'+fullscreen+',quality-'+qualitySlider);

    Подскажите, кто знает, как убрать эту ошибку и, вообще, из-за чего она выскакивает?
    seamanДата: Пятница, 19 Апреля 2013, 23:08 | Сообщение # 3857
    старожил
    Сейчас нет на сайте
    WriteFile - статик. Он может быть вызван до вызова Start. Следовательно он увидит значение dataFilePath по умолчанию, а не то что Вы ей когда-то там еще присвоите (может через час после запуска программы). Ну а оно - null. Следовательно вы пытаетесь записать файл в путь == null
    Knight1032Дата: Суббота, 20 Апреля 2013, 12:54 | Сообщение # 3858
    заслуженный участник
    Сейчас нет на сайте
    1)Как можно експортнуть террейн как текстуру?
    2)Если, никак - то как сделать высококачественные снимки в большом разрешении террейна с видом сверху?


    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    basistДата: Суббота, 20 Апреля 2013, 13:13 | Сообщение # 3859
    пациент Flight Dream Studio
    Сейчас нет на сайте
    Knight1032, Как вариант. Делать частями и соединять в Ф.Ш.
    romgermanДата: Суббота, 20 Апреля 2013, 16:44 | Сообщение # 3860
    старожил
    Сейчас нет на сайте
    seaman, спасибо smile Заработало..
    Можете ещё подсказать, как в файле найти определённый символ. Ну, я хотел сделать такую систему:
    1. Читается строка var input = ReadLine();
    2. В этой строке ищется какой-либо символ (в моём случае - число). Это число/символ ищется после слова, например, "volume-" и до запятой..
    Поиск:

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