在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,光照什么的都可以綁。