unity3d实现相机对场景物体的旋转、缩放、平移查看功能、近似于scene下查看场景的效果
2015-07-06 15:20
1411 查看
代码如下:
using UnityEngine;using System.Collections;public class Camera_control_rotate : MonoBehaviour{public float moveSeed = 80f;//移动速度public float rotateSpeed = 200f;//旋转速度public float zoomSpeed = 60f;//缩放速度private Transform m_transform;// Use this for initializationvoid
Start (){m_transform = gameObject.transform;}// Update is called once per framevoid Update (){if (Input.GetMouseButton (2)) {transform.Translate (Input.GetAxis ("Mouse X") * (-1f) * moveSeed * Time.deltaTime, Input.GetAxis ("Mouse Y") * (-1f) * moveSeed *
Time.deltaTime, 0, Space.Self);}transform.Translate (0, 0, Input.GetAxis ("Mouse ScrollWheel") * zoomSpeed * Time.deltaTime, Space.Self);transform.Translate (Input.GetAxis ("Horizontal") * moveSeed * Time.deltaTime, Input.GetAxis ("wnQEdDownQE") * moveSeed
* Time.deltaTime, Input.GetAxis ("Vertical") * moveSeed * Time.deltaTime, Space.Self);//定义射线的方向 Vector3 fwd = m_transform.TransformDirection (Vector3.forward);RaycastHit hit;//发射一条射线找到相机围绕旋转的点if (Physics.Raycast (m_transform.position, fwd, out hit, 100.0f))
{if (Input.GetMouseButton (0)) {m_transform.RotateAround (hit.point, Vector3.up,Input.GetAxis ("Mouse X") * rotateSpeed * Time.deltaTime);m_transform.RotateAround (hit.point, m_transform.right,Input.GetAxis ("Mouse Y") * -rotateSpeed * Time.deltaTime);}}}}
using UnityEngine;using System.Collections;public class Camera_control_rotate : MonoBehaviour{public float moveSeed = 80f;//移动速度public float rotateSpeed = 200f;//旋转速度public float zoomSpeed = 60f;//缩放速度private Transform m_transform;// Use this for initializationvoid
Start (){m_transform = gameObject.transform;}// Update is called once per framevoid Update (){if (Input.GetMouseButton (2)) {transform.Translate (Input.GetAxis ("Mouse X") * (-1f) * moveSeed * Time.deltaTime, Input.GetAxis ("Mouse Y") * (-1f) * moveSeed *
Time.deltaTime, 0, Space.Self);}transform.Translate (0, 0, Input.GetAxis ("Mouse ScrollWheel") * zoomSpeed * Time.deltaTime, Space.Self);transform.Translate (Input.GetAxis ("Horizontal") * moveSeed * Time.deltaTime, Input.GetAxis ("wnQEdDownQE") * moveSeed
* Time.deltaTime, Input.GetAxis ("Vertical") * moveSeed * Time.deltaTime, Space.Self);//定义射线的方向 Vector3 fwd = m_transform.TransformDirection (Vector3.forward);RaycastHit hit;//发射一条射线找到相机围绕旋转的点if (Physics.Raycast (m_transform.position, fwd, out hit, 100.0f))
{if (Input.GetMouseButton (0)) {m_transform.RotateAround (hit.point, Vector3.up,Input.GetAxis ("Mouse X") * rotateSpeed * Time.deltaTime);m_transform.RotateAround (hit.point, m_transform.right,Input.GetAxis ("Mouse Y") * -rotateSpeed * Time.deltaTime);}}}}
相关文章推荐
- Unity之depth与z轴的关系
- unity3D角色代码控制问题
- Unity FingerGestures 手势插件教程
- Unity3D 资源路径
- Unity的DrawCall
- unity透明物体处理
- Unity最优化摘要
- Unity即将到来的2D工具
- Unity 64位发布
- unity3d开源Ultimate MMORPG插件技术文档渣翻译第2页
- Unity3D跑酷游戏开发-无尽的道路
- Unity3D灯光详解
- Unity3D与旋转相关的函数(C#)
- Unity3D默认的快捷键
- Unity对象池的实现
- Unity 3D酷跑游戏中遇到的问题
- [Unity-25] Unity中让游戏对象消失或隐藏的几种方法
- Unity 3D酷跑类游戏场景循环
- unity, Destroy注意事项
- Unity3D 模型换肤技术