亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Unity3D攝像機跟隨小球移動而不旋轉的設置方法

  發(fā)布時間:2016-03-16 14:40:16   作者:佚名   我要評論
Unity3D中怎樣讓攝像機跟隨小球移動而不旋轉?Unity3D中使用攝像機拍小球,它在移動的過程中,自身是不斷旋轉的,所以,攝像機也會跟著一起旋轉,怎么讓攝像機不轉呢?請看下文詳細介紹

在Unity中,我們經常需要讓攝像機跟隨一個物體移動,如果物體是水平移動的,而自身沒有發(fā)生任何的偏轉,那么我們可以直接將攝像機放在該物體下。這樣就可以實現它們一起移動了,但是,如果移動的物體是圓的,比如小球,它在移動的過程中,自身是不斷旋轉的,所以,攝像機也會跟著一起旋轉,那么我們看到得畫面將是天旋地轉的,很明顯,這樣是不行的。那么我們該如何正確的讓攝像機跟隨小球一起運動呢?

1、如圖,我們已經給小球添加了移動的腳本,小球是Sphere,現在想實現的是讓攝像機MainCamera跟隨小球一起運動。

2、我們先來看看上面說的不可行的方法:如圖,直接將"Main Camera"拖動到"Sphere"的子目錄,即讓攝像機成為小球的子物體,這樣,兩個對象就可以一起運動了,那么我們來看看到底可不可行。

3、我們記錄一開始兩物體的位置,此時讓小球向右移動,此時,我們從這個視角看去,的確是一起運動了,但是,這不是我們在游戲里面看到得視角,我們看到的是攝像機的視角。

4、運行游戲后,我們可以看到,畫面是"天旋地轉"的。所以,這種方法對于自身還在運動的物體來時,是不可行的。那么下來我們說說正確的做法。

正確的方法:

1、 我們要實現的是讓相機跟隨物體一起移動,其實就是讓相機和小球的相對位置不變即可。這里我們需要使用代碼來控制兩個對象之間的相對位置,使其保持不變。

首先,在MainCamera里面創(chuàng)建一個C# 腳本。如圖所示,點擊MainCamera,在右邊屬性欄最下方,選擇 AddComponent。然后,在彈出的選項里拉到最下方,選擇NewScript,然后創(chuàng)建一個C#腳本,命名為 Move。此時可以看到,我們新添加的一個C#腳本。

2、然后,開始寫代碼了。我們打開這個C# 腳本,我們要讓攝像機和小球的相對位置保持不變,那么就必須獲取到小球的位置。在Unity里,我們用transform 組件來獲取一個物體的位置。所以先定義一個transform組件,命名為bolltransform,選擇保存。

3、此時,我們返回Unity,在MainCamera的C#腳本里,多了一項。這里就是我們要添加的組件,可以看到這里還沒有添加組件。我們要獲取的是小球的位置,所以我們需要添加Sphere:將Sphere用鼠標拖進這個選擇框即可。這樣,我們就成功的將攝像機和小球關聯了起來。

4、我們點擊小球,在右邊的屬性欄里可以看見小球的一個transform屬性,只要小球一開始運動,那么它的transform屬性的值就被傳遞到了相機的bolltransform那里。我想,這里大家都是非常明白的。

5、我們已經獲取到了小球的位置,要使得它們之間的位置不變,也就是說小球和攝像機之間初始的偏移量始終不變就可以了。

所以,

1)我們首先要計算出小球和攝像機之間的偏移量。我們把偏移量設為offset,并且計算出offset。用代碼定義出來,因為偏移量是三維空間,所以我們用到Vector3。繼續(xù)在c#腳本里寫。如圖所示:

2)寫出它們之間的關系,即 初始偏移量=攝像機的位置-小球的位置。用代碼表示出來如下圖所示:

3)我們要通過此公式確定攝像機的位置,即:小球的位置+偏移量就等于攝像機的位置。而小球是不停地在動的,我們要不停的更新計算攝像機的位置,而在unity里,update方法是不停地執(zhí)行的。所以這一步的公式需要寫在 Update方法里面就可以了。在update里面寫上:transform.postion=offset+bolltransform.postion ;

6、這樣,整個過程就完成了,我們保存,開始運行,可以看到,現在攝像機看到的畫面也就一起跟著小球運動了。這就是在unity中用代碼控制兩個對象,使其距離保持不變的方法。我想,通過我這樣的講解,大家應該都懂了吧!

注意事項:Unity3D 進行游戲開發(fā)要注意游戲對象和腳本的關系,避免混淆不清。

相關推薦:

unity3D軟件怎么生成exe程序?

unity3d自定義的界面怎么還原到初始化狀態(tài)?

相關文章

  • unity3d自定義的界面怎么還原到初始化狀態(tài)?

    unity3d自定義的界面怎么還原到初始化狀態(tài)?自己設置的unity3d界面,但是用著覺得還沒有默認的界面好用個,想還原成原來的界面,該怎么設置呢?下面分享詳細的設置方法,很
    2016-02-13
  • unity3D軟件怎么生成exe程序?

    unity3D軟件怎么生成exe程序?初次用U3D的學者可能有這樣的問題,我做好的一個小游戲,怎么導出成exe的程序呢?下面小編給大家分享下制作過程,需要的朋友可以參考下
    2015-08-02
  • Unity3D 實現怪物巡邏、按路線行走操作

    這篇文章主要介紹了Unity3D 實現怪物巡邏、按路線行走操作,由于之前沒什么經驗,就只能按照自己的想法很愚笨的實現的,也算拋磚引玉,如果讀者知道如何更簡單的實現方式,
    2014-10-20
  • Unity3D 沖鋒效果、角色拖尾效果

    在本場景用到的拖尾效果可以查看我的另一篇文章,里面有詳細的介紹,刀光效果來自 Unity3D Assets 商店,只是把原作者的例子代碼整理了一下,變得非常簡單實用的類。
    2014-10-20
  • Unity3D 使用 WWW 加載場景并顯示進度條

    這篇文章主要介紹了Unity3D 使用 WWW 加載場景并顯示進度條,并附上相關代碼,有需要的朋友參考下
    2014-10-20
  • Unity3D 預設打包的注意事項

    這篇文章主要介紹了Unity3D 打包預設的時候應該注意哪些問題,非常的實用,是篇非常不錯的文章,希望對大家能有所幫助
    2014-10-20
  • Unity3D 場景導出成 XML 并解析還原場景

    這篇文章主要介紹了Unity3D 場景導出成 XML 并解析還原場景,中間部分代碼取自互聯網,并進行了修改,有需要的朋友可以參考下
    2014-10-20
  • Unity3D 4.0 下載、安裝破解教程

    Unity3D是由Unity Technologies開發(fā)的一個讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發(fā)工具,是一個全面整合的專業(yè)
    2014-07-09
  • Unity3D中自動調用的方法總結

    這篇文章主要介紹了Unity3D中自動調用的方法總結,需要的朋友可以參考下
    2014-04-24
  • unity3d怎么連接sql server數據庫

    雖然在Unity3D中能夠通過PlayerPrefs類來保存和讀取數據,但是一旦數據量增大,僅僅通過代碼的方式存取數據,這樣的工作量是非常大的
    2013-11-18

最新評論