Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
sk0rpi0n | Дата: Воскресенье, 01 Июля 2012, 16:36 | Сообщение # 2461 |
Tiberium
Сейчас нет на сайте
| Понятно. Я уже начинаю путаться от неработоспособности моего кода в определенной части, которую я уже раз 20 переписывал... UPD: Как получить В переменную "GameObject" объект, в который попадает луч?
Adventures of the Purple Ball - готов. Wanderer - готов.
Сообщение отредактировал sk0rpi0n - Воскресенье, 01 Июля 2012, 16:47 |
|
| |
pixeye | Дата: Воскресенье, 01 Июля 2012, 17:54 | Сообщение # 2462 |
Red Winter Software
Сейчас нет на сайте
| Quote (sk0rpi0n) Понятно. Я уже начинаю путаться от неработоспособности моего кода в определенной части, которую я уже раз 20 переписывал... UPD: Как получить В переменную "GameObject" объект, в который попадает луч?
Смотри.
- эта переменная отвечает за за объект что столкнется с лучем.
Code if (Physics.Raycast(ray,out hit, Mathf.Infinity)) - для твоего вопроса ключевым словом является out hit. а дальше все просто...
если столкновение происходит то ты делаешь с hit что хочешь. Например: Code GameObject o = hit.collider.gameObject;
Для большинства параметров тебе нужно будет обязательно указать .collider ( через этот компопнент происходит взаимодействие ), дальше ты обращаешься к нужнуму тебе элементу. Например если у этого объекта есть скрипт к которому ты хочешь обратиться это можно сделать так: Code hit.collider.gameObject.GetComponent<_имя_скрипта_>()._публичная переменная или функция ;
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 18:18 | Сообщение # 2463 |
заслуженный участник
Сейчас нет на сайте
| как из одного скрипта вытянуть переменные для использования в другом?(С#)
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
MyACT | Дата: Воскресенье, 01 Июля 2012, 18:27 | Сообщение # 2464 |
C# CODERS
Сейчас нет на сайте
| BrightSpot, через GetComponent. Добавлено (01.07.2012, 18:27) --------------------------------------------- Вот пример: GetComponent<СКРИПТ>().Переменная;
3дэшечки: https://sketchfab.com/myactyindie Курентли воркс он: https://myacty.itch.io/raskopnik
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 18:33 | Сообщение # 2465 |
заслуженный участник
Сейчас нет на сайте
| с меня +=) Но есть ли способ вытаскивать разные переменки с одного скрипта не юзая каждый раз GetComponent()??
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
gggaptypggg | Дата: Воскресенье, 01 Июля 2012, 18:53 | Сообщение # 2466 |
почетный гость
Сейчас нет на сайте
| Расскажите пожалуйста о transform.LookAt и как им пользоваться? К примеру как её присоединить к мыше, чтобы когда повернешь мышь, то и камера поворачивалась.
|
|
| |
pixeye | Дата: Воскресенье, 01 Июля 2012, 18:56 | Сообщение # 2467 |
Red Winter Software
Сейчас нет на сайте
| Quote (BrightSpot) с меня +=) Но есть ли способ вытаскивать разные переменки с одного скрипта не юзая каждый раз GetComponent()??
Объявляешь переменную скрипта.
Code MyScript _script;
_script = GetComponent<MyScript>();
_script.foo +=1;
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 19:04 | Сообщение # 2468 |
заслуженный участник
Сейчас нет на сайте
| ну и на последок: как определить скрипт определенного обьекта?
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
pixeye | Дата: Воскресенье, 01 Июля 2012, 19:16 | Сообщение # 2469 |
Red Winter Software
Сейчас нет на сайте
| Quote (BrightSpot) ну и на последок: как определить скрипт определенного обьекта?
Увы это сложнее. Можно делать проверки на то есть ли такой компонент или нет. Если тебе надо добиться анонимности то лучше использовать мессенджеры. Если у тебя несколько объектов с разными скриптами но надо делать для них один набор действий то сделай класс родитель и виртуальные методы.
Тогда сможешь обращаться к одному скрипту ( классу родителю ) вызывая этот метод.
Code public class mainObject: monobehaviour{ public virtual void DoFoo(){ } }
Code public class childObject: mainObject{
public override void DoFoo(){
}
}
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 19:57 | Сообщение # 2470 |
заслуженный участник
Сейчас нет на сайте
| у меня несколько обьектов(мобов) у которых скрипт с переменными статов... так вот при активации атаки у плеера нужно что бы действовало это только на выбраный обьект... тоесть переменная hp изменяласьб только у определенного(выбраного) обьекта...
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
pixeye | Дата: Воскресенье, 01 Июля 2012, 20:06 | Сообщение # 2471 |
Red Winter Software
Сейчас нет на сайте
| Quote (BrightSpot) у меня несколько обьектов(мобов) у которых скрипт с переменными статов... так вот при активации атаки у плеера нужно что бы действовало это только на выбраный обьект... тоесть переменная hp изменяласьб только у определенного(выбраного) обьекта...
Тогда советую прочитать верх странички и конец предыдущей. Я давал ответ по лучам и коллайдерам которые отвечают твоему запросу на действие с выбранным объектом.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 20:20 | Сообщение # 2472 |
заслуженный участник
Сейчас нет на сайте
| все понял=)) спс Добавлено (01.07.2012, 20:20) --------------------------------------------- поход не совсем понял... Code public GameObject self; private Mob_stats ml=self.GetComponent<Mob_stats>(); выдает ошибку...
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
pixeye | Дата: Воскресенье, 01 Июля 2012, 20:22 | Сообщение # 2473 |
Red Winter Software
Сейчас нет на сайте
| Quote (BrightSpot) ыдает ошибку...
Всегда пиши ошибку если выдает ошибку) у тебя в дебагере все написано, копипасть сюда)
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 20:25 | Сообщение # 2474 |
заслуженный участник
Сейчас нет на сайте
| сорь... в девелопере: инициализатор поля не может обращатся к нестатичному полю, методу или свойству"Monster_Ai.self"
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
pixeye | Дата: Воскресенье, 01 Июля 2012, 20:26 | Сообщение # 2475 |
Red Winter Software
Сейчас нет на сайте
| Quote (BrightSpot) сорь... в девелопере: инициализатор поля не может обращатся к нестатичному полю, методу или свойству"Monster_Ai.self"
кинь весь скрипт)
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 20:27 | Сообщение # 2476 |
заслуженный участник
Сейчас нет на сайте
| воть... я работающую часть в коменты вынес что бы глаза не морочало ошибками:
Code public class Monster_Ai : MonoBehaviour { //выбраный обьект public Transform target; public GameObject self; private Mob_stats ml=self.GetComponent<Mob_stats>();
private bool tru_target = false; void awake(){
} // Use this for initialization void Start () {
}
// Update is called once per frame void Update () { /* if (self.GetComponent<Mob_stats>().agr>=10) { if (Vector3.Distance(target.position,transform.position) < GetComponent<self.Mob_stats>().attack_radius) { tru_target=true; } if (tru_target==true) { Debug.DrawLine(target.position,transform.position,Color.red); if (Vector3.Distance(target.position,transform.position) > GetComponent<self.Mob_stats>().attack_distance) { transform.rotation=Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(target.position-transform.position), GetComponent<self.Mob_stats>().rot_speed*Time.deltaTime); transform.Translate(Vector3.forward *GetComponent<self.Mob_stats>().move_speed* Time.deltaTime,Space.Self); } } if (Vector3.Distance(target.position,transform.position) > GetComponent<self.Mob_stats>().max_attack_radius) { tru_target=false; GetComponent<self.Mob_stats>().agr=GetComponent<self.Mob_stats>().s_agr; } } */ } }
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
pixeye | Дата: Воскресенье, 01 Июля 2012, 20:31 | Сообщение # 2477 |
Red Winter Software
Сейчас нет на сайте
| убери везде GetComponent< self.Mob_stats >() на GetComponent< Mob_stats >()
И нельзя инициализировать в объявлениях
private Mob_stats ml=self.GetComponent(); - это раздели на
private Mob_stats ml;
а в авейк пиши
ml = self.GetComponent< Mob_stats >(); //
И еще. Если берешь свой же скрипт то можно просто писать GetComponent< my_script >() ; без self.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
BrightSpot | Дата: Воскресенье, 01 Июля 2012, 20:38 | Сообщение # 2478 |
заслуженный участник
Сейчас нет на сайте
| Quote (pixeye) убери везде GetComponent() на GetComponent() эт и так ясно=)) прост я еще не дошел туда=) спс=))Добавлено (01.07.2012, 20:38) --------------------------------------------- все супер=)) все работает=)) когда смогу еще ++ подкину=))
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
MyACT | Дата: Понедельник, 02 Июля 2012, 07:25 | Сообщение # 2479 |
C# CODERS
Сейчас нет на сайте
| Unity выдает еще те сюрпризы....Вообщем,половина текстур скайбоксов из Standart Assets просто пропали!Плюс до этого вылезли швы на них. Дайте пожалуйста ссылку где можно скачать заново скайбоксы Добавлено (02.07.2012, 07:25) --------------------------------------------- В частности нету UP текстур
3дэшечки: https://sketchfab.com/myactyindie Курентли воркс он: https://myacty.itch.io/raskopnik
|
|
| |
-AL- | Дата: Вторник, 03 Июля 2012, 20:38 | Сообщение # 2480 |
был не раз
Сейчас нет на сайте
| Прошу простить, могу повторятся. Но вот вопрос: Я создаю GUI Box Code GUI.Box (boxEnergy, _energy + "%"); И мне нужно чтобы при наведении на этот самый бокс появлялся еще один в позиции мыши. (что-то типо title на html) Пробовал работать в переменными, но все даром, ведь не знаю как сам скрипт на гуи повесить чтобы отследить его через OnMouseEnter. Пример прошу на C#. Заранее спасибо.
|
|
| |