Страница 1 из 1

tree+terrain destroy

СообщениеДобавлено: 05 мар 2016, 12:22
Masancho
Добрый день.
У террейна есть настройки деревьев, у них коллайдеры, а как-то можно получить дерево перед игроком? Кинуть рейкаст и... дальше у меня проблема...
Вообще хотел чтобы перс рубил дерево, пусть без анимации/разрушения и т.п., элементарно, в 10 взмахов топора. Именно чтобы деревья были террейновские, а не отдельные gameobject=префабы. Есть у меня мысль, что если получить дерево перед игроком, типа срубить его и в последний взмах топора заменить его на объект и повалить, но это уже совсем костыли.
Подскажите, если кто-то делал подобное.
Спасибо, сори если боян :-?

Re: tree+terrain destroy

СообщениеДобавлено: 06 мар 2016, 09:58
Masancho
пульнул рейкаст
if (Physics.Raycast(transform.position, transform.forward, out hit, 4f))
получил
hit.collider = "Terrain (UnityEngine.TerrainCollider)"
hit.point = "(97.0, 1.2, 107.1)"
hit.transform = "Terrain (UnityEngine.Transform)"
hit.rigidbody = null
дистанцию и тд.
hit.collider.gameObject = "Terrain (UnityEngine.GameObject)"

если луч сталкавиется с коллайдером объекта, то
hit.collider.gameObject = "Palm (UnityEngine.GameObject)"
могу обратиться к объекту/компонентам и т.д.


Как быть? Совсем никак к деревьям террейна, и их юзать как статичные объекты, а для интерактивных корячиться с рассадкой деревьев=gameobject?

но есть же список деревьев
treesList = ter.terrainData.treeInstances
treesList[1] = {UnityEngine.TreeInstance}
мне кажется из достумных методов там для меня ничего подходящего...

я в унынии:(

Re: tree+terrain destroy

СообщениеДобавлено: 06 мар 2016, 10:38
Woolf
Хотел бы вам помочь, но сам не в курсе.. Думаю, что деревья лучше, все-же, расставлять самому. Тогда вы имеете лучший контроль за каждым объектом дерева. На дерево можно повесить лоды, колайдеры какие хотите (а не только капсули), вы можете регулировать вращение дерева, его масштабы. Да и подмена модели для срубания и падение получается сделать гораздо эффективнее. Так что, мой вам совет, не ломайте мозг, делайте объектами.

Re: tree+terrain destroy

СообщениеДобавлено: 06 мар 2016, 13:54
Masancho
Woolf писал(а):Хотел бы вам помочь, но сам не в курсе.. Думаю, что деревья лучше, все-же, расставлять самому. Тогда вы имеете лучший контроль за каждым объектом дерева. На дерево можно повесить лоды, колайдеры какие хотите (а не только капсули), вы можете регулировать вращение дерева, его масштабы. Да и подмена модели для срубания и падение получается сделать гораздо эффективнее. Так что, мой вам совет, не ломайте мозг, делайте объектами.


Спасибо за ответ!
Woolf писал(а):дерево можно повесить лоды...

В стандартных ассетах есть Environment\SpeedTree\Conifer\Conifer_Desktop - крутое дерево, как раз с 3 лодами или 5, в инспекторе сказано, что лод0=100%, лод1=50%, лод2=25%, билборд=13%, culle=1% Получается 5 уровней детализации.
Почитал, что пишут, вроде как с таким деревом работает и внутриигровой ветер. В принципе, стандартные меня тоже устроят, т.к. я не разбирался в юнитивском генераторе деревьев.

Есть предположение, что можно в редакторе набросать террейн+деревья, при старте заменить последние на gameobject'ы.
Тогда я не знаю, как получить позицию каждого дерева из terrainData.treeInstances в мировых координатах. Не подскажете?
У меня мало опыта в этом деле, всего "пара дней"...