找回密码
 立即注册
查看: 6580|回复: 65

[基础] Unity3D 第二课如何让摄像机跟随你的角色

[复制链接]
发表于 2013-3-4 22:44 | 显示全部楼层 |阅读模式
资源信息 Tutorial Information
教程名称: Unity3D 第二课如何让摄像机跟随你的角色(发帖教程)
适用引擎:   (适用引擎,为空默认为Unity)
教程语种: 中文
教程等级: 1
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: 转载自互联网 (如有问题请短消息联系作者或发表回复)
下载地址: (兑换积分)
点击查看原图
美丽分割线
本帖最后由 fjkrl 于 2013-3-5 00:22 编辑

本教程接上面一课
我现在场景中建立一个角色,这里我用一个方块代替,方块命名为Player,
  •     //用来获取一个角色对象
  •     public GameObject target;

复制代码
原先MouseLook代码我不做修改
Update ()里初始化
  • //这里的Pllayer是我获取的那个对象
  • target = GameObject.Find("Player");

复制代码
下面贴出全部代码
  •     using UnityEngine;
  •     using System.Collections;
  •     [AddComponentMenu("Camera-Control/Mouse Look")]
  •     public class MouseLook : MonoBehaviour {
  •             public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
  •             public RotationAxes axes = RotationAxes.MouseXAndY;
  •             public float sensitivityX = 15F;
  •             public float sensitivityY = 15F;
  •             public float minimumX = -360F;
  •             public float maximumX = 360F;
  •             public float minimumY = -85F;
  •             public float maximumY = 4F;
  •             public float rotationY = 0F;
  •             public GameObject target;
  •             void Update ()
  •             {
  •                     target = GameObject.Find("Player");
  •                     if(Input.GetMouseButton(1))
  •                     {
  •                             transform.position = target.transform.position;
  •                             if (axes == RotationAxes.MouseXAndY)
  •                             {
  •                                     float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
  •                                     rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
  •                                     rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
  •                                     transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
  •                             }
  •                             else if (axes == RotationAxes.MouseX)
  •                             {
  •                                     transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
  •                             }
  •                             else
  •                             {
  •                                     rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
  •                                     rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
  •                                     transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
  •                             }
  •                             SetDistance();
  •                     }
  •                     else
  •                 {
  •                     transform.position = target.transform.position;
  •                            SetDistance();
  •                 }
  •             }
  •             void Start ()
  •             {
  •                     if (rigidbody)
  •                     {
  •                             rigidbody.freezeRotation = true;
  •                             transform.position = target.transform.position;
  •                     }
  •             }
  •             //设置相机与人物之间的距离
  •             void SetDistance()
  •             {
  •                  transform.Translate(Vector3.forward * theDistance);
  •             }
  •     }

复制代码
现在大家试试动下鼠标摄像机是不是以一个物体为中心点旋转了哇

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2鲜花 +2 +1 收起 理由
棉花糖One + 1 根本没有下载包
lukylukymg + 1 + 1 很给力!

查看全部评分

发表于 2013-8-25 17:51 | 显示全部楼层
theDistance参数是怎么来的?谢谢
发表于 2016-7-21 23:13 | 显示全部楼层
22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy22sy
发表于 2016-10-31 11:39 | 显示全部楼层
可以可以................
发表于 2017-2-10 12:04 | 显示全部楼层
楼主是超人
发表于 2017-2-10 12:31 | 显示全部楼层
好帖就是要顶
发表于 2017-2-10 12:25 | 显示全部楼层
难得一见的好帖
发表于 2017-2-10 12:41 | 显示全部楼层
很好哦
发表于 2017-2-10 12:11 | 显示全部楼层
LZ真是人才
发表于 2017-3-10 18:37 | 显示全部楼层
楼主是超人
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-2 14:09 , Processed in 0.269538 second(s), 36 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表