Примитивный косяк рыбы (School Fish)

Программирование на Юнити.

Примитивный косяк рыбы (School Fish)

Сообщение jeyson 04 сен 2009, 12:12

чет стукнуло в голову попробовать с имитировать косяк рыбы. красиво все же :) два дня размышлений и поиска инфы, наткнулся на http://www.red3d.com/cwr/boids/ и получился небольшой класс:

Код: Выделить всё
using UnityEngine;
using System.Collections;

public class MyFish : MonoBehaviour {
   public Transform target; // одна цель для всего косяка, лучше точка которая случайно меняет положение каждые 2-3 секунды
   public float speed = 2f; // чем больше тем медленнее

   void Start () {
      transform.position = Random.insideUnitSphere * 80;
   }

   void Update () {
      Vector3 targetDir = (target.position + Random.insideUnitSphere * 80 + (Vector3.up*Random.Range(-50,50))) - transform.position;
      Vector3 forward = transform.forward;
      Quaternion rotation = Quaternion.LookRotation(targetDir);
      transform.rotation = Quaternion.Slerp(transform.rotation, rotation,Time.deltaTime * 1.5f);
      transform.position += forward / speed;
   }
}

аттачим скрипт на рыбку и клонируем префаб при запуске на n кол-во.

все получилось случайно, но выглядит красиво. если добавить небольшой AI то будет поестественнее, так же надо обход препятствия, но это потом.
по сути вся фишка в Vector3 targetDir = (target.position + Random.insideUnitSphere * 80 + (Vector3.up*Random.Range(-50,50))) - transform.position;

результат http://milytia.org/unity/school_fish

HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://milytia.org/unity/school_fish.unity3d&w=800&h=600&t=true&preview=1' height='"+(600+30)+"' width='800' frameborder='0' scrolling='no'></iframe>"); </script>
Аватара пользователя
jeyson
UNIт
 
Сообщения: 113
Зарегистрирован: 15 апр 2009, 22:22
Откуда: Ижевск
  • ICQ

Re: Примитивный косяк рыбы (School Fish)

Сообщение d3gator 04 сен 2009, 15:55

прикольно
skype : oleg_fomenko
d3gator
UNIт
 
Сообщения: 119
Зарегистрирован: 20 май 2009, 21:19

Re: Примитивный косяк рыбы (School Fish)

Сообщение Neodrop 04 сен 2009, 17:21

Совсем живые... Могу дать рыбку из моей демки с аквариумом.

viewtopic.php?f=10&t=498
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Примитивный косяк рыбы (School Fish)

Сообщение JenyaHW 11 сен 2009, 21:35

Косяк таблеток для наркоманов....
(а вообще действительно прикольно....) :)
Магазин 3Д моделей. vscor.com/3Dmodels.php
JenyaHW
UNITрон
 
Сообщения: 243
Зарегистрирован: 18 июл 2009, 18:17


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8