以上帝视角控制相机在场景中的移动、旋转
父物体与相机为子物体的结合实现,父物体与相机Z轴正方向相对
脚本挂在给父物体
using
System.
Collections;
using
System.
Collections.
Generic;
using
UnityEngine;
public
class
CamreViewCtrl :
MonoBehaviour {
public
float moveSpeed =
20.0f;
public
float rotateSpeed =
20.0f;
public
float viewSpeed =
20.0f;
private
Vector3 mouseInitPos;
private
Transform mainCamTrans;
private
void
Awake()
{
mainCamTrans =
GetComponentInChildren<
Camera>().
transform;
}
// Use this for initialization
void
Start () {
}
// Update is called once per frame
void
Update () {
if (
Input.
GetMouseButton(
2)) {
float x =
Input.
GetAxis(
"Mouse X") *
moveSpeed *
Time.
deltaTime;
float z =
Input.
GetAxis(
"Mouse Y") *
moveSpeed *
Time.
deltaTime;
transform.
Translate(
x,-
z,
0,
Space.
Self);
transform.
position =
new
Vector3(
transform.
position.
x,
0,
transform.
position.
z);
//transform.position -= new Vector3(x, 0, z);
}
if (
Input.
GetMouseButton(
1))
{
float Rotx =
Input.
GetAxis(
"Mouse Y") *
rotateSpeed *
Time.
deltaTime;
float Roty =
Input.
GetAxis(
"Mouse X") *
rotateSpeed *
Time.
deltaTime;
transform.
eulerAngles +=
new
Vector3(
Rotx,
Roty,
0);
}
if (
Input.
GetAxis(
"Mouse ScrollWheel") !=
0)
{
moveSpeed -=
Input.
GetAxis(
"Mouse ScrollWheel") *
viewSpeed *
Time.
deltaTime;
mainCamTrans.
Translate(
new
Vector3(
0,
0,
Input.
GetAxis(
"Mouse ScrollWheel") *
viewSpeed *
Time.
deltaTime),
Space.
Self);
}
}
}