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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

愤怒的小鸟siki学院案例,添加瞄准预测轨迹<五>

發布時間:2024/3/24 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 愤怒的小鸟siki学院案例,添加瞄准预测轨迹<五> 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

添加瞄準預測軌跡

準備借鑒(抄)該前輩的代碼:
《【游戲開發實戰】Unity 2D游戲物理運動曲線軌跡預測,以憤怒的小鳥為例,軌跡曲線云團圈圈》
版權聲明:本文為CSDN博主「林新發」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/linxinfa/article/details/115114589


那篇博文的三個代碼放的比較散,只是舉個樣例小鳥,我這個工程不太好調,就都把相關代碼放到了小鳥的代碼下,雖然比較麻煩,但還是以運行通過為先吧。

這個是變量預設:

[HideInInspector]public Vector3 pos{get { return transform.position; }}[SerializeField]private float m_speedFactor = 4f;private Vector2 m_startPoint;//鼠標開始落點private Vector2 m_endPoint;//鼠標離開點private float m_distance;//鼠標位置差private Vector2 m_direction;private Vector2 m_pushSpeed;//推力速度[SerializeField] private int m_dotsNum = 20;[SerializeField] private GameObject m_dotsParent;[SerializeField] private GameObject m_dotsPrefab;[SerializeField] private float m_dotSpacing = 0.01f;[SerializeField] [Range(0.01f, 0.3f)] private float m_dotMinScale = 0.1f;[SerializeField] [Range(0.3f, 1f)] private float m_dotMaxScale = 1f;private Transform[] m_dotsList;private Vector2 m_pos;private float m_timeStamp;

主要看左邊

public void Push(Vector2 speed){rg.AddForce(speed, ForceMode2D.Impulse);//推力}private void OnMouseDown()//鼠標按下{if (canMove){AudioPlay(select);//添加音效isClick = true;rg.isKinematic = true;//使開啟動力學功能PrepareDots();OnDragStart();}}private void OnMouseUp()//鼠標抬起{if (canMove){isClick = false;rg.isKinematic = false;//使開啟動力學功能失活Invoke("Fly", 0.1f);//延遲函數Invoke//畫線啟用功能禁止right.enabled = false;left.enabled = false;canMove = false;//使小鳥僅能飛行一次,在鼠標抬起后該bool變量為falseOnDragEnd();}}private void Update()//循環,轉換坐標并畫線{OnDrag();}

主代碼:基本上是借鑒(抄)那篇博文的,我簡化到一個代碼文件里了

private void OnDragStart()//鼠標按下小鳥不放{// 禁用物理rg.velocity = Vector3.zero;rg.angularVelocity = 0f;rg.isKinematic = true;// 起始點m_startPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);//轉換鼠標落點的坐標// 顯示軌跡Show();}/// <summary>/// 拉中/// </summary>private void OnDrag()//鼠標按下小鳥不放,持續時間,顯示軌跡{m_endPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);//轉換鼠標離開時的坐標m_distance = Vector2.Distance(m_startPoint, m_endPoint);//距離差m_direction = (m_startPoint - m_endPoint).normalized;//標準單位化 方向m_pushSpeed = m_direction * m_distance * m_speedFactor;//*4UpdateDots(transform.position, m_pushSpeed);//準備點}/// <summary>/// 拉結束/// </summary>private void OnDragEnd(){rg.isKinematic = false;Push(m_pushSpeed);sp.enabled = false;// 隱藏軌跡Hide();}private void PrepareDots()//準備軌跡點{m_dotsList = new Transform[m_dotsNum];m_dotsPrefab.transform.localScale = Vector3.one * m_dotMaxScale;float scale = m_dotMaxScale;float scaleFactor = scale / m_dotsNum;for (int i = 0; i < m_dotsNum; ++i){var dot = Instantiate(m_dotsPrefab).transform;dot.parent = m_dotsParent.transform;//父節點的位置dot.localScale = Vector3.one * scale;if (scale > m_dotMinScale)scale -= scaleFactor;m_dotsList[i] = dot;}}public void UpdateDots(Vector2 birdPos, Vector2 pushSpeed){m_timeStamp = m_dotSpacing;for (int i = 0; i < m_dotsNum; ++i){m_pos.x = birdPos.x + pushSpeed.x * m_timeStamp;m_pos.y = (birdPos.y + pushSpeed.y * m_timeStamp) - 0.5f * Physics2D.gravity.magnitude * m_timeStamp * m_timeStamp;m_dotsList[i].position = m_pos;m_timeStamp += m_dotSpacing;}}public void Show(){m_dotsParent.SetActive(true);//父節點的所有功能開啟,顯示父節點,即顯示整個預測軌跡}public void Hide(){m_dotsParent.SetActive(false);//父節點的所有功能關閉,不顯示父節點,即不顯示整個預測軌跡}

那篇博文的父節點和點預設,提的不是很清楚,后來我理解了一下:

我把每只鳥的坐標都賦值給了一個空的子物體,并且把這個子物體又賦值給了鳥掛的腳本的dots parent,這樣就可以實時跟著鳥的位置產生軌跡點。

另外,由于我憤怒的小鳥是有彈簧組件的,所以那篇博文用的方法不太適合我的工程,他的動力來源于鼠標落點和離開點的距離差,所以加入它的代碼,我這個系統的動力會大一部分,這就不太好取舍了,所以我用了最簡單的辦法:增加小鳥的質量,我從0.5調到了0.98,剛剛好和小鳥預測軌跡完美重合。

總結

以上是生活随笔為你收集整理的愤怒的小鸟siki学院案例,添加瞄准预测轨迹<五>的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 小辣椒导航 | 免费一级黄色大片 | 日本电影一区二区三区 | 夫妻性生活黄色大片 | av片免费在线播放 | 伊伊综合网 | 午夜小视频在线播放 | 国产一区二区三区视频免费在线观看 | 高清精品xnxxcom | 六月婷婷综合 | 国产美女91呻吟求 | 四虎国产视频 | 亚洲精品国产精品国自 | 91成人在线视频 | 黄色肉肉视频 | 插插插日日日 | 亚洲精品18 | 亚洲自拍中文 | 日韩黄色a级片 | 久久黄页 | 日韩国产欧美一区二区三区 | 国产一区二区久久久 | 国产精品国产三级国产三级人妇 | 亚洲黄色片视频 | 影音先锋亚洲天堂 | 国产精品美女自拍视频 | 日韩中文字幕亚洲 | 一本一道久久综合狠狠老精东影业 | caoporen超碰| 西西午夜视频 | 麻豆精品一区 | 依人综合网 | 久久综合免费视频 | 亚洲欧美日韩国产一区二区三区 | 天天操天天射天天爽 | 草一色| 欧美日韩一区二区在线观看 | 精品在线一区二区三区 | 精品少妇一区二区三区免费观 | 日本视频一区二区 | 国产av不卡一区 | 日韩中文字幕在线播放 | 国产一区二区三区四区视频 | 伊人97| 国产黄色在线观看 | 亚洲欧美日韩视频一区 | 性欧美18一19内谢 | 伊人青青草视频 | 有码一区二区三区 | 97福利影院 | 国产精品久久av无码一区二区 | 自拍偷拍第一页 | 欧美日韩激情视频在线观看 | www三级 | 麻豆自拍视频 | 特级淫片aaaaaaa级附近的 | 亚洲av日韩精品久久久久久久 | 超碰一区二区三区 | 日韩精品第一页 | 丝瓜色版| 欧美干干| 涩漫天堂 | 91精品国产91久久久久青草 | 一级黄色片免费在线观看 | 丁香婷婷久久久综合精品国产 | 91视频久久久 | 色综合av综合无码综合网站 | 538国产精品一区二区免费视频 | 欧美性激情 | 国产人妻精品一区二区三区 | 麻豆成人久久精品一区二区三区 | 欧美成人午夜精品免费 | 国产成人在线视频网站 | 韩国伦理电影免费在线 | wwww在线观看| 麻豆成人免费 | 日韩激情网址 | 成人毛片基地 | 99在线观看视频 | 成人免费毛片观看 | 国产精品一区二区自拍 | 日韩在线精品视频一区二区涩爱 | 日本夫妻性生活视频 | 天天干天天操天天爽 | 少妇aaaa | wwwxxxx日本 | 美腿丝袜av | 污黄啪啪网 | 九九爱精品视频 | 女人扒开双腿让男人捅 | 牛牛在线免费视频 | 免费日批视频 | 国产精品一区免费 | 亚洲精品激情 | 日韩电影网站 | 性欧美一区二区三区 | 亚州欧美| 日本成人中文字幕 | 日韩成人一区 |