思路:
创建一个空物体,把相机和人物都设置为空物体的子物体
这样移动空物体时,相机和人物就会同步移动,达到跟随效果
步骤
1、创建一个空物体,命名为move
2、在move下创建一个子物体,如立方体,命名为person
3、将Main Camera也拖动为move的子物体
4、创建移动脚本Cameracontrol,挂载在move上
5、注意调整相机和person的相对位置,使看起来更合理
脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cameracontrol : MonoBehaviour {
void Start () {
}
// Update is called once per frame
void Update () {
GameObject gameObject = GameObject.Find ("move");
//w键前进
if(Input.GetKey(KeyCode.W) ||Input.GetKey(KeyCode.UpArrow) ) //Z+
{
this.gameObject.transform.Translate(new Vector3(0,0, 0.2f*Time.deltaTime));
}
//s键后退
if(Input.GetKey(KeyCode.S) ||Input.GetKey(KeyCode.DownArrow)) //Z-
{
this.gameObject.transform.Translate(new Vector3(0,0,-0.2f*Time.deltaTime));
}
//a键
if(Input.GetKey(KeyCode.A) ||Input.GetKey(KeyCode.LeftArrow)) //X-
{
this.gameObject.transform.Translate(new Vector3(-0.2f*Time.deltaTime ,0,0));
}
//d键后退
if(Input.GetKey(KeyCode.D) ||Input.GetKey(KeyCode.RightArrow)) //X+
{
this.gameObject.transform.Translate(new Vector3(0.2f*Time.deltaTime,0,0));
}
//上
if(Input.GetKey(KeyCode.H)) //Y+
{
this.gameObject.transform.Translate(new Vector3(0, 0.2f*Time.deltaTime,0));
}
if(Input.GetKey(KeyCode.L)) //Y-
{
this.gameObject.transform.Translate(new Vector3(0, -0.2f*Time.deltaTime,0));
}
}
}