Unity3D学习笔记——Camera绕着物体旋转

在Unity的文档里面和百度上都没有找到如何使Camera旋转的方法,可能是我不会搜索吧,最后在百度知道上面看到了一个相关性不是很大的问题触发了我的灵感。

Unity中的GameObject之间有一个Parenting关系,如果A是B的Parent,A怎么移动怎么旋转,B就怎么移动和旋转。了解了这个就好办了,

我虽然不会旋转Camera,但是我会旋转Cube啊,把Cube设置为Camera的parent,写一个旋转Cube的C#脚本绑定到Cube上面,然后Cube怎么旋转Camera就怎么旋转了。

最后想办法把这个Cube隐藏掉,不然的话,你在Scene窗口中只能看到这个Cube,而不能看到其它东西。这就和你绕着一个柱子走,你眼睛看到的永远是柱子,现在想办法如果能把这个柱子隐藏掉,那么我就能看到其它的东西了,然后就会有那种镜头旋转的效果了。

最后做成了这种效果:

 

下面是源码,用Unity3D打开之后切换倒Scene窗口查看效果更好。

 http://pan.baidu.com/s/1BtOPT

 

恩,不知道有没有什么办法能隐藏掉一个GameObject同时又不影响Camera的旋转?

 

其实这篇文章的目的是GameObject之间的Parenting属性,感觉这个属性很重要,会在许多的地方用到。比如设置一个点光源为一个GameObject的Child属性。

那么GameObject移动的时候,点光源也在移动。再比如在FPS游戏中第三视角估计就是一个camera绑定到了人物模型的后方或者后上方,人物模型移动的时候camera里面的scene就随着变化了。

 

感觉3D数学好难啊,啥是欧拉角啊???

 

 

突然发现自己好蠢啊,只要写个RotateAround脚本然后附加到camera就可以了,我一开始的思维是,旋转照相机的功能是属于照相机这个类的,于是在unity的帮助文件里面果然找到了camera这个类,但是并没有发现和旋转照相机有关的信息。这几天反思了几天写的文章,突然发现其实任何对象都可以transform.RouteAround的,你把包含旋转代码的脚本绑定在照相机上面那么就旋转照相机,绑定在cubte上那就旋转cube,光照什么的都可以绑。

posted on 2013-11-19 23:16  danchaofan361  阅读(4188)  评论(0编辑  收藏  举报

导航