Воскресенье, 17 Ноября 2024, 05:59

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • noTformaTДата: Четверг, 05 Января 2012, 17:28 | Сообщение # 1401
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (ReSeR)
    JavaScript или C#?
    что лучше для unity , что полегче для меня?

    и тот и тот практически одинаковый... от использования жс ты ничего не потеряешь, от использования шарпа - тоже.
    Просто два одинаковых по возможностям яп...
    Выбирать JavaScript или C - это просто дело выбора, кому-то дается жс, а кому-то шарп... говорят жс легче, хз, возможностей и там и там - одинаково smile


    @noTformaT
    E][pertДата: Четверг, 05 Января 2012, 18:12 | Сообщение # 1402
    C#-XNA-Unity
    Сейчас нет на сайте
    Подскажите как отследить нажатие кнопки мышки по объекту?

    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    noTformaTДата: Четверг, 05 Января 2012, 18:15 | Сообщение # 1403
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (E||pert)
    Подскажите как отследить нажатие кнопки мышки по объекту?

    ну объекта есть collider? если есть, то http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.OnMouseUp.html


    @noTformaT
    E][pertДата: Пятница, 06 Января 2012, 18:27 | Сообщение # 1404
    C#-XNA-Unity
    Сейчас нет на сайте
    Quote (noTformaT)
    ну объекта есть collider? если есть, то http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.OnMouseUp.html

    Спасибо. Что то я очень затупил smile

    Добавлено (06.01.2012, 18:27)
    ---------------------------------------------
    Как мне изменить значение переменных одного скрипта из другого?


    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    sk0rpi0nДата: Пятница, 06 Января 2012, 18:34 | Сообщение # 1405
    Tiberium
    Сейчас нет на сайте
    Quote
    Как мне изменить значение переменных одного скрипта из другого?

    Используй GetComponent.




    Adventures of the Purple Ball - готов.
    Wanderer - готов.
    E][pertДата: Пятница, 06 Января 2012, 18:38 | Сообщение # 1406
    C#-XNA-Unity
    Сейчас нет на сайте
    Quote (sk0rpi0n)
    Используй GetComponent.

    Пытаюсь. Но у меня сплошные ошибки. Мне бы пример хотя бы увидеть.


    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    sk0rpi0nДата: Пятница, 06 Января 2012, 18:44 | Сообщение # 1407
    Tiberium
    Сейчас нет на сайте
    Code
    function Update () {
    // To access public variables and functions
    // in another script attached to the same game object.
    // (ScriptName is the name of the javascript file)
    var other : ScriptName;
    other = gameObject.GetComponent("ScriptName");
    // Call the function DoSomething on the script
    other.DoSomething ();
    // set another variable in the other script instance
    other.someVariable = 5;
    }

    Из справки. Это со скриптом.
    Code
    function Update () {
    var other : ScriptName;
    other = gameObject.GetComponent("ScriptName");
    other.someVariable = 5;
    }

    Вот так без комментов.(приятнее на вид))




    Adventures of the Purple Ball - готов.
    Wanderer - готов.


    Сообщение отредактировал sk0rpi0n - Пятница, 06 Января 2012, 18:45
    E][pertДата: Пятница, 06 Января 2012, 19:03 | Сообщение # 1408
    C#-XNA-Unity
    Сейчас нет на сайте
    Пробывал это всё. Вроде бы всё правильно, а ошибка:
    Quote

    NullReferenceException: Object reference not set to an instance of an object
    Material.Update () (at Assets/Script/Material.cs:43)


    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    seamanДата: Пятница, 06 Января 2012, 20:28 | Сообщение # 1409
    старожил
    Сейчас нет на сайте
    Что за дурацкие тайны? Вы скрипт то выложите. С чего мы должны гадать что у Вас там за ошибка?
    E][pertДата: Пятница, 06 Января 2012, 21:07 | Сообщение # 1410
    C#-XNA-Unity
    Сейчас нет на сайте
    Code

    using UnityEngine;
    using System.Collections;

    public class Material : MonoBehaviour {
       
      public GameObject go;
      public GameObject player;
      bool stone=false;
      bool paper=false;
      bool planar=true;
      public Texture[] texture;
      ThirdPersonController ControlScript;
      // Use this for initialization
      void Start () {
       ControlScript =  player.gameObject.GetComponent<ThirdPersonController>();
      }
       
      // Update is called once per frame
      void Update () {
      if (Input    .GetKeyDown    (KeyCode    .Z    ))
           {
        stone = true;
        paper = false;
        planar= false;
        go.renderer.material.mainTexture = texture[0];
       }
        if (Input    .GetKeyDown    (KeyCode    .X    ))
           {
        stone = false;
        paper = true;
        planar= false;
        go.renderer.material.mainTexture = texture[1];
       }
        if (Input    .GetKeyDown    (KeyCode    .C    ))
           {
        stone = false;
        paper = false;
        planar = true;
        go.renderer.material.mainTexture = texture[2];
       }
        
       if (stone)
       {
        ControlScript.gravity = 50.0f;
       }
      }
    }


    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    PovstalezДата: Пятница, 06 Января 2012, 21:11 | Сообщение # 1411
    постоянный участник
    Сейчас нет на сайте
    Quote (E||pert)
    NullReferenceException: Object reference not set to an instance of an object

    это ошибка того, что на объекте, который вы ищите, нету этого скрипта.......
    E][pertДата: Суббота, 07 Января 2012, 18:42 | Сообщение # 1412
    C#-XNA-Unity
    Сейчас нет на сайте
    Povstalez, скрипт есть. Возможно я просто неправильно даю на него ссылку.

    Добавлено (07.01.2012, 18:42)
    ---------------------------------------------
    ап тему!


    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    noTformaTДата: Суббота, 07 Января 2012, 18:51 | Сообщение # 1413
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (E||pert)
    Как мне изменить значение переменных одного скрипта из другого?

    Один из принципов "ооп" - инкапсуляция, говорит что один объект не должен знать из чего состоит второй... Но, можно использовать гетеры и сеттеры...

    ммм, если скрипты на одинаковых языках, то это просто... используй геткомпонент... а дальше вызывай нужные методы...

    пример
    Скрипт под названием AttackerScript висит на геймобджекте atacker... у этого скрипта/класса есть метод SetLife(var new_life: int), который устанавливает количество жизней... тогда...

    var aScript:AttackerScript = atacker.GetComponent(AttackerScript) as AttackerScript;
    aScript.SetLife(10);


    @noTformaT
    E][pertДата: Суббота, 07 Января 2012, 19:07 | Сообщение # 1414
    C#-XNA-Unity
    Сейчас нет на сайте
    Я так и думал что проблема в том что они на разных языках. Что мне в этом случае делать?

    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    seamanДата: Воскресенье, 08 Января 2012, 01:18 | Сообщение # 1415
    старожил
    Сейчас нет на сайте
    1. Material - не называй скрипты так. В Юнити уже есть скрипт с таким названием. Тем самым ты "скрыл" скрипт Юнити и уже не можешь работать с материалами. Любое обращение к материалу будет вызывать ошибку. Если уж так приспичило - делай это в другом пространстве имен.
    2. Вы уверены, что выложили скрипт соответствующий ошибке. Ошибка написана в 43 строке. Строки вокруг 43-й:
    Code
         
        if (stone)
        {

    Там не может быть такой ошибки.
    noTformaTДата: Воскресенье, 08 Января 2012, 01:30 | Сообщение # 1416
    Ukrainian independent game developer
    Сейчас нет на сайте
    Quote (E||pert)
    Я так и думал что проблема в том что они на разных языках. Что мне в этом случае делать?

    ничего... в юнити такая фигня, что шарп код компилируется первым, а жс код вторым, тоесть шарповый класс ничего не знает о жс классах, а жс классы о шарп классах... Это все описано тут, все причины и как это может выйти боком....

    Но, решение есть... GameObject.SendMessage... Но, самое простое - никогда не мешать 2 яп в одном проекте smile с Сенд Мессенжом еще придется помучатся...


    @noTformaT
    E][pertДата: Воскресенье, 08 Января 2012, 12:06 | Сообщение # 1417
    C#-XNA-Unity
    Сейчас нет на сайте
    Quote (noTformaT)
    Но, самое простое - никогда не мешать 2 яп в одном проекте

    К сожалению жс скрипты уже не переписать, а продолжать на них писать тоже не вариант. И вот опять у меня ошибочка:
    Quote

    SendMessage gravity has no receiver!
    UnityEngine.GameObject:SendMessage(String, Object)
    Material:Update() (at Assets/Script/Material.cs:43)


    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    SnakeRДата: Воскресенье, 08 Января 2012, 12:11 | Сообщение # 1418
    постоянный участник
    Сейчас нет на сайте
    Quote (E||pert)
    К сожалению жс скрипты уже не переписать

    А че их там переписывать? Если желание есть то все спокойно перепишешь.

    Quote (E||pert)
    SendMessage gravity has no receiver!

    Тут же написано что функция SendMessage не имеет получателя.


    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    ScvadДата: Воскресенье, 08 Января 2012, 12:22 | Сообщение # 1419
    участник
    Сейчас нет на сайте
    У меня usbмодем и я когда на офф.сайт захожу у меня бабки снимают, есть какое нибудь зеркало?

    E][pertДата: Воскресенье, 08 Января 2012, 12:49 | Сообщение # 1420
    C#-XNA-Unity
    Сейчас нет на сайте
    Quote (SnakeR)
    А че их там переписывать? Если желание есть то все спокойно перепишешь.

    Жс скрипты между собой связанные допустив одну ошибку она повлечет за собою множество.
    Quote (SnakeR)
    Тут же написано что функция SendMessage не имеет получателя.

    Code

    player.gameObject.SendMessage("gravity", 50.0f);

    переменная gravity есть в жс скрипте.


    Помогаю по мере возможностей, учусь по мере сил. ©E}{pert
    Tower defence in processing... For Web/iOS/Android.
    Поиск:

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