亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Unity類銀河惡魔城游戲開發(fā):金錢系統(tǒng)與HUD實(shí)現(xiàn)詳解

Unity類銀河惡魔城游戲開發(fā):金錢系統(tǒng)與HUD實(shí)現(xiàn)詳解 1. 項(xiàng)目背景與整體設(shè)計(jì)思路1.1 為什么選擇在這個(gè)節(jié)點(diǎn)做金錢系統(tǒng)做過(guò)類銀河惡魔城游戲的朋友都知道角色的成長(zhǎng)曲線和資源循環(huán)是撐起整個(gè)探索體驗(yàn)的骨架。在完成了角色移動(dòng)、攻擊、受傷、敵人AI、場(chǎng)景切換這些基礎(chǔ)模塊之后接下來(lái)最需要補(bǔ)上的就是經(jīng)濟(jì)系統(tǒng)——也就是讓玩家打怪、探索、冒險(xiǎn)之后能獲得實(shí)實(shí)在在的回報(bào)并且這些回報(bào)能反過(guò)來(lái)影響角色的成長(zhǎng)和世界的交互。這次要做的金錢系統(tǒng)核心參考的是經(jīng)典橫版探索游戲里那種“擊殺掉落、死亡懲罰、可消費(fèi)可存儲(chǔ)”的閉環(huán)設(shè)計(jì)。具體來(lái)說(shuō)玩家擊殺敵人后掉落一種通用貨幣這種貨幣可以用來(lái)購(gòu)買道具、解鎖功能、開啟捷徑同時(shí)角色死亡時(shí)會(huì)掉落一部分甚至全部貨幣在死亡地點(diǎn)需要玩家跑回去撿回來(lái)。這個(gè)機(jī)制看似簡(jiǎn)單但它直接決定了游戲的風(fēng)險(xiǎn)回報(bào)節(jié)奏——你敢不敢?guī)е淮蠊P錢去探索未知區(qū)域死了之后要不要冒險(xiǎn)回去撿這些決策構(gòu)成了探索類游戲最核心的張力。從技術(shù)實(shí)現(xiàn)角度看這個(gè)系統(tǒng)涉及幾個(gè)關(guān)鍵模塊貨幣數(shù)據(jù)的全局管理、掉落物的物理表現(xiàn)與拾取檢測(cè)、HUD界面的實(shí)時(shí)刷新、死亡與重生時(shí)的數(shù)據(jù)持久化。這幾個(gè)模塊之間耦合度不高但每一個(gè)都有不少細(xì)節(jié)坑尤其是HUD部分因?yàn)檫@次還要順帶把Canvas的額外內(nèi)容一起做了包括貨幣顯示、生命值顯示、靈魂/能量條的布局調(diào)整。1.2 整體架構(gòu)選型為什么用單例事件驅(qū)動(dòng)在動(dòng)手寫代碼之前先想清楚架構(gòu)。我見過(guò)不少新手朋友做這類系統(tǒng)時(shí)習(xí)慣把貨幣數(shù)量直接掛在玩家腳本上然后HUD每幀去FindObjectOfType找玩家、讀數(shù)值、刷新文本。這種做法在小型Demo里能跑但一旦場(chǎng)景里有多個(gè)需要讀取貨幣的物體比如商店NPC、存檔點(diǎn)、UI面板代碼就會(huì)變成一團(tuán)亂麻。這次采用的方案是全局單例管理器 事件驅(qū)動(dòng)刷新。具體來(lái)說(shuō)建一個(gè)GameManager或者專門的CurrencyManager用靜態(tài)實(shí)例保證全局唯一貨幣的增減、查詢、持久化都走這個(gè)管理器。HUD不直接輪詢數(shù)值而是訂閱一個(gè)OnCurrencyChanged事件數(shù)值變了才刷新UI。這樣做的好處很明顯第一任何物體想讀寫貨幣都只依賴管理器不依賴玩家第二UI刷新從每幀一次變成事件觸發(fā)一次性能開銷幾乎為零第三后面要做存檔系統(tǒng)時(shí)只需要序列化管理器里的一個(gè)字段就行。提示單例模式在Unity里爭(zhēng)議不小但在這種小型Demo里對(duì)于真正全局唯一的數(shù)據(jù)貨幣、游戲狀態(tài)、存檔單例是最直接有效的方案。關(guān)鍵是要控制單例的數(shù)量不要什么都往GameManager里塞。1.3 掉落物與拾取的設(shè)計(jì)取舍貨幣掉落有兩種常見做法一種是擊殺敵人后直接加錢屏幕上飄個(gè)數(shù)字就完事另一種是生成一個(gè)物理掉落物玩家走過(guò)去或者按拾取鍵才能撿起來(lái)。這次選擇后者原因有三第一物理掉落物能給玩家更直觀的反饋看到一地閃閃發(fā)光的貨幣成就感更強(qiáng)第二掉落物可以被擊飛、可以被場(chǎng)景機(jī)關(guān)影響增加了戰(zhàn)斗的趣味性第三后面要做“磁吸拾取”或者“自動(dòng)拾取范圍”這類升級(jí)時(shí)物理掉落物是天然的基礎(chǔ)。拾取檢測(cè)這塊我選擇用觸發(fā)器Trigger而不是碰撞體Collider。掉落物生成時(shí)給一個(gè)小的圓形觸發(fā)器玩家身上本來(lái)就有碰撞體兩者重疊時(shí)觸發(fā)OnTriggerEnter2D判斷是不是玩家是就加錢、播放音效、銷毀掉落物。這里有個(gè)細(xì)節(jié)掉落物剛生成時(shí)應(yīng)該有一個(gè)短暫的“不可拾取”時(shí)間否則敵人死亡瞬間玩家如果貼臉站著會(huì)立刻撿到視覺上很突兀。我一般給個(gè)0.3到0.5秒的延遲同時(shí)讓掉落物有一個(gè)小的隨機(jī)初速度看起來(lái)像是從敵人身上“爆”出來(lái)的。2. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)2.1 貨幣管理器的字段設(shè)計(jì)與持久化預(yù)留先看貨幣管理器需要哪些字段。最核心的是一個(gè)int類型的當(dāng)前貨幣數(shù)量這個(gè)沒什么好說(shuō)的。但為了后面做存檔和調(diào)試我建議再加幾個(gè)一個(gè)是string類型的貨幣名稱雖然這次只有一種貨幣但保不齊后面要加第二種一個(gè)是int類型的貨幣上限防止數(shù)值溢出或者做背包容量限制還有一個(gè)bool類型的調(diào)試開關(guān)打開后可以在Console里打印每次貨幣變化。持久化方面Unity自帶的PlayerPrefs對(duì)于Demo來(lái)說(shuō)夠用了但它的缺點(diǎn)是只能存基本類型而且在不同平臺(tái)上的存儲(chǔ)位置不透明。更穩(wěn)妥的做法是寫一個(gè)簡(jiǎn)單的JSON存檔把貨幣數(shù)量、玩家位置、已解鎖功能這些打包成一個(gè)對(duì)象序列化到Application.persistentDataPath下。這次先不做完整存檔但管理器里要預(yù)留Save()和Load()的空方法后面接存檔系統(tǒng)時(shí)直接填邏輯就行。public class CurrencyManager : MonoBehaviour { public static CurrencyManager Instance { get; private set; } [SerializeField] private int currentCurrency 0; [SerializeField] private string currencyName Geo; [SerializeField] private int maxCurrency 999999; [SerializeField] private bool debugMode false; public int CurrentCurrency currentCurrency; public string CurrencyName currencyName; public event Actionint OnCurrencyChanged; private void Awake() { if (Instance ! null Instance ! this) { Destroy(gameObject); return; } Instance this; DontDestroyOnLoad(gameObject); } public void AddCurrency(int amount) { if (amount 0) return; currentCurrency Mathf.Min(currentCurrency amount, maxCurrency); OnCurrencyChanged?.Invoke(currentCurrency); if (debugMode) Debug.Log($Added {amount} {currencyName}, total: {currentCurrency}); } public bool SpendCurrency(int amount) { if (amount 0 || currentCurrency amount) return false; currentCurrency - amount; OnCurrencyChanged?.Invoke(currentCurrency); if (debugMode) Debug.Log($Spent {amount} {currencyName}, total: {currentCurrency}); return true; } public void SetCurrency(int amount) { currentCurrency Mathf.Clamp(amount, 0, maxCurrency); OnCurrencyChanged?.Invoke(currentCurrency); } }這段代碼里有個(gè)容易忽略的點(diǎn)DontDestroyOnLoad。因?yàn)樨泿攀强鐖?chǎng)景的全局?jǐn)?shù)據(jù)切換場(chǎng)景時(shí)管理器不能被銷毀否則數(shù)據(jù)就丟了。但要注意如果場(chǎng)景里已經(jīng)有一個(gè)管理器實(shí)例新場(chǎng)景加載時(shí)又生成了一個(gè)就會(huì)沖突。所以Awake里要先判斷Instance是否為空不為空就銷毀自己。這是單例模式的標(biāo)準(zhǔn)寫法但新手經(jīng)常忘記加這個(gè)判斷導(dǎo)致切換場(chǎng)景后出現(xiàn)兩個(gè)管理器貨幣數(shù)據(jù)錯(cuò)亂。2.2 掉落物預(yù)制體的物理參數(shù)調(diào)優(yōu)掉落物的預(yù)制體結(jié)構(gòu)很簡(jiǎn)單一個(gè)空物體掛SpriteRenderer顯示貨幣圖標(biāo)掛CircleCollider2D設(shè)為觸發(fā)器掛Rigidbody2D設(shè)為動(dòng)態(tài)剛體再掛一個(gè)自定義的CurrencyPickup腳本。但物理參數(shù)的調(diào)優(yōu)才是決定手感的關(guān)鍵。首先是質(zhì)量Mass。掉落物的質(zhì)量要設(shè)得很小0.1到0.5之間這樣它才會(huì)被玩家的攻擊擊飛而不是像塊石頭一樣紋絲不動(dòng)。其次是阻力Linear Drag設(shè)成2到5左右讓掉落物飛出去之后很快減速不會(huì)滑得太遠(yuǎn)。重力縮放Gravity Scale設(shè)成1到2讓它有自然的下落弧線。彈性Bounciness給個(gè)0.3到0.5落地時(shí)彈一兩下視覺上更活潑。初速度的施加方式也有講究。我一般用Rigidbody2D.AddForce配合一個(gè)隨機(jī)方向方向范圍控制在斜上方45度到135度之間力度在3到8之間隨機(jī)。這樣每次掉落的散開效果都不一樣不會(huì)顯得機(jī)械。但要注意如果一次掉落多個(gè)貨幣比如擊殺Boss掉20個(gè)全部同時(shí)生成會(huì)瞬間產(chǎn)生大量物理計(jì)算低端機(jī)上可能卡頓。解決辦法是分幀生成用協(xié)程每隔0.02秒生成一個(gè)或者干脆限制單次最大掉落數(shù)量超過(guò)的部分直接合并成一個(gè)“大額貨幣”掉落物。public class CurrencyPickup : MonoBehaviour { [SerializeField] private int currencyValue 1; [SerializeField] private float pickupDelay 0.4f; [SerializeField] private float magnetRange 0f; [SerializeField] private float magnetSpeed 8f; private bool canBePickedUp false; private Transform playerTransform; private void Start() { StartCoroutine(EnablePickupAfterDelay()); var player GameObject.FindGameObjectWithTag(Player); if (player ! null) playerTransform player.transform; } private IEnumerator EnablePickupAfterDelay() { yield return new WaitForSeconds(pickupDelay); canBePickedUp true; } private void Update() { if (magnetRange 0f playerTransform ! null) { float dist Vector2.Distance(transform.position, playerTransform.position); if (dist magnetRange) { transform.position Vector2.MoveTowards( transform.position, playerTransform.position, magnetSpeed * Time.deltaTime); } } } private void OnTriggerEnter2D(Collider2D other) { if (!canBePickedUp) return; if (!other.CompareTag(Player)) return; CurrencyManager.Instance.AddCurrency(currencyValue); // 播放拾取音效 // 播放拾取粒子效果 Destroy(gameObject); } }這里有個(gè)磁吸拾取的預(yù)留邏輯。雖然這次不一定用得上但代碼里留個(gè)magnetRange字段后面做“拾取范圍升級(jí)”時(shí)直接改數(shù)值就行不用重構(gòu)。磁吸的實(shí)現(xiàn)是在Update里每幀檢測(cè)玩家距離小于范圍就朝玩家移動(dòng)。注意這里用的是MoveTowards而不是物理力因?yàn)槲锢砹θ菀鬃尩袈湮镌谕婕抑車鷣y飛MoveTowards更可控。2.3 HUD Canvas的布局策略與錨點(diǎn)設(shè)置HUD這塊是這次的重頭戲。很多新手做UI時(shí)習(xí)慣用絕對(duì)坐標(biāo)擺位置結(jié)果換個(gè)分辨率就全亂了。正確的做法是用錨點(diǎn)Anchor和相對(duì)布局。Unity的Canvas有幾種縮放模式對(duì)于橫版游戲我推薦用Scale With Screen Size參考分辨率設(shè)成1920x1080匹配模式選Match Width Or Height橫版游戲一般把匹配值拉到0.5左右這樣在不同寬高比下UI不會(huì)變形太嚴(yán)重。貨幣顯示放在左上角用Anchor預(yù)設(shè)的左上角錨點(diǎn)Pivot也設(shè)成左上角然后Pos X和Pos Y給一個(gè)小的正值比如40和-40這樣無(wú)論屏幕多大貨幣圖標(biāo)和數(shù)字都固定在左上角往里縮40像素的位置。生命值顯示放在貨幣下面或者放在右上角看個(gè)人喜好。我習(xí)慣把生命值放左上角貨幣下方靈魂/能量條放右上角這樣視覺重心比較平衡。Canvas的層級(jí)順序也要注意。HUD的Sort Order要設(shè)得比游戲世界高但又不能擋住暫停菜單。我一般把HUD的Sort Order設(shè)成10暫停菜單設(shè)成100這樣層級(jí)關(guān)系清晰。另外HUD里的元素如果不需要接收點(diǎn)擊事件記得把Raycast Target關(guān)掉減少不必要的性能開銷。雖然對(duì)現(xiàn)代設(shè)備來(lái)說(shuō)這點(diǎn)開銷微不足道但養(yǎng)成好習(xí)慣總沒錯(cuò)。注意Canvas的Render Mode選Screen Space - Overlay還是Screen Space - Camera取決于你要不要在后處理之后渲染UI。如果游戲用了后處理比如Bloom、Color GradingOverlay模式的UI不會(huì)被后處理影響看起來(lái)更清晰如果想讓UI也吃后處理效果比如UI發(fā)光就用Camera模式。這次Demo沒上后處理用Overlay就行。3. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)3.1 從零搭建貨幣管理器的完整步驟第一步在場(chǎng)景里新建一個(gè)空物體命名為GameManagers把CurrencyManager腳本掛上去。這個(gè)物體后面還可以掛存檔管理器、音頻管理器、場(chǎng)景加載管理器統(tǒng)一管理全局系統(tǒng)。記得把這個(gè)物體放在場(chǎng)景根目錄下不要作為任何其他物體的子物體否則DontDestroyOnLoad的行為會(huì)出問題。第二步配置CurrencyManager的Inspector參數(shù)。Current Currency初始值設(shè)0Currency Name填“Geo”Max Currency設(shè)999999Debug Mode先打開方便調(diào)試。運(yùn)行游戲后在Console里應(yīng)該能看到管理器初始化成功的日志如果加了的話。第三步寫一個(gè)測(cè)試腳本按空格鍵加100貨幣按回車鍵花50貨幣。把這個(gè)腳本掛到玩家身上或者任意物體上運(yùn)行游戲測(cè)試。按空格Console應(yīng)該打印“Added 100 Geo, total: 100”按回車打印“Spent 50 Geo, total: 50”。如果按回車時(shí)貨幣不足50SpendCurrency返回false不扣錢Console不打印消費(fèi)日志。這一步驗(yàn)證了管理器的基本讀寫邏輯。第四步做掉落物預(yù)制體。在Hierarchy里右鍵新建2D Object Sprites Circle命名為GeoPickup。給它加Rigidbody2DBody Type選DynamicMass設(shè)0.2Linear Drag設(shè)3Angular Drag設(shè)3Gravity Scale設(shè)1.5。加CircleCollider2D勾選Is Trigger半徑設(shè)0.15左右。掛上CurrencyPickup腳本Currency Value設(shè)1Pickup Delay設(shè)0.4。把這個(gè)物體拖到Project窗口做成預(yù)制體然后從場(chǎng)景里刪掉。第五步修改敵人死亡邏輯。在敵人腳本的Die()方法里實(shí)例化掉落物預(yù)制體位置在敵人中心然后給剛體施加隨機(jī)初速度。如果敵人掉落多個(gè)貨幣用協(xié)程分幀生成。這里有個(gè)細(xì)節(jié)實(shí)例化時(shí)父物體設(shè)成什么我建議設(shè)成null讓掉落物直接放在場(chǎng)景根目錄下這樣敵人被銷毀時(shí)掉落物不會(huì)跟著消失。如果設(shè)成敵人的子物體敵人Destroy時(shí)掉落物也沒了。private IEnumerator SpawnCurrencyDrops(int totalAmount, int dropCount) { int amountPerDrop totalAmount / dropCount; int remainder totalAmount % dropCount; for (int i 0; i dropCount; i) { int value amountPerDrop (i remainder ? 1 : 0); GameObject drop Instantiate(currencyPrefab, transform.position, Quaternion.identity); drop.GetComponentCurrencyPickup().SetValue(value); Rigidbody2D rb drop.GetComponentRigidbody2D(); Vector2 randomDir new Vector2(Random.Range(-1f, 1f), Random.Range(0.5f, 1.5f)).normalized; rb.AddForce(randomDir * Random.Range(3f, 8f), ForceMode2D.Impulse); yield return new WaitForSeconds(0.03f); } }3.2 HUD貨幣顯示與事件訂閱的接線HUD這邊先在Canvas下新建一個(gè)Panel命名為HUDPanel錨點(diǎn)設(shè)成左上角大小設(shè)成300x120左右。在Panel里新建一個(gè)Image顯示貨幣圖標(biāo)再新建一個(gè)TextMeshPro文本顯示數(shù)字。文本的錨點(diǎn)設(shè)成左中Pos X給個(gè)正值讓它在圖標(biāo)右邊。然后寫一個(gè)HUDCurrencyDisplay腳本掛到Panel或者文本上。這個(gè)腳本在OnEnable時(shí)訂閱CurrencyManager.Instance.OnCurrencyChanged事件在OnDisable時(shí)取消訂閱。事件回調(diào)里更新文本內(nèi)容。這里有個(gè)時(shí)序問題如果HUD在CurrencyManager之前AwakeInstance可能還是null。解決辦法是在Start里訂閱而不是Awake因?yàn)閁nity保證所有物體的Awake都在任何Start之前執(zhí)行?;蛘吒€(wěn)妥的做法是在OnEnable里先判斷Instance是否為空為空就延遲一幀再訂閱。public class HUDCurrencyDisplay : MonoBehaviour { [SerializeField] private TextMeshProUGUI currencyText; [SerializeField] private Image currencyIcon; private void Start() { if (CurrencyManager.Instance ! null) { CurrencyManager.Instance.OnCurrencyChanged UpdateDisplay; UpdateDisplay(CurrencyManager.Instance.CurrentCurrency); } } private void OnDestroy() { if (CurrencyManager.Instance ! null) CurrencyManager.Instance.OnCurrencyChanged - UpdateDisplay; } private void UpdateDisplay(int amount) { currencyText.text amount.ToString(); // 可以加一個(gè)數(shù)字滾動(dòng)動(dòng)畫這里先直接賦值 } }數(shù)字滾動(dòng)動(dòng)畫是個(gè)加分項(xiàng)。當(dāng)貨幣增加時(shí)不要瞬間跳到新數(shù)值而是讓數(shù)字快速滾動(dòng)過(guò)去視覺上更有“收獲感”。實(shí)現(xiàn)方式可以用協(xié)程每幀把顯示值往目標(biāo)值靠攏用Mathf.MoveTowards或者M(jìn)athf.Lerp。滾動(dòng)速度控制在0.2到0.3秒內(nèi)完成太快沒感覺太慢顯得拖沓。3.3 死亡掉落與重生回收的完整邏輯死亡掉落是貨幣系統(tǒng)的靈魂。玩家死亡時(shí)把當(dāng)前貨幣的一部分或者全部掉落在死亡位置玩家重生后貨幣歸零需要跑回去撿。這里有幾個(gè)設(shè)計(jì)決策掉多少掉全部還是掉一半掉落物會(huì)不會(huì)消失被敵人撿走怎么辦這次Demo采用掉落全部的方案因?yàn)檫@樣風(fēng)險(xiǎn)回報(bào)的張力最強(qiáng)。死亡時(shí)在死亡位置生成一個(gè)特殊的“大額掉落物”外觀和普通掉落物略有區(qū)別比如更大、有光效價(jià)值等于玩家死亡時(shí)的貨幣總量。玩家重生后貨幣歸零。這個(gè)掉落物永久存在直到玩家撿回來(lái)。如果玩家在撿回之前又死了新的掉落物會(huì)覆蓋舊的——也就是說(shuō)舊掉落物直接銷毀只保留最新的。這個(gè)規(guī)則要明確否則玩家死兩次會(huì)有一地掉落物撿起來(lái)很混亂。實(shí)現(xiàn)上在玩家腳本的Die()方法里先讀取CurrencyManager.Instance.CurrentCurrency如果大于0就在死亡位置生成一個(gè)GeoPickup把currencyValue設(shè)成這個(gè)數(shù)值同時(shí)把pickupDelay設(shè)長(zhǎng)一點(diǎn)比如1秒防止玩家重生后立刻撿到。然后調(diào)用CurrencyManager.Instance.SetCurrency(0)清空貨幣。重生邏輯里不需要額外處理因?yàn)樨泿乓呀?jīng)是0了。提示如果要做“死亡掉落一半”的溫和方案把SetCurrency的參數(shù)改成currentCurrency / 2就行。但要注意掉落物價(jià)值也要相應(yīng)改成currentCurrency - currentCurrency / 2否則會(huì)憑空多出錢來(lái)。3.4 場(chǎng)景切換時(shí)的數(shù)據(jù)保持與HUD重建因?yàn)镃urrencyManager掛了DontDestroyOnLoad切換場(chǎng)景時(shí)貨幣數(shù)據(jù)不會(huì)丟。但HUD是場(chǎng)景內(nèi)的物體切換場(chǎng)景后舊的HUD被銷毀新的HUD需要重新訂閱事件。這就是為什么HUDCurrencyDisplay要在Start里訂閱而不是Awake——新場(chǎng)景的HUD在Start時(shí)CurrencyManager.Instance已經(jīng)存在了因?yàn)樗荄ontDestroyOnLoad的訂閱能成功。但這里有個(gè)坑如果新場(chǎng)景的HUD在Start里訂閱了事件而舊場(chǎng)景的HUD在OnDestroy里取消訂閱順序上沒問題。但如果舊HUD的OnDestroy在新HUD的Start之后才執(zhí)行會(huì)不會(huì)把新HUD的訂閱也取消掉不會(huì)因?yàn)镃#的事件訂閱是基于委托實(shí)例的取消訂閱時(shí)傳的是方法引用只會(huì)取消自己那個(gè)實(shí)例的訂閱不會(huì)影響其他實(shí)例。所以放心用。另一個(gè)坑是重復(fù)訂閱。如果HUD物體被反復(fù)啟用禁用比如打開關(guān)閉背包界面OnEnable里訂閱、OnDisable里取消訂閱要確保成對(duì)出現(xiàn)。我見過(guò)有人只在OnEnable訂閱忘了在OnDisable取消結(jié)果打開關(guān)閉幾次背包后一次貨幣變化觸發(fā)了多次UI刷新數(shù)字跳得飛快。這種bug排查起來(lái)很隱蔽因?yàn)檫壿嬌稀翱雌饋?lái)”沒問題。4. 常見問題與排查技巧實(shí)錄4.1 掉落物不生成或者生成后不動(dòng)這是最常見的問題通常有三個(gè)原因。第一預(yù)制體沒掛Rigidbody2D或者Body Type設(shè)成了Static導(dǎo)致物理力施加無(wú)效。檢查預(yù)制體的剛體設(shè)置確保是Dynamic。第二AddForce調(diào)用時(shí)機(jī)不對(duì)。如果剛體還沒初始化就施加力力會(huì)丟失。解決辦法是在Instantiate之后等一幀再施加力或者直接在預(yù)制體的Start里施加力。第三掉落物的Collider2D沒勾Is Trigger和地面碰撞后卡住了。檢查碰撞體設(shè)置。還有一種情況是掉落物生成了但瞬間被銷毀。這通常是因?yàn)镺nTriggerEnter2D在pickupDelay之前就觸發(fā)了而canBePickedUp還是false所以沒撿起來(lái)。但如果玩家一直站在掉落物上OnTriggerEnter2D只觸發(fā)一次延遲結(jié)束后不會(huì)再次觸發(fā)掉落物就永遠(yuǎn)撿不起來(lái)了。解決辦法是在Update里也檢測(cè)一次或者用OnTriggerStay2D。我一般用OnTriggerStay2D配合canBePickedUp判斷這樣延遲結(jié)束后如果玩家還在范圍內(nèi)立刻就能撿起來(lái)。4.2 HUD數(shù)字不刷新或者刷新成亂碼數(shù)字不刷新先檢查事件訂閱是否成功。在Start里加一行Debug.Log(CurrencyManager.Instance ! null)如果打印false說(shuō)明管理器實(shí)例沒找到??赡苁枪芾砥鳑]掛DontDestroyOnLoad或者場(chǎng)景里根本沒有管理器。如果打印true但數(shù)字還是不動(dòng)檢查OnCurrencyChanged事件是否真的被觸發(fā)了。在AddCurrency里加日志看看有沒有打印。刷新成亂碼通常是TextMeshPro的字體資源沒設(shè)置好。TMP需要生成字體圖集如果字體圖集里沒有數(shù)字字符就會(huì)顯示成方塊或者問號(hào)。解決辦法是選中TMP文本組件在Font Asset里選一個(gè)包含數(shù)字的字體然后點(diǎn)Generate Font Atlas重新生成。另外如果貨幣數(shù)量很大比如超過(guò)99999文本可能超出顯示區(qū)域需要調(diào)整字號(hào)或者加一個(gè)背景框。4.3 死亡掉落物撿不起來(lái)或者撿起來(lái)數(shù)值不對(duì)撿不起來(lái)先看掉落物的pickupDelay是不是設(shè)得太長(zhǎng)。如果設(shè)了1秒玩家重生后立刻跑過(guò)去可能還沒到1秒撿不起來(lái)。但等1秒后如果玩家還在范圍內(nèi)OnTriggerStay2D會(huì)觸發(fā)應(yīng)該能撿起來(lái)。如果還是不行檢查掉落物的Tag和玩家的Tag是否匹配。OnTriggerEnter2D里判斷的是other.CompareTag(Player)如果玩家物體的Tag不是“Player”就不會(huì)觸發(fā)。數(shù)值不對(duì)通常是掉落物的currencyValue沒設(shè)置對(duì)。死亡掉落時(shí)SetValue傳的是死亡時(shí)的貨幣總量但如果玩家在死亡動(dòng)畫播放期間又獲得了貨幣比如毒圈跳傷害擊殺了敵人這個(gè)數(shù)值會(huì)變。解決辦法是在死亡瞬間就把貨幣數(shù)量緩存到一個(gè)局部變量里生成掉落物時(shí)用這個(gè)緩存值而不是實(shí)時(shí)讀取。另外如果掉落物被場(chǎng)景切換銷毀了比如玩家死亡后場(chǎng)景重置掉落物也會(huì)消失貨幣就永久丟失了。如果不想讓玩家損失太慘可以在場(chǎng)景切換時(shí)把掉落物轉(zhuǎn)移到新場(chǎng)景但這涉及跨場(chǎng)景引用比較復(fù)雜Demo里可以先不做。4.4 常見問題速查表問題現(xiàn)象可能原因排查方法解決方案掉落物不生成預(yù)制體未賦值/敵人死亡邏輯未調(diào)用檢查Inspector引用和日志補(bǔ)上引用在Die()里加日志確認(rèn)調(diào)用掉落物生成后不動(dòng)剛體類型錯(cuò)誤/未施加力檢查Rigidbody2D設(shè)置改為DynamicInstantiate后施加力掉落物撿不起來(lái)延遲未過(guò)/Tag不匹配/觸發(fā)器未勾選檢查pickupDelay和Tag用OnTriggerStay2D確認(rèn)Tag為PlayerHUD數(shù)字不刷新事件未訂閱/管理器實(shí)例為空加日志檢查訂閱和實(shí)例在Start訂閱確保管理器DontDestroyOnLoad數(shù)字顯示為方塊TMP字體圖集缺字符查看TMP字體資源重新生成字體圖集包含數(shù)字死亡后貨幣丟失掉落物被銷毀/未生成檢查死亡邏輯和場(chǎng)景切換緩存死亡時(shí)數(shù)值掉落物設(shè)DontDestroyOnLoad切換場(chǎng)景后貨幣歸零管理器被銷毀/新實(shí)例覆蓋檢查DontDestroyOnLoad和單例判斷加單例判重確保只有一個(gè)管理器4.5 幾個(gè)我踩過(guò)的坑和獨(dú)家技巧第一個(gè)坑是物理材質(zhì)。掉落物和地面碰撞時(shí)如果地面有物理材質(zhì)Physics Material 2D且摩擦力很大掉落物會(huì)卡在地面邊緣不動(dòng)。解決辦法是給掉落物的碰撞體也加一個(gè)物理材質(zhì)摩擦力設(shè)0彈性設(shè)0.3?;蛘吒?jiǎn)單把掉落物的碰撞體設(shè)成觸發(fā)器不和地面發(fā)生物理碰撞只和玩家觸發(fā)。但這樣掉落物會(huì)穿過(guò)地面掉下去所以需要加一個(gè)地面檢測(cè)落地后把剛體設(shè)成Kinematic。這個(gè)方案更可控推薦使用。第二個(gè)技巧是對(duì)象池。如果游戲里敵人很多頻繁Instantiate和Destroy掉落物會(huì)造成GC壓力。用一個(gè)簡(jiǎn)單的對(duì)象池掉落物撿起來(lái)后不銷毀而是設(shè)SetActive(false)放回池子下次生成時(shí)從池子里取。對(duì)象池的實(shí)現(xiàn)不難但要注意重置掉落物的狀態(tài)速度歸零、位置歸位、canBePickedUp設(shè)回false、pickupDelay重新計(jì)時(shí)。漏掉任何一個(gè)都會(huì)導(dǎo)致奇怪的bug。第三個(gè)技巧是貨幣變化的音效反饋。每次貨幣增加時(shí)播放一個(gè)短促的“?!甭曇粽{(diào)隨連續(xù)拾取次數(shù)略微升高形成連擊感。這個(gè)效果在商業(yè)游戲里很常見實(shí)現(xiàn)起來(lái)也簡(jiǎn)單維護(hù)一個(gè)連擊計(jì)數(shù)器每次拾取加一音效的pitch設(shè)成1 comboCount * 0.05上限1.5。如果超過(guò)0.5秒沒有新的拾取連擊計(jì)數(shù)器歸零。這個(gè)細(xì)節(jié)能大幅提升拾取的爽快感成本卻很低。第四個(gè)坑是UI的Canvas Scaler。如果Canvas Scaler的參考分辨率設(shè)得不對(duì)在不同分辨率下UI要么太大要么太小。我試過(guò)在2K屏幕上UI小得看不清在720p屏幕上UI又大得擋住半個(gè)屏幕。解決辦法是參考分辨率設(shè)成1920x1080匹配模式選Match Width Or Height橫版游戲把匹配值設(shè)成0.5。如果游戲要適配手機(jī)豎屏匹配值要拉到1匹配高度因?yàn)樨Q屏?xí)r高度更關(guān)鍵。5. 后續(xù)擴(kuò)展方向與個(gè)人體會(huì)貨幣系統(tǒng)做完之后下一步自然是商店系統(tǒng)。商店NPC需要讀取貨幣數(shù)量顯示商品列表玩家點(diǎn)擊購(gòu)買時(shí)調(diào)用SpendCurrency成功則給玩家道具。商店的UI可以復(fù)用HUD的Canvas但要注意層級(jí)管理商店面板的Sort Order要高于HUD關(guān)閉時(shí)恢復(fù)。商店的庫(kù)存和價(jià)格可以做成ScriptableObject方便策劃配置。另一個(gè)擴(kuò)展方向是多種貨幣。比如除了通用貨幣再加一種稀有貨幣只能通過(guò)Boss掉落或者隱藏區(qū)域獲得。CurrencyManager可以擴(kuò)展成管理一個(gè)貨幣字典Dictionarystring, int每種貨幣有獨(dú)立的名稱、上限和事件。HUD上可以只顯示通用貨幣稀有貨幣在背包界面里顯示。這個(gè)擴(kuò)展不難但要在架構(gòu)初期就預(yù)留好接口否則后期重構(gòu)成本很高。我個(gè)人在實(shí)際操作中的體會(huì)是經(jīng)濟(jì)系統(tǒng)的數(shù)值平衡比技術(shù)實(shí)現(xiàn)難得多。技術(shù)實(shí)現(xiàn)無(wú)非是增刪改查但“擊殺一個(gè)敵人掉多少貨幣”“一個(gè)道具賣多少錢”“死亡掉落全部還是部分”這些決策直接決定了游戲的節(jié)奏和難度。我建議在Demo階段先把數(shù)值調(diào)得寬松一些讓玩家能快速體驗(yàn)到購(gòu)買和升級(jí)的樂趣等核心玩法驗(yàn)證之后再收緊數(shù)值增加挑戰(zhàn)性。畢竟一個(gè)讓人玩不下去的經(jīng)濟(jì)系統(tǒng)技術(shù)再完美也沒用。最后分享一個(gè)小技巧在CurrencyManager里加一個(gè)CheatAddCurrency方法只在Debug.isDebugBuild為true時(shí)生效按某個(gè)快捷鍵比如F1加1000貨幣。這樣測(cè)試商店和升級(jí)系統(tǒng)時(shí)不用反復(fù)刷怪效率高很多。發(fā)布正式版時(shí)這個(gè)功能會(huì)自動(dòng)禁用不用擔(dān)心玩家作弊。這個(gè)技巧我在每個(gè)項(xiàng)目里都會(huì)用省下的測(cè)試時(shí)間相當(dāng)可觀。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
男人天堂站| 欧美三级免费伊人| 久久久久久人体| AV色天香在线| w w w.久久精品| 欧美成人性爱视频大全| 极品后入免费视频| 黑丝内射一区二区三区| 91熟女视频网| 日本大片日本一区二区免费高清| 另类专区加勒比| 激情黄色片在线观看| 在线另类| 殴美色网| 午夜男人一级A片7777| baiduhicn.com。| 色色无码| 亚洲情色在线| 超碰97久| 成人情色一区二区| 丁香五月激情综合| 三久久久四久久久久| 欧亚久久偷拍视频| 无码人妻1727| 夜夜福利| 亚洲五码一区二区三区| 久久九九热| 91精品无码人妻系列| 蜜桃丰满熟妇av无码区不卡| 在线性黄高清免费视频| 亚洲精品国产拍免费91在线| 亚洲A色| www熟女乱伦com| 一区二区三区国产精产| 思思久热在线精品66| 欧美午夜色妇色鬼| 日本丝袜人妻内射| 死我十八禁| 无码国产精品午夜不卡(| 亚洲色悠悠久久88| 日本网色| 2017av无码免费无线播| 久久久久久久久女黄| 日本国产高清色www视频在线| 大香网伊人久久综合网eew| 1人人看人人摸人人操| 青春草A| ..日韩av毛片精品久久久| 久久久9 9 9精品| 激情五月丁香五月| 国内毛片欧美香蕉精品| 久久成年精品| 人人摸人人添人人操| 天天搞欧美| 最近的最新的中文字幕视频| 国产午夜精品理论片a大结局| 色诱中文字幕| 美女国产一区二区久久| 亚洲人成在线放东京热| 精品一区二区麻豆| 丁香五月激情婷婷| 97人妻免费中文字幕| 丁香六月东京热| 亚洲色图综合网| 99热这里只有精品地址| 亚洲欧美国产中文视频| 国产熟码AV| 人妻天堂综合网| 内射老妇BBWX0C0CK| 欧美日动态视频| 亚洲各类熟们中文字幕| 欧美天天| 欧美综合色图网| 女人爽到高潮久久久| 青青草好吊色| 丁香九月婷婷| 日韩中文字幕2020| 美女一区二区国产精品| 色噜噜狠狠色综无码久久| 麻豆精品久久久久久久| 八人操人人摸人人看| 欧美se综合| 九一综合精品视品av| 乱伦Av网| 国产精品黑人一区二区三区| 神马午夜久久| 校园春色 亚洲| 九色 人妻 大香蕉| 两性色网| 亚洲无码成人精品| 久久性爱视频免费看| 色老牛| 九九综合| 五月丁香社区婷婷日韩欧美精品影院| 老子午夜伦不卡影院| 无码粉嫩白虎一线天b区| 干b在线性社区| 久久精品国产亚洲AV成人直播| 中文字幕乱码在线| 久久久久婷婷精品av电影| 天天摸天天碰天天添青青| 久久伊人大香蕉| 一级黄色性爱A级片| 9Ⅰ老熟女| 国产视频97| 亚洲熟女一区| 久久av色| 久久久神马影院| 久久久久久九九九九-美女久久久久久久-成人AV | 97色五月天完| 色婷婷av在线观看| 九九亚洲视频| 丝袜美腿制服人妻二区中文字幕| 亚洲日韩青青草色月| 99国产精品免费| 东京热一区二区中文字幕| 国产AB视频| 999久久久九| 五月天丁香网| 色婷亚洲五月在线观看| 国产精品成人福利在线| 午夜福利精品| 干婷婷综合网| 免费作爱一级视频| 亚洲 国产 精品一区| 思思热er精品视频| 精品九九国产无码| 殴美大黄片| 日韩精品黄片免费观看| 成人三一级一片aaa| 精品国产91av一区二区三区 | 亚洲熟妇丝袜在线观看| 亚91亚洲网| 精品夜夜澡人妻无码| 91蜜臀在线久久久久| 人人爱操| 一区二区日韩欧美久久| 小草精彩毛片| 色婷婷在线视频精品导航| 欧美熟爽综合| 热天堂一区二区| 91色五月俺来也| 好看的91视频| 亚洲不卡不卡中文字幕不卡| 欧美天堂第二区| 久久久久久久久久久999| 亚洲日韩熟女人妻高清在线| 亚洲麻豆av一区二区| 夜夜骑天天燥| 舔舔啊| 99re在线视频| 免费男人的天堂| 欧美综合1性辶| 草草草视频| 狠狠干91| 精品无码不卡视频| 性夜影院爽黄A爽免费动漫| 久久久爆乳翘臀一线天伦理视频| 一本久道久久综合狠狠爱| 激情五月天网| 日日噜噜夜夜狠狠视频无| 精品人人| 日韩精品一区,二区 九九...老司机| 97 九色| 蜜乳av一区二区三区| 性欧美第一页| 亚洲黑人在线| 国产aⅴ无码片毛片一级网站| 国产成人免费观看在线视频| 亚洲综合五月天婷婷丁香| 后X久久| 999 久久久| 日本97久久| 亚洲97超碰| 欧美一二三级精品在线| 97碰在线视频| 日1区2区3区2020| 日韩pv中文| 欧美中文狠| 亚洲色图欧美色图在线播放| 深夜国产福利| 草草影院最新网址| 99操逼| 青青操97| 亚州Av天美传媒| 久久久四区| 福利视频一区二区微拍| 暖暖精品二区三区观看| 黄页网站成人免费| 欧美伊人久久综合网| 99天堂网| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 午夜性刺激视频免费观看| 人人操人人插人人摸人人干| 五月婷婷六月丁香| 天天干夜夜操一区二区| 亚洲精品自拍| 婷婷尹人大香蕉免费| 妇人噜噜| 国产精品福利视频播放| www.夜夜| 国产激情在线| 亚洲中文日韩欧美大香蕉视频| 性爱视频久久| 久久精品无码专区| 人人看人人摸人人色| 东北女人被操| 无码人妻一区二区三区免费九色| 婷婷五月天影院| 裸模AV女优| 中文字幕在线免费观看 | 亚洲 另类 丝袜 自拍 动漫| 国内毛片热久久思思热| 9 9精品一区二区三区| 色呦色呦色精品| 无码一区免费在线不卡| 亚洲综合色男人网| 日本不卡二区| 亚洲日韩美女中文字幕乱| 久久久久国产亚洲一区欧美色图日韩 | 欧美96精品在线| 精品区9| 亚洲国产丝袜在线观看| 久久久久成人网| sss视频华人在线| 性高潮久久久| 夜夜影视四色| 91女神在线视频| 亚洲 日本 不卡| 色婷婷九月| 色偷偷男人的天堂麻豆| aV中文麻| 九九伊人网| 大香蕉日亚洲日本亚大| 久久老子无码午夜伦不卡| 久久久九九| 中文字幕日本久久| 国语精品av| 综合色图区| 四虎影视国产精品| 激情自拍 校园春色| 深喉吞精| 日韩性色b| 人妻精品视频一区二区三区| 91九色丨国产丨爆乳| PMv在线观看| 伊人大香蕉在线| 国产欧美精品日韩区二区麻豆天美| 天天干1区2区在线| 五月天色图影视| 熟妇视频一区二区三区在线| 亚洲综合另类欧美久久久| 亚洲另类春色| 操死我了嗯嗯嗯| 精品中文字幕一区二区l - 百度| 91久久国外网| 国产免费永久精品无码| 97网色| 天天综合日韩网| 男人天堂电影院| 欧美欲色| 能在线播放的国产三级| 97亚洲自在精品在线观看| 国产一区二区三区精品观看啪| 91麻豆va国产精品| 美女干逼2| 无码逼| 性生活性生大爱77AV国产| 日本道久久综合色色| www.91视频网| 另类亚洲图色| 蜜桃无码AV一区二区| 91热| 国产suv精品一区二区四| 视频一区二区三区精品| 国产精品视频播放| 99ri视频| 做爱A级亚欧| 久久这里只精品| 亚洲图片 91| 先锋激情∨在线视频播放| 青操影院| 男女激情黄色网址| 亚洲色宗合| 91国产大片| 亚洲操操操| 69国产对白刺激| 啊啊啊啊啊舒服| 天天肏美女| 被体育老师抱着c到高潮| 午夜一区| 黑人干亚洲| 色爱三区| 久久久久骚| 日日摸天天爽夜夜欢| 日本操逼视频不卡直接放| 久久亚洲不卡一区二区三区| 男女一进一出视频久久| 又大又白奶子| 啪啪视频免费在线观看| 激情五月天社区| 永久电影三级在线观看| 999熟女精品| 人人干人人操人人..com| 久久男人的天堂| 夜夜国产一区| 精品久| 日韩女优在线| 伊人成人中文字幕久久网| 国产特级毛片AAAAAA高潮流水 | 欧美一区二区男人天堂| 色综合1991| 嗯啊啊啊轻点视频 | 夜夜嗷嗷一区二区| 五月天综合在线| 成人性爱美曰韩| 欧美激情激情xxxx欧美专区| 精品人妻一区二区三区免费视频| 亚洲成人精品久久久| 婷婷丁香六月天| 偷看洗澡一二三区美女| 91精品久久久| 激情黄色片在线观看| 老熟女阿 国产91| 亚洲天堂另类小说男人| 2025亚洲男人天堂| 99国产精品人妻人伦| 97久久视频| 国产综合网站在线播放 | 久久的网站啊啊啊啊啊| 91GD.COM| 激情综合亚洲| 1769精品一区二区三区| 亚欧Av| 激情抓乳插进去啪啪啪日韩| 性爱综合一区二区| 一区二区三| 一区二区影视| 91天堂网| 丰满人妻区一区二区三| 欧美一级二级三级| 天天噜| 亚洲天堂资源在线| 99AV| 中文字幕一区二区三区50路| 曰韩中文人妻视频| 亚洲97成人在线观看| 99无码| 神马久久久久| 乱操乱伦AV| 天天爽夜夜爽夜夜爽精| 日韩综合无码色欲vv| 在线观看不卡一区二区三区| 亚洲h片在线免费观看| 欧美一区二区一级岛国大片| 无码国产Av| 第45页一区二区| 欧美激情区| 人妻蜜桃臀| 青青草大香蕉视频| 国产视频第二页| 欧美日韩久久精品爱爱| 91少妇人妻| 亚欧操逼片在线观看 | 精品一区二区2| 日韩专区久久久| 丰满少妇精品一区二区| 一级性爱网| 搡老熟女免费视频| 顶级丝袜熟女一区二区三区 | A片 AV一级在线播放观看免费| 中文字幕日韩人妻视频一区二区三区| 久草国产在线视频| 色999五月色| 六月婷婷综合| 欧美日韩婷婷中文| 激情五月天校园春色网| 69精品| 亚洲欧美综合| 69av一区二区三区| 伊人久久大香线蕉无码| 911粉嫩人妻| 一本一道人妻久久一区二区三区| 67194无码不卡| 超碰日韩美妻| 九九久久久| 强奸乱伦免费网站| 91一起操| 亚洲情色图片区| 91天堂丝袜美腿| 亚洲人综合19| 日本激情免费大片| av天堂影视中文在字幕在线中文| 九九九九免费高| 97欧美色| 午夜福利无毒不卡| 亚洲午夜AV| 亚洲欧美日韩有码| 久久久91福利姬| 免费a v| 色噜噜精品一区二区三| 亚洲天堂另类美腿| 韩国毛片一区二区三区| 国产精品精品系列在线观看| 日逼国产| 久久精品72| 男人的天堂kva| 久久透逼视频| 操少妇很爽av| 日本五区不卡| 国产精品99精品视频网站| 国产精品久久久鸭无码的功能| 极品五月天噜噜| 日韩三级性| 日韩免费a级毛片无码a∨| 成人三级片无码| 欧中日成人免费影视| 欧美综合色,www| 亚洲性爱免费电影| 熟妇人妻一区二区| 久久久久久久久久久久97| 中文字幕一二区二三区人妻专区| 啊啊啊啊嗯嗯嗯用力好爽| 97超碰人操| 欧美性xxxxx狂欢| 天天肏夜夜肏| 综合视频91| 26uuu最新| 日韩日韩日韩-国产乱码精品一区二区| 久久东京热久久| 欧美亚洲日本视频久久久| 又摸又舔在线观看网站| 久久中出| 亚洲精品男人的天堂| 亚洲偷91色| 白丝被操91| 久久久精品国产亚洲伊人| 一二三四区电影| 三级色综合| 欧美熟女妇同| 国产午夜福利专区综合| 国产精品经典一卡久久久 | 成人三级片无码| 97久久精品国产| 91精品国产91久久青草| 丁香五月成人| 久久这里只有精品9| 黑人黄片在线免费观看| 亚洲精品97久久中文字幕| 少妇人妻好深太紧了vr91| 五月天色电影| 欧美人人曰人人操人人射射 | 久久99草| 日韩欧美综合激情| 欧美性天天影院| xxx0国产在线播放| 欧美天堂亚洲电影院一区在线播放| 亚洲无码成人精品| 超碰99热中文字幕| 大香樵伊人网| 黑人与人妻| 香港澳门日本三级网站| 91网站18禁| 九九九九九九免费视频| 中文字幕在线观看第二页| www.色婷婷色综合| 美女久久久| 快灬快灬 一下爽蜜桃在线观看| 囯戸精品高潮呻吟旡码| 超碰97国产欧美| 国产成人啪一区二区| 蜜臀在线免费观看在线免费观看| 婷婷六月色| 色综合av男人天堂| 丰满岳乱妇一区二区三区| 97超碰中文在线| 性高潮久久久久久久久久久| 老司机免费视频在线91| 色娱乐色呦呦夜夜夜夜av| 夜夜嗨一区二区| 综合激情五月丁香| 3p国产欧美99热| 国产综合永久精品日韩鬼片| 日韩 国产 欧美自拍| 久久 精品| 欧美热图99| 亚洲图片小说欧洲| 无码人妻毛片丰满熟妇精品区| A男人的天堂| 一区二区三区色综合| 精品视频一区二区| 美女91| 偷拍片久久| 国产热av| 操死我了啊啊啊| 男人天堂免费| 欧美丝袜美女电影一二三四区| 国产91精品久久久久久久网曝门| 中文字幕在线观看AV| 1024亚洲中文字幕久在线看片你懂的 | 中文字幕99999| 日本免费中文字幕在线| 视频一区二区三区精品| αⅴ天堂| 国产精品久久久久久 百度| 性色生活片久久毛片婬片免费放女人一级毛片 | 麻豆精品久久久久久久| 国产玖玖| 91国产精品熟女| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久久久不能久久久久| 射 色综合| 国产亚洲在线观看| 国产精品自在自拍视频| 深田咏美亚洲精品福利社| 色牛牛AV| 69精品少妇一区二区三区蜜桃| 操逼网免费无码视频| 蜜桃av综合网发布| 超碰人人妻| 国产传媒一区日韩| 亚洲 综合 第一页| 亚洲美女精品九九视频| 精品国产一区探花在线观看| 园内精品自拍视频在线播放| 日韩人妻一区二区精品| 中文字幕日韩国产传媒欧美精品| 亚洲综合色男人网| 亚洲宗合网| 9久久精品| 日韩欧美性吧婷婷乱伦大香蕉| 人人艹亚洲| 国产精品久久久久av| 91在线欧色| 欲射影视| 亚洲天堂资源网| 日韩欧美大力操| 性爱av网站| 精品久久久九九九孕妇| 色娱乐色呦呦夜夜夜夜av| 素人伊尹大香蕉免费下载视频| 日韩精品一二三| 天天网综合| 精品久久久久av影院| 狠狠干综合| 欧美日韩国产电影| 国产97在线视频| 亚洲 一区二区 自拍| 久久熟女人| 精品二区三四区五电影| 国产精品福利资源在线尤物| 不卡啪啪视频| 日本999精品| 嗯嗯啊好爽| 久久99亚洲精品久久99果| 性做久久久久久久| 国内精品伊人久久久久影院会| 性爱AV天堂| 蜜臀久久99精品久久久久久婷婷| 18禁免费视频| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 久久是精品| 九九碰九九爱97超| 免费精品福利在线观看| 97视频在线观看高清资源| 美女黄页网站| 亚洲性爱无码乱伦av| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 97国产成人精品免费视频| 色婷婷蜜臀av| 蜜臀99久久精品久久久懂爱| 婷婷深爱五月| 夜夜嗨一区二区三区三州加勒比| 亚洲图片日本AⅤ欧美在线| 久久精品国产亚洲AV嘿嘿| 福利风月五月天影院| 热热色综合网| 午夜小电影在线插入淫高潮| 精品国产精品一区二区| 超碰日韩美妻| 欧日a| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 综合久久六月久久婷婷| 九九国产热| 成人七区| 日韩视频小说在线观看| 国产最新小视频在线播放下载| 台湾佬中文娱乐自偷自拍| 天堂成人网| 婷婷五月花| 熟女字幕| 97在线无精品| 久久成人午夜精品影院| 中日无幕一二三四区| 无码人妻一区二区三区四区老鸭窝| 欧美日韩中文亚洲v在线综合| 中文字幕人乱码中文字的预防方法| a片 xxxx受爽视频| 亚洲AV免费在线观看| 国产呦精品系列在线观看| 天天色悠悠激情| 国产精品久久久吖| 久久久久元码视频| 中文字幕精品一区二区精| 欧美色道啊| 91粉嫩萝控精品福利网站_精品影音先锋国 | 三级三久久线久久99久目本WW| 青青草女人天天干| 久久精品99| 亚州男人天堂| 99九九久久| 狼狼色丁香久久婷婷综合五月| 欧美亚洲厕所精品偷拍91| 国产成人手机视频激情| 99999久久精| 99操视频| 51国产午夜精品视频| 爱爱久久| 中文字幕一区日韩精| 女人 A一级| 少妇啪啪自拍| 久久久天美| 蜜臀久久99精品久久久久久久久| 白丝av| 人妻天天爽| 日韩欧美视频青青| 74成人在线| 2017,超碰| 色婷婷aV一区二区三区麻豆综合| 午夜.DJ高清在线观看免费7| 亚洲AV色图一区| 丝袜美腿欧美| 国产精品探花色| 日韩色图 一区二区| 91亚州日韩高清| 精品久久久久久无码| 天美传媒精品久久视频| 暖暖精品二区三区观看| 国产A v无码专区| 东京热毛片调教| 欧美日本天堂| 青青草日韩无码| ,成人免费啪啪视频| 97操97干| 白丝少妇一区二区| 久久免费老司机精品| 中文字幕一区二区在线日韩精品| 欧美在线亚洲| 国产精品久久久九九九| 六九九九| 激情综合二| 午夜精品久久一区二区| 国产伊人精品在线| 夜夜嗷嗷一区二区| 厕所偷拍在线| 91人妻PORNY九色大屁股| 国产极品精品美女视频| 欧美天天综合网版| 青青草色插素人| www色日本| 人人 操人人 操人人| 中文字幕丰满子伦无码专区在线视频最新 | 一区二区三区机械有限公司| 乱伦熟妇一区二区| 欧美啪啪色吧在线| 毛片17S| 国产成人无码啪| 熟妇乱伦一区二区| 青娱乐黄色录像| 亚洲好色人妻| 97在线观看免费视频l| 九久9热| 婷婷爱五月| 人人看人人摸人人色| 亚洲天堂中文字| 91无码西班牙视频在线| 男人的天堂99| 情侣操 逼视频99| 九九久久首页| www.欧精品| 狠狠狠狠狠狠| wwwss在线观看| 无码精品久久久天天影视| 日韩免费在线观看不卡| 久久97| 日韩97| 一个人免费HD91视频| 东北少妇高潮zzzz| 天天操妹子| 蜜桃久久一区| 老鸭窝在线视频播放| 无卡一区=区| 日韩专区久久久| 一区二区视频你懂的| a人欧美综合天堂麻豆| 久草精品国产蜜臀| AV天堂丝袜| 91ise欧美| 伊人久久国产免费观看视频| 97色插| 无码抄逼网| 欧美性爱十八禁| 国产97视频免费观看| 国语国产操逼伊人AV网| 抽插无码高清一区| 狠狠色婷婷777| 久久亚洲AV成人精品无码| 国产一级不卡在线观看| 免费一级性爱久久| 26uuu性| 国产大学生口爆吞精合集| 亚洲成人性爱在线观看| 超碰在线国产| 天天射网| 大香蕉欧美伊| 婷婷九月国产| 青青草字幕AV| 日本Suv精品一区二区| 婷婷爽人人婷婷爽视频| 国产亚洲精品精AV.| 亚洲天堂AV在线播放| 凹凸视频特色日本特黄| 90后性网国产欧美| 亚州少妇| 蜜桃久久久久久久久久久久| 99福利社| 91国内外在线| 加勒比综合a∨| 国内伊人久久久久久网站视频| 亚洲欧洲成人在线电影| 精品午夜福利国产一区二区在线观看 | 国产欧美亚洲精品a第2页| 九九热免费视频| 亚洲综合影视| 久久精品国产97欧美精品亚洲| 日韩超碰97| 操我无码| 九九九综合精品| 国产1727欧美| 日本不卡二区| 家庭乱伦国产| 久热免费视频| 东京热一区二区三区四区五区六区| 熟妇高潮精品一区二区三区下载| 成人老鸭窝人人在线视频| 精品一区99999| 熟妇乱伦一区二区| 影音先锋国产精品| 加勒比AV网| 97超碰超碰| 成人性爱AV在线免费观看| 婷婷激情五月| 精品中文日韩字幕视频| 亚洲欧洲av影音| 色婷五月| 色网综合网| 91综合在线| 综合久久99| 亚洲精品白丝| 午夜亚洲WWW湿好大| 超碰在线91| 啊啊啊啊啊好舒服视频| 乱伦一二三| 久久免费老司机精品| 91狠狠狠| 久久久久久久国产视频| 五月天开心网| 青青五月天| 国产精品久久久久久 百度| 欧美性暴力猛交XXXX| 精品人妻一区二区三区视频在线| 国产又黄又爽| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 啊啊啊好爽快点啊啊啊嗯嗯| 久久久内射良家| 国产成人无码a| 国产亚州精品美女久久久免费| 超碰性爱97| 强被迫伦姧在线观看无码网站| 亚洲nv男人的天堂网| 操一对老熟妇爽上天视频| 免费视频在线一区二区不卡| 吻戏激情性巴克| 有码专区最新中文字幕有码| 欧美成人一级免费电影| 久久女同性恋一二区| A级片日韩欧美国产欧美视频精选观看 | 另类综合另类| 精…码一二三区| 五月丁香网站| 97超碰超| 95精品在线| 搡老女人老91二区| 91精品国产综合久久久蜜臀| 大香蕉日韩| 炮色五月| 91视频精品| 九九热精品| 91精品婷婷国产综合久久| 国产1769在线| 伊人精品国产| 日本肉体xxxx裸交| 最新av在线| 曰韩操B| 久久天天躁日日躁狠狠躁 | 五月婷婷丁香六月丁香| 亚洲欧美日韩电影网站一区| 污污汅18禁网站在线永久免费观看| 久久综合久色欧美综合狠狠| 欧美日韩精品一区二区三区高清| 天天色踪合| 18禁超污无遮挡无码免费网| 超碰偷拍| 欧美夜夜狠| 丰满人妻aA一区二区三区| 日本三级中国三级99人妇网站| 97视频免费播放| 日韩AC| 欧美美女视频| 午夜福利视频在线一区| 暴力av在线| 久久最新免费视频23| 中文字幕人妻资源在线| julia中文字幕在线观看| 久久精品国产72国产精品福利| 国产激情在线| 麻豆AV一区二区| 夜夜天天噜狠狠爱2021| 亚洲素人综合| 久久久精品日本一道| 国产亚洲色停停久久99精品91| 国产精品suv一区| 欧美精品1区2区3区| 神马久久久久久| 美女AV一区二区| 2020国产精品| 国产精品白领在线观看 | 国产综合在线视频网站| 伊人欧美大香蕉视频| 免费毛片在线播放| 欧美自拍偷拍综合图片| 人妻喷水| 色噜噜国产在线| 免费综合亚洲中文| 伊人网高清| 亚洲情色在线| 五月天婷婷基地| 欧美日韩黄片精品在线| 老司机福利社视频在线观看| 啊啊啊啊二区好大| 欧美Aⅴ| 中文字幕一区二区三区四五区| 天天操女人| 国产又黄又粗的视频| 中文字幕伊人| 久久一二三级一一一| 日本三级R| 自拍内地三级在线观看| 色欧美色交综合| 婷婷五月天无码| 久久本道| 98一区二区精品| 日美免费黄片| 亚洲乱色熟女一区| www.成人无码| 97硬碰| 97天堂| 久久av成人无码免费| 97色97干| 久久久久成人网| 91中文字幕在线观看| 中文字幕av色| 99九九久久| 色成人Www精品永久观看| 国产强奸乱伦无码视频| 亚洲综合草草| 97就爱干| 久久9久9久99久9久9| 国产精品亚洲美女久久久久| 国产精品美女视频诱惑| 色图四区| 欧美 亚洲精品首页| 精品欧美日韩在线观看| 久草精品热视| 婷婷五月天伊人| 桃色五月天| 操屄不卡视频| 欧美v亚洲v综合v国产v妖精| 亚欧无码线免费观看视频| 91天天综合日韩欧美| 青青青草原| 性爱AV天堂| 欧美激情欧美精品| 午夜呻吟欧美| 草蕉影视亚洲无码| 国产精品免费美女视频| 国产曰批免费观看久久久| 91夜色| 一区在线精品中文字幕| 91精品人| 超碰精品日韩欧美国产| 婷婷婷婷婷婷久久久久| 激情小说在线视频| av网站国产主播在线| 国产精品点击进入在线影院高清| 国产在线观看一区二区三区| 久久精品午夜国产亚洲AV无码| 日韩精品资源专区二区| 男插女青青影院| 爱妃国产亚洲视频中文字幕| 亚洲国产精品V?在线播放| 婷婷伊人五月| 精品久久无码午夜福利| 日本高清视频xxxx| 久久高清欧美国产| 99无码视频| 亚洲AV无码天美传媒一区| 亚洲综合网图| 樱花草社区www中国| 久久一二三四不卡| 99操| 91男人综合| 午夜传煤十二区精品| 蜜臀久久99精品久久久久久酒店 | 青女在线| 51一区二区三区| 欧美性色网| 国产乱伦视频污| 婷婷丁香九月| 精品超碰国产| 中文字幕日产av人| 97天天弄| 懂色AV网| 国产一级内射高清视频| 欧美另类综合久久| 久久99视频| 二区熟妇韩日| 免费97视频| 国产路线专区| 国产精品久久久久久照片| 香港澳门日本三级网站| 日韩亚洲国产视频| 天天影视色香色欲| 亚洲AV无码久久精品蜜桃小说| 中文子幕一二三| 欧美性夜| 国产宅男宅女在线观看| 亚洲va综合va国产va中文| 97超碰天天| 尤物视频新赏网鲜网色诱网| 亚洲日韩电影| 国内毛片国产专区二| 操逼日韩无码| 免费一级毛片在线视频观看| 天色综合网| 日本一二三免费久久| 天啪| 不卡一区二区日本视频| 婷婷综合五月天| 无卡一区=区| 天天视频黄| 亚洲人妻av| 9精品在线| 97精品免费视频网站| 播播亚洲小说亚洲| 嫩草 人人网精品| 四虎影视国产精品| 成人av福利在线观看| 亚洲综合网电影91| 伊人四虎综合| 69XX一中文字幕人妻91| www.久久最新地址| 天美av在线观看| 2020中文字幕在线| 亚州综| 在线观看AV片| 欧美永久激情一区二区| 激情露脸爱| 人人妻人人澡人人爽人人精品浪潮| 精品无码欧美三级| 99久久九九| 国产不卡精品91| 青青草依人大香蕉| 乱伦AVxx| 中文字幕亚韩| 超碰地址97| 人人操人人93| 一级性爱aaaa| 九九热精彩视频| 久久久久久久久久9| 亚洲色欲天天人妻无码系列专区| 欧美91网站| 翔田千里无码一区| 中文字幕丝袜人妻| 一本久久久精品| 欧美一级黄色18片免费看| 亚洲天堂日本| 精品国产一区二区三区四区在线看| 热久久91婷婷| 日韩av性爱在线播放| 欧美少妇熟女| 夜夜春夜夜操| 国产女人91精品嗷嗷嗷嗷| 免费成人在线熟妇网| 蜜臀AV秘一区翔田千里| 日韩情色AV| 久久久久久久伊人精品| 亚洲一区二区三区麻豆传媒| 国产精品美女久久久久久网站| 嗯嗯啊中文字幕| 蜜臀在线视频| 啊a一区在线| 中文字幕黄片在线| 中文字幕久久精视频久久大全| 日韩一级久久毛片| 欧美72网页| 粉嫩av久久一区二区三区| 99综合自拍| 日韩中文字幕人妻视频| 嗯,啊。舔我逼| 无遮挡h肉动漫在线观看| 2020中文字幕在线| 国产精品久久伊人| 在线不欧美| 麻豆区99999| 欧美性生活男人的天堂| 大香蕉宅男伊人| 97久久久网站| 欧美天天插| 中字幕人妻一区二区三区| 麻豆 亚洲 97| 九月丁香综合网| 色约约一区=区三区| 免费看毛片操穴| 啊啊啊啊免费视频| 中文字幕天天天天天| av最新免费中文字幕| 天天性射网| 日韩精品视频在线观看一卡二卡| 色97干| 艳尻美人妻| 丰满岳乱妇一区二区三区| 九九九偷拍| 99re这里只有精品3| 日日噜噜夜夜狠狠视频无| 欧美激情精品久久久| 色一情一乱一乱一区91Av| 超碰97COm中文| 久久久久久久一级黄色打同平台| 日韩无码三级影院| 午夜福利 成人 91| 日本天天吊| 视频国产成人精品日本亚洲18| 精品国产久久乱码| 少妇二级| 欧美亚洲中文| 亚洲欧美一区二区不卡视频播放| 激情色播| 岛国免费视频在线| 中精品一区二区三区| 大香蕉伊人网WWWn0n| 亚洲乱码精品一区二区| 久久原创中文| 久久黄色网址| 欧美性爱中文字幕无线码| 欧美资源| 91天堂视频| 99碰碰| 欧美日韩国产中文精品字幕自在自线 | www欧美91| 国产精品久久久久久久免牛肉蒲团| 9l视频自拍9l九色成人| 国产精品爱欲| 日本操逼视频免费| 91高跟美女在线播放| 色婷婷狠狠| 久久精品店| 一区二区三区高清天码| 欧美激情精品久久久| 国产91精品久久久久久久网曝门| 国产免费一区在线观看| 国产在线观看一区二区三区| 91天天综合在线观看| 裸体美女久久久| 青青草自拍视频在线播放| 欧美人与性动交a美精品| 亚州综合色| 97在线视频观看免费| 爱妻综合网| 欧美性生活综合| 国产99精品一区二区三区免费| 亚洲天堂男人天堂网| 91日韩网站| 色亚州人久干视频在线观看免费版| 中文字幕版| 男人天堂站| 免费久久精品麻豆一区二区av| 国产精品久久久| 少妇贴图| 国产亚热在线久久| 91校园春色长篇| 色爱国产| 少妇高潮对白在线观看| 午夜精品久久久久久久久久蜜桃| 97视频免费在线| 校园春色宗合网| 日han少妇无码| 亚洲成人网站在线观看| 草莓精品视频| 操逼操逼逼操操逼91| 岛国激情视频在线观看| 天堂av最新电影网| 日韩av色图综合| 91伊人影视综合| 日本人妻一区二区| 浓厚中出中文字幕在线| 日韩三级伊人| 2020久久免费视频| 热热色AV| 顶级少妇BT天堂| 九九热在线精品视频| 青草精品视频一日本久久久久网站| 人人操人人摸人人骑| 91美女视频| 黄色视频特级毛片| 欧美亚洲涩涩| 97爱综合| 吻戏激情性巴克| 欧美超碰97| 蜜乳Av成人片网站| 人妻激情另类| 日韩av在线精品观看| 人妻美腿丝袜制服诱惑综合天堂-| 日本不卡在线二区三区| 日本狠狠干| 美女啊啊啊啊啊| 一区二区三区四区色图| 97爱| 综合av影片| 91啪啪视频| 日韩成人高清一区二区| 九久9精品| 啊啊啊不要好疼视频| 一区二区久久天天干狠狠| 黄页大片在线观看| 亚洲影院小综合| 国产日韩人人| 久久久久久久久九九久孕交| 97超碰资源网| 5252色欧美在线男人的天堂| 欧美大香蕉卡久久| 夜夜操av亚洲一区二区| 国产男女无套97| 小草av不卡亚洲二区| 美女丝袜激情小说| 九九九九一区| 欧美一级二级三级| 蜜臀AV午夜精品久| 久久久久99精品成人片蜜臀| 激情小说亚洲|