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.
Скачать пример (1033)17 566 комментариев Categories: Ресурсы Метки: Camera, Unity 3D