|
资源信息 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);
- }
- }
复制代码
现在大家试试动下鼠标摄像机是不是以一个物体为中心点旋转了哇
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|