Воскресенье, 29 Сентября 2024, 16:21

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • zaicev9797Дата: Четверг, 06 Июня 2013, 12:05 | Сообщение # 4081
    AbRaKaDaBrA
    Сейчас нет на сайте
    1. не подходит потомучто много ригид боди>комп bag
    2. не подходит потмучто щас покажу(не мое но такоеже будет)


    Добавлено (06.06.2013, 12:05)
    ---------------------------------------------
    это получается мы сами ф-ю придумали, дали ей название , и теперь можем использовать типа как function Update например или OnGUI и т.д.?
    Цитата (zaicev9797)
    if (Input.GetKeyDown (KeyCode.Mouse0)) //Если нажимаем левую кнопку мыши, то вызывается функция Raycast (можешь её обозвать как угодно. Это не имеет значения)
    {
    Raycast ();
    }
    }
    void Raycast ()
    {
    ray = Camera.main.ScreenPointToRay (Input.mousePosition); //Пускаем луч
    if (Physics.Raycast(ray, out hit)) //Проверяем, столкнулся ли наш луч с чем-либо
    {
    if (hit.collider.name != Target.transform.name) //Проверяем, совпадает ли имя объекта, с которым столкнулся луч, с именем Target
    {
    Debug.Log (hit.collider.name); //Выводим в консоль имена объекта и текущего Target (эти две строчки можно удалить. Они просто для теста)
    Debug.Log (Target.transform.name);
    Target = hit.collider.gameObject; //Присваиваем переменной Target наш объект
    }
    }
    }
    }


    проект Mysterious Space. The losted moment

    Сообщение отредактировал zaicev9797 - Четверг, 06 Июня 2013, 12:05
    allodsДата: Четверг, 06 Июня 2013, 12:17 | Сообщение # 4082
    почти ветеран
    Сейчас нет на сайте
    Ребята подскажите плииз. Какой там андроид купить не дорогой чисто нужен для програмирования, ну чтобы тестить игру которую на юнити пилю .
    нужен только в этих целях
    NEBRДата: Четверг, 06 Июня 2013, 12:20 | Сообщение # 4083
    почти ветеран
    Сейчас нет на сайте
    allods, Мегафон Логин. На нем четвертый андроид, относительно мощный проц. Цена 2500 рублей ) Из минусов - плохо откалиброван экран, но за такую то цену, можно ему просить ) Вообщем хороший телефон - рекомендую.

    King Size #Gamiron12
    White9Дата: Четверг, 06 Июня 2013, 12:40 | Сообщение # 4084
    заслуженный участник
    Сейчас нет на сайте
    Цитата (zaicev9797)
    это получается мы сами ф-ю придумали, дали ей название , и теперь можем использовать типа как function Update например или OnGUI и т.д.?

    Да, и к ней можно обращаться из других скриптов (только не через команду Raycast (), а немного по-другому)

    Цитата (zaicev9797)
    1. не подходит потомучто много ригид боди>комп
    2. не подходит потмучто щас покажу(не мое но такоеже будет)


    Просто мне кажется, что character controller плохо подходит для этих целей. И сколько у тебя будет rigidbody одновременно на экране? Наверняка не более 200-300, а это почти любой комп способен выдержать.
    zaicev9797Дата: Четверг, 06 Июня 2013, 12:42 | Сообщение # 4085
    AbRaKaDaBrA
    Сейчас нет на сайте
    Цитата (White9)
    по-другому

    как?


    проект Mysterious Space. The losted moment
    White9Дата: Четверг, 06 Июня 2013, 12:48 | Сообщение # 4086
    заслуженный участник
    Сейчас нет на сайте
    zaicev9797, скрипт из Scriptin Reference (советую почитать, там много полезного)
    Код

    using UnityEngine;
    using System.Collections;

    public class example : MonoBehaviour
      {
         void Update()  
        {
             ScriptName other;  
             other = gameObject.GetComponent("ScriptName") as ScriptName;
             other.DoSomething();
             other.someVariable = 5;
         }
    }

    В нём other - имя скрипта, к которому нам нужно получить доступ
    gameObject - объект, на котором висит данный скрипт. (в данном случае вызываемый скрипт висит на том же объекте, что и этот. В общем, вместо gameObject может быть любая переменная этого типа)
    other.DoSomething(); - вызов функции DoSomething в вызываемом скрипте
    other.someVariable - переменная someVariable в вызываемом скрипте
    NEBRДата: Четверг, 06 Июня 2013, 12:49 | Сообщение # 4087
    почти ветеран
    Сейчас нет на сайте
    Цитата (zaicev9797)
    как?

    первый скрипт. Назевем его first

    first.cs

    public bool flag = false;
    void Update() {
    if(bool) {
    myFunction();
    }
    }
    void myFunction() {
    flag = false;
    }
    }

    второй скрипт

    second.cs

    void Update() {
    if.GetButtonDown(KeyCode.E){
    this.GetComponent<first>().flag = true; // если оба скрипта находятся на одном объекте
    }
    }


    King Size #Gamiron12

    Сообщение отредактировал NEBR - Четверг, 06 Июня 2013, 12:53
    zaicev9797Дата: Четверг, 06 Июня 2013, 13:44 | Сообщение # 4088
    AbRaKaDaBrA
    Сейчас нет на сайте
    Цитата (NEBR)
    public bool flag = false;
    void Update() {
    if(bool) {
    myFunction();
    }
    }
    void myFunction() {
    flag = false;
    }
    }

    второй скрипт

    second.cs

    void Update() {
    if.GetButtonDown(KeyCode.E){
    this.GetComponent<first>().flag = true; // если оба скрипта находятся на одном объекте
    }
    }


    ну тут вообще ничего не понятно

    Добавлено (06.06.2013, 13:44)
    ---------------------------------------------

    Цитата (White9)
    using UnityEngine;
    using System.Collections;

    public class example : MonoBehaviour
      {
         void Update()  
        {
             ScriptName other;  
             other = gameObject.GetComponent("ScriptName") as ScriptName;
             other.DoSomething();
             other.someVariable = 5;
         }
    }

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


    проект Mysterious Space. The losted moment
    White9Дата: Четверг, 06 Июня 2013, 14:20 | Сообщение # 4089
    заслуженный участник
    Сейчас нет на сайте
    Цитата (zaicev9797)
    это получается мы изминили переменную в скрипте ч-з др-й скрипт, и получается также можно переменную считать из скрипта и присвоить ее значение в другом скрипте

    Да, именно так

    Цитата (zaicev9797)
    или может для этого есть способ проще(как в гамаке, там просто перед переменно ставишь глобал и она становится известной всем обьектам)

    Можно просто создать глобальную переменную, добавив перед её объявлением static
    Пример для C#
    Задаёшь в классе MyClass переменную
    static int y = 5;

    Чтобы её вызвать достаточно из любого скрипта написать
    MyClass.y= 10;

    Но, имхо, лучше стараться избегать использования глобальных переменных

    Цитата (zaicev9797)
    ну тут вообще ничего не понятно

    Там написано почти тоже самое, разве что комментариев нет (хотя и без них всё понятно)


    Сообщение отредактировал White9 - Четверг, 06 Июня 2013, 14:26
    zaicev9797Дата: Четверг, 06 Июня 2013, 14:34 | Сообщение # 4090
    AbRaKaDaBrA
    Сейчас нет на сайте
    Цитата (White9)
    Задаёшь в классе MyClass переменную

    это както по особому записывать надо?


    проект Mysterious Space. The losted moment
    White9Дата: Четверг, 06 Июня 2013, 14:40 | Сообщение # 4091
    заслуженный участник
    Сейчас нет на сайте
    zaicev9797, например так
    Код

    using UnityEngine;
    using System.Collections;

    public static class Global      //Делать класс статичным (параметр Static в объявлении) не обязательно
    {
               public static float Kot;
    }
    public class example : MonoBehaviour   
    {
              //Основной код скрипта с именем example   
    }

    Или переменную Kot можно объявить в классе example . В общем-то, поменяется только орфография вызова переменной
    Global.Kot - в первом случае и example.Kot - во втором

    Я повторюсь, но всё-таки. Почитай этот форум http://unity3d.ru/distribution/viewforum.php?f=18
    и эту документацию http://docs.unity3d.com/Documentation/ScriptReference/
    Там можно найти абсолютно всё, что нужно


    Сообщение отредактировал White9 - Четверг, 06 Июня 2013, 14:42
    zaicev9797Дата: Четверг, 06 Июня 2013, 14:53 | Сообщение # 4092
    AbRaKaDaBrA
    Сейчас нет на сайте
    по поводу первой ссылки- спасибо, пошарюсь
    по поводу второй- пол спасибо т.к. инглиш (хоть егэ и 5 по инглишу но все равно с трудом усваивается, да и я про нее давно знаю)


    проект Mysterious Space. The losted moment
    allodsДата: Четверг, 06 Июня 2013, 17:13 | Сообщение # 4093
    почти ветеран
    Сейчас нет на сайте
    Я не совсем понял, чтоб запустить игру на андроиде мне нужно обязательно купить лицензию для андроида , их две : обычная и про.
    Без этого только кряк но это плохо, или я не так понял .
    White9Дата: Четверг, 06 Июня 2013, 17:43 | Сообщение # 4094
    заслуженный участник
    Сейчас нет на сайте
    allods, обычная лицензия на android теперь стала бесплатной - нужно только к Unity android SDK подключить )
    AlexRabbitДата: Четверг, 06 Июня 2013, 20:36 | Сообщение # 4095
    старожил
    Сейчас нет на сайте
    Приобрёл в AssetsStore 3 ассетса, оплата прошла, но на всех до сих пор стоит статус Unpurchased.
    По опыту - как быстро обновляется статус приобретённого ассетса?

    Ответ: несколько часов понадобилось, чтобы все обновилось и стало доступно.


    Нам требуются партнеры для продвижения и поддержки нашего ПО

    Сообщение отредактировал AlexRabbit - Пятница, 07 Июня 2013, 04:11
    LaushДата: Пятница, 07 Июня 2013, 00:04 | Сообщение # 4096
    почти ветеран
    Сейчас нет на сайте
    загрузил стандартный ассет mobile, попробывал запустить комнату, запустилась, но мышкой я двигать джостик не могу, так и должно быть?

    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    NEBRДата: Пятница, 07 Июня 2013, 13:23 | Сообщение # 4097
    почти ветеран
    Сейчас нет на сайте
    Laush, да, в режиме рантайм перемещение только с девайса работает. Для этого скачай Unity Remote на телефон. Если у тебя на андроиде, то с гугл плей можно, на iOs наверняка есть в AppStore, на крайняк можно найти в сети apk файлы. И, по настройке Unity Remote почитай туториал, там есть свои подводные камни

    King Size #Gamiron12
    LaushДата: Пятница, 07 Июня 2013, 13:57 | Сообщение # 4098
    почти ветеран
    Сейчас нет на сайте
    NEBR, У меня андроида нет =( Пытаюсь эмуляторами сделать, пока результатов нет

    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    NEBRДата: Пятница, 07 Июня 2013, 15:22 | Сообщение # 4099
    почти ветеран
    Сейчас нет на сайте
    Laush, насчет эмуляторов точно не знаю, но наверняка там нужны SDK Manager и JDK. А пробовал компиллировать apk файл?

    Добавлено (07.06.2013, 15:22)
    ---------------------------------------------
    zaicev9797,

    Цитата (zaicev9797)
    ну тут вообще ничего не понятно

    блин, да это же элементарные основы... На ютубе смотри туторы, их очень много. Основы, подобные этому, есть на русском языке, причем огромное количество. Зачем засорять эту ветку?...


    King Size #Gamiron12
    LaushДата: Суббота, 08 Июня 2013, 00:35 | Сообщение # 4100
    почти ветеран
    Сейчас нет на сайте
    Цитата (NEBR)
    насчет эмуляторов точно не знаю, но наверняка там нужны SDK Manager и JDK. А пробовал компиллировать apk файл?

    Аааа всё, в Android SDK он у меня не запускается, а вот в другом эмуляторе, как по мне этот лучше BlueStacks . Там запустилось, немного лагает, но нормально, тач проверить можно happy


    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    Поиск:

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