作业帮 > 综合 > 作业

在Unity3D中如何让摄像机围绕某个特定的对象旋转?

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/13 11:09:10
在Unity3D中如何让摄像机围绕某个特定的对象旋转?
在Unity3D中如何让摄像机围绕某个特定的对象旋转?
在制作游戏时我们需要让摄像机围绕某个特定对象旋转,以便使用户更方便观察该对象.我们需要用到transform的RotateAround(vector3 postion,vector3 axis,float angle)函数(注:本文仅用C#).\x0d下面例子可以让你更好的理\x0d游戏界面:一个摄像机Main Camera,一个方体Cube\x0d在Project视图中创建一个新的脚本文件Gamelogic1.cs\x0d代码界面:代码如下\x0dusing UnityEngine;\x0dusing System.Collections;\x0dpublic class Gamelogic1: MonoBehaviour {\x0dpublic GameObject cube;\x0dVector2 p1,p2;//用来记录鼠标的位置,以便计算旋转幅度\x0d// Use this for initialization\x0dvoid Start () {\x0doriginalPosition=transform.position;\x0dcube=GameObject.Find("Cube");}// Update is called once per frame\x0dvoid Update () {\x0dif(Input.GetMouseButtonDown(1)){p1=new Vector2(Input.mousePosition.x,Input.mousePosition.y);//鼠标右键按下时记录鼠标位置p1}if(Input.GetMouseButton(1)){p2=new Vector2(Input.mousePosition.x,Input.mousePosition.y);//鼠标右键拖动时记录鼠标位置p2\x0d//下面开始旋转,仅在水平方向上进行旋转\x0dfloat dx=p2.x-p1.x;\x0dtransform.RotateAround(cube.transform.position,vector3.up,dx*Time.delTime);}}PS:您的Unity3D的MonoDevelop可能不支持中文,如出现错误,请将上面示例代码中的中文注释去掉\x0d编辑好代码之后,在视图界面将Gamelogic1.cs拖到摄像机上,以便使代码能执行.这样您就可以在水平方向上按任意角度查看对象了.\x0d编程小记:可以多参考一下Unity的脚本参考,那里有所有对象、属性、方法的解释及示例,当然前提是您英文要好O(∩_∩)O哈哈~