Posted on 25.12.2012, 22:01 By Shad
Скрипты C# (Unity 3D) для управления камерой в стратегии или изометрическом РПГ. Так же может пригодиться в других случаях, когда надо перемешать камеру вдоль плоской поверхность с помощью мыши.
Скрипт MoveCamera — управляет самой камерой:
private Vector3 _lastPosition;
public Camera MainCamera; //Здесь подключается камера
public Vector3 LastPosition{
set{_lastPosition = value;}
get{return _lastPosition;}
}
void Start () {
_lastPosition = MainCamera.transform.position;
}
void Update () {
if (_lastPosition != MainCamera.transform.position){
MainCamera.transform.position = _lastPosition;
}
}
Скрипт MouseControl — отслеживает мышь и при необходимости двигает камеру:
private Vector2 _pos;
private bool buttonDown = false;
//Коэффициент смещения камеры, относительно движения мыши.
//Для каждого конкретного случая определяется методом подбора
private float konvert = .05f;
void Update () {
Vector2 mouse = Input.mousePosition;
if (buttonDown){
Vector2 move = _pos - mouse;
Vector3 move3 = new Vector3(move.x*konvert, 0, move.y*konvert);
gameObject.GetComponent<MoveCamera>().LastPosition+= move3;
_pos = mouse;
}
if (Input.GetMouseButtonDown(0))
{
buttonDown = true;
_pos = mouse;
}
if (Input.GetMouseButtonUp(0)){
buttonDown = false;
}
}
Оба скрипта, естественно, должны быть прикреплены к одному из объектов на сцене.
Если для игры не нужна перспектива, то её можно отключить изменив в камере параметр Projection на Orthographic.
Скачать пример (Одна Загрузка ) Categories: Ресурсы Метки: Camera, Unity 3D
