您的位置:首页 > 移动开发 > Unity3D

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);}}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: