日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity之升高人物视野

發布時間:2023/12/15 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity之升高人物视野 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在做漫游的時候,如果你是使用的第一人稱,看比你視野高或者低的物體時,你需要看清物體貼圖的細節,比如說你要看清上面寫的小字是什么,仰視或者俯視,由于距離的限制很難能夠到達清晰的效果,如果平視就需要改變視野的高度,在這里就簡單探討一下如何來改變第一人稱視野的高度問題。


在Unity里第一人物呈現在場景里就是這么一個綠柱,綠色部分代表人物高度,默認值是2,高度增加綠柱隨之增長。綠柱中間部分灰色的膠囊體為攝像機所在位置,默認位置為中間位置,既center.y=0,他放射出的錐形白色細線就為人物視野范圍。調整人物視野高度實際就是調節攝像機在Y軸的高度。
攝像機高度在第一人稱的場景中是由人物高度height和攝像機相對人物高度的位移center.y的值來決定的。


因為重力原因,在運行場景時,人物高度呈現的綠色柱體是落地的,人物中transform.poition.y的y軸坐標只代表人物的初始位置,與運行后人物落地的坐標值是不一致的,所以在程序中單純更改坐標y軸的值是改變不了任務視野高度的。另外,如果在運行場景中人物的y軸的坐標值不變的情況下,光更改人物高度height的值,有可能會捅破天,達到場景的上限值尤其是在一個房間里的場景表現的特為明顯,單純更改center.y的值有可能會直接捅破地,超出地面的下限值,這兩種情況都可能導致人物掉出場景。要想更改視野高度只能幾個值同時改變。
首先我們建立第一人物視野。先倒入第一人物,在project里點擊右鍵導入character controller,然后再在這個選項中找到first person controller將它拖到hierarchy中,將第一人物拖到場景中調整人物位置,這樣第一人物就建立好了。


接下來我們進行第二步,調整高度。
private var controller:CharacterController=null; //建立角色對象
private var moveSpeed:float=0.4f; ?//上下移動步幅
private var cameraY:float=14.0f; ? //初始化人物高度


這里補充說一句,最好將攝像機位置放在綠柱的最上方,相當于人頭在身體的上方一樣,這里我把center中y軸的值設為了-4,負值代表向綠柱的上方移動,具體的值你要在場景中觀察,以人物高度來定,人物高度不同,這個值也是不同的。
private var pos:Vector3; ?//角色坐標
function Start () {controller=GetComponent(CharacterController);
? ?
}


function Update () {


controller.height=cameraY;
//按下Q鍵升高視野高度
? if(Input.GetKeyDown(KeyCode.Q))
? {
? if(controller.height<24) ?//規定一個升高的上限值
? {
? ? ? cameraY=cameraY+moveSpeed;
? ? controller.height=cameraY;
? ? controller.center.y=controller.center.y-0.2f;
? ? //升高角色y軸坐標值,防止因參數改變人物身體捅破地
? ?controller.transform.position=new Vector3(controller.transform.position.x,controller.transform.position.y+(moveSpeed*0.8f),controller.transform.position.z);
? ?}
? }
? //按下E鍵降低視野高度


? ?if(Input.GetKeyDown(KeyCode.E))
? {
? ? ?if(controller.height>8) ? //規定一個下降的下限值
? {
? ? cameraY=cameraY-moveSpeed;
? ? controller.height=cameraY;
? ? controller.center.y=controller.center.y+0.2f;
? ??
? ?controller.transform.position=new Vector3(controller.transform.position.x,controller.transform.position.y+(moveSpeed*0.8f),controller.transform.position.z);
? ? ?}
? }


? pos=controller.transform.position;
??
??
}



總結

以上是生活随笔為你收集整理的Unity之升高人物视野的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。