Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
lentinant | Дата: Воскресенье, 11 Августа 2013, 01:21 | Сообщение # 4481 |
ленивый программист
Сейчас нет на сайте
| romgerman, по описанию в доках, мне показалось, что это суть этих кастов - вместо точки (как в Raycast) мы запускаем полноценный объект. Мне же нужно что-то, что более близкое к Raycast, просто чтобы вместо прямой работало с кривой. Но, я так понял, реализовать это можно, скорее всего, только через разбиение дуги на прямые отрезки.
Добавлено (11.08.2013, 01:21) --------------------------------------------- Вот же блин, я только что понял, что мне, в принципе, и не нужен Raycast или родственные ему функции.
Когда-то тут будут ссылки на крутые проекты. Или нет.
Сообщение отредактировал lentinant - Воскресенье, 11 Августа 2013, 01:21 |
|
| |
MasterSambo | Дата: Воскресенье, 11 Августа 2013, 11:25 | Сообщение # 4482 |
заслуженный участник
Сейчас нет на сайте
| Цитата (zisX) arkady, Устанавливай free и не парься. А там чего-то без лицензии не принимается
|
|
| |
zaicev9797 | Дата: Воскресенье, 11 Августа 2013, 12:05 | Сообщение # 4483 |
AbRaKaDaBrA
Сейчас нет на сайте
| Надо в окошке авторизпваться (эмэил написать, пароль придумать) перед этим ессно надо выбрать фри версию или 30 дней триал
проект Mysterious Space. The losted moment
|
|
| |
Fr0sT | Дата: Воскресенье, 11 Августа 2013, 12:10 | Сообщение # 4484 |
постоянный участник
Сейчас нет на сайте
| Ребят помогите мне,есть в юнити кокието способы оптимизации игры,туман например поставить,или с ним наоборот игра нагружается?Ато наделал простеньких моделек в google sketch up,уровень из них сделал,не маленький но и не огромный,средний короче.Деревьев навалил,кустов.А игра висает,даже дпльность камеры отрубал - ничего.Помогите кто знает что там можно мне сделать?
|
|
| |
Alastar | Дата: Воскресенье, 11 Августа 2013, 12:16 | Сообщение # 4485 |
постоянный участник
Сейчас нет на сайте
| Fr0sT, значит у тебя убийственные деревья или модели, попробуй уменьшить кол-во полигонов.
Big Boobs (+18 only!)
|
|
| |
zaicev9797 | Дата: Воскресенье, 11 Августа 2013, 12:55 | Сообщение # 4486 |
AbRaKaDaBrA
Сейчас нет на сайте
| Окошко статистикс в студию
проект Mysterious Space. The losted moment
|
|
| |
Fr0sT | Дата: Воскресенье, 11 Августа 2013, 13:24 | Сообщение # 4487 |
постоянный участник
Сейчас нет на сайте
| Модельки ооочень низкополигональные. Ну да,вообщем я заглянул в статистик и увиел что у меня там туева хуча анимаций воспроизводится.Это предметы которые я должен собирать - колечки.Каждый имеет анимацию.А так понимаю нужно взять массив этих предметов и отрубить их все,и всключать если расстояние от меня до этого предмета меньше ста например.(поправка это фигня,дело в рендере) Еще заметил,что это рендер объектов.Когда он больше 17 то начинает лагать.Как с этим справиться??? Вот накатал скрипт а он чтото не робит:
Код public GameObject[] allRings; void Start () { allRings = GameObject.FindGameObjectsWithTag("Ring"); }
void Update () { foreach(GameObject ring in allRings) { float dist = Vector3.Distance(transform.position,ring.transform.position); if(dist > ringDist) { ring.gameObject.SetActive(false); } if(dist < ringDist) { ringl.gameObject.SetActive(true); } } } Вот скрин,кстати когда в инспекторе отрубаю эти кольца(они и в игре исчезают)то сразу всё летит.
Кстати когда камера в пол то всё бысто,а когда вдоль уровня то лаги,а у меня уровень чисто прямо идет,нужно вперед бежать как в креше на пс1.Мож в импорте моделей накосячил?
Сообщение отредактировал Fr0sT - Воскресенье, 11 Августа 2013, 18:41 |
|
| |
Kira | Дата: Понедельник, 12 Августа 2013, 19:55 | Сообщение # 4488 |
заслуженный участник
Сейчас нет на сайте
| как обнулить RaycastHit hit; ? мой код: Код if (Input.GetMouseButtonDown(0)) { RaycastHit hit; ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) {
if (hit.collider != null) { Click(hit.collider.gameObject); } } } Что бы убрать создание хита, нужно как то его обнулять. hit=null; не работает.
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
lentinant | Дата: Понедельник, 12 Августа 2013, 20:29 | Сообщение # 4489 |
ленивый программист
Сейчас нет на сайте
| А зачем обнулять? Если ты хочешь использовать его в другом Рейкасте, он просто его перепишет.
Когда-то тут будут ссылки на крутые проекты. Или нет.
Сообщение отредактировал lentinant - Понедельник, 12 Августа 2013, 20:32 |
|
| |
Kira | Дата: Понедельник, 12 Августа 2013, 21:55 | Сообщение # 4490 |
заслуженный участник
Сейчас нет на сайте
| lentinant, у меня код в апдайте, и если не обнулить хит будет срабатывать всегда.
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
seaman | Дата: Понедельник, 12 Августа 2013, 23:26 | Сообщение # 4491 |
старожил
Сейчас нет на сайте
| Цитата если не обнулить хит будет срабатывать всегда. Чего? Цитата hit.collider != null Вот это зачем? Raycast просто не сработает, если не будет коллайдера. Совет - откройте мануал и почитайте про Raycast. Вы его совсем не понимаете.
|
|
| |
lentinant | Дата: Вторник, 13 Августа 2013, 01:33 | Сообщение # 4492 |
ленивый программист
Сейчас нет на сайте
| Цитата (Kira) у меня код в апдайте, и если не обнулить хит будет срабатывать всегда Я в упор не понимаю, что у тебя за проблема. Во первых, Хит у тебя - локальная переменная, и при вызове каждого апдейта создается заново. Во вторых, в рейкасте он с модификатором out, а это значит, что функция может его менять (а в случае с рейкастом, я думаю, она его как раз обнуляет).
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| | |
EchoIT | Дата: Вторник, 13 Августа 2013, 10:46 | Сообщение # 4494 |
старожил
Сейчас нет на сайте
| Fr0sT, Player.transform.position-Player.transform.forward+Player.transform.up и т.д., пробуй разные варианты этих комбинаций, дели/умножай и будет то, что надо.
Долгожданный анонсик: State of War
|
|
| |
White9 | Дата: Вторник, 13 Августа 2013, 11:14 | Сообщение # 4495 |
заслуженный участник
Сейчас нет на сайте
| Fr0sT, используй стандартный скрипт smoothfollow - он как раз для этого )
|
|
| | |
Kira | Дата: Вторник, 13 Августа 2013, 17:25 | Сообщение # 4497 |
заслуженный участник
Сейчас нет на сайте
| Цитата (lentinant) Я в упор не понимаю, что у тебя за проблема. Во первых, Хит у тебя - локальная переменная, и при вызове каждого апдейта создается заново. Во вторых, в рейкасте он с модификатором out, а это значит, что функция может его менять (а в случае с рейкастом, я думаю, она его как раз обнуляет). Это временное решение, т.к хит уничтожается и с новым циклом создается вновь. А как по твоему, получить хит? ведь функция булева? естественно out. а в случае с рейкастом, я думаю, она его как раз обнуляет Как раз-таки нет, если ткнуть на го с колайдером, а потом в пустое место, то вернется последний го с колайдером, чего мне не нужно. Цитата (seaman) Вот это зачем? Raycast просто не сработает, если не будет коллайдера. Так мне и нужно. Нет колайдера, значит не надо.
Та суть не так важно, просто советовали для мобильников не создавать переменных в апдейтах. Код using UnityEngine; using System.Collections;
public class MouseClick : MonoBehaviour {
// Use this for initialization
static Ray ray;
void Start() {
} public delegate void MouseCliked(GameObject go); // Update is called once per frame public MouseCliked Click;
public void mouseKlick() { if (Input.GetMouseButtonDown(0)) { RaycastHit hit; ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) {
if (hit.collider != null) { Click(hit.collider.gameObject); }
} }
} void Update() { mouseKlick();
} } Вообщем не думаю, что из за одной переменной мобильник напряжется.
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
Сообщение отредактировал Kira - Вторник, 13 Августа 2013, 17:36 |
|
| |
Vicka | Дата: Среда, 14 Августа 2013, 11:20 | Сообщение # 4498 |
Another ART
Сейчас нет на сайте
| А есть перевод на родной - Script Reference?
|
|
| |
PoqXert | Дата: Среда, 14 Августа 2013, 12:26 | Сообщение # 4499 |
постоянный участник
Сейчас нет на сайте
| http://unity.ogf.su/Documentation/ScriptReference/
Расширения для Unity3D Блог программиста - PoqXert.ru
|
|
| |
Fr0sT | Дата: Четверг, 15 Августа 2013, 10:28 | Сообщение # 4500 |
постоянный участник
Сейчас нет на сайте
| А как получить позицию какого нибудь зд объекта на экране? Вот так vector3 pos = Camera.WorldToScreenPoint(enemy.transform.position);
Сообщение отредактировал Fr0sT - Четверг, 15 Августа 2013, 10:35 |
|
| |
|