实现相机平移功能
查了很久的csdn没找到合适,最终自己写了一个
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RSTCamera : MonoBehaviour {
public float HorSpeed = 10f;//移动速度
public float VerSpeed = 10f;//垂直移速
private Transform m_transform;
void Start()
{
m_transform = Camera.main.transform;
}
//Update is called once per framevoid
void Update(){
Vector3 v1 = Camera.main.ScreenToViewportPoint(Input.mousePosition);
Vector3 dir_forward = m_transform.forward;
Vector3 dir_right = m_transform.right;
//消除高度变化
dir_right.y = 0;
dir_forward.y = 0;
dir_forward = dir_forward.normalized;
dir_right = dir_right.normalized;
if (v1.x < 0.05f)
{
m_transform.Translate(-dir_right * HorSpeed * Time.deltaTime, Space.World);
}
if (v1.x > 1 - 0.05f)
{
m_transform.Translate(dir_right * HorSpeed * Time.deltaTime, Space.World);
}
if (v1.y < 0.05f)
{
m_transform.Translate(-dir_forward * VerSpeed * Time.deltaTime, Space.World);
}
if (v1.y > 1 - 0.05f)
{
m_transform.Translate(dir_forward * VerSpeed * Time.deltaTime, Space.World);
}
//Horizontal、Vertical
if (Input.GetAxis("Vertical") != 0)
{
m_transform.Translate(dir_forward * VerSpeed * Input.GetAxis("Vertical") * Time.deltaTime, Space.World);
}
if ( Input.GetAxis("Horizontal") != 0)
{
m_transform.Translate(dir_right * HorSpeed * Input.GetAxis("Horizontal") * Time.deltaTime, Space.World);
}
}
}