- Код: Выделить всё
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 код для вашего блога :