перемещение камеры мышкой
Добавлено: 11 янв 2015, 13:53
Всем привет! Нужно написать код для перемещения камеры мышкой, я написал код (пока что для одной оси), но столкнулся с такой проблемой, при щелчке мышки (когда должны регестрироватся координаты камеры в момент нажатия), координаты по х регестрируются не правильно, почему так?
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class MouseTransform : MonoBehaviour {
public Vector3 mousePos;
public Vector3 inmousePos;
public Vector3 startPos;
public Vector3 newPos;
public float newX;
void Start () {
newPos = Camera.main.transform.position;
}
void Update () {
mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition).normalized;
if (Input.GetMouseButtonDown(0))
{
newX = 0f;
inmousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition).normalized;
startPos = Camera.main.transform.position;
}
if (Input.GetMouseButtonUp(0))
{
inmousePos = new Vector3(0,0,0);
newX = 0f;
startPos = Camera.main.transform.position;
}
}
void FixedUpdate()
{
if (Input.GetMouseButton(0))
{
newX = inmousePos.x - mousePos.x;
newPos.x = startPos.x - newX;
Camera.main.transform.position = newPos;
}
}
}
using System.Collections;
public class MouseTransform : MonoBehaviour {
public Vector3 mousePos;
public Vector3 inmousePos;
public Vector3 startPos;
public Vector3 newPos;
public float newX;
void Start () {
newPos = Camera.main.transform.position;
}
void Update () {
mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition).normalized;
if (Input.GetMouseButtonDown(0))
{
newX = 0f;
inmousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition).normalized;
startPos = Camera.main.transform.position;
}
if (Input.GetMouseButtonUp(0))
{
inmousePos = new Vector3(0,0,0);
newX = 0f;
startPos = Camera.main.transform.position;
}
}
void FixedUpdate()
{
if (Input.GetMouseButton(0))
{
newX = inmousePos.x - mousePos.x;
newPos.x = startPos.x - newX;
Camera.main.transform.position = newPos;
}
}
}