Unity3D仿星露谷物語開發34之單擊Drop項目

1、目標

當在道具欄中選中一個Item時,點擊地面就可以實現Item的drop操作,每點擊一次就drop一次,直到道具欄中Item數量不夠。

這樣的好處:避免每次Drop都從道具欄中拖拉Item,通過點擊這種操作可以更加高效。

方法:通過EventHandler腳本創建Event,在Player腳本中處理點擊并觸發Event,在UIInvenrotySlot腳本中訂閱Event進行處理。

2、優化EventHandler腳本

添加如下事件代碼:

3、優化Player腳本

添加如下變量:

private GridCursor gridCursor;

添加Start方法:

private void Start()
{gridCursor = FindObjectOfType<GridCursor>();
}

在Update中添加如下代碼:

其具體實現如下:

private void PlayerClickInput()
{if (Input.GetMouseButton(0)){if (gridCursor.CursorIsEnabled){ProcessPlayerClickInput();}}
}

相關的代碼實現如下:

 private void ProcessPlayerClickInput(){ResetMovement();// Get Selected item detailsItemDetails itemDetails = InventoryManager.Instance.GetSelectedInventoryItemDetails(InventoryLocation.player);if(itemDetails != null){switch (itemDetails.itemType){case ItemType.Seed:if (Input.GetMouseButtonDown(0)){ProcessPlayerClickInputSeed(itemDetails);}break;case ItemType.Commodity:if (Input.GetMouseButtonDown(0)){ProcessPlayerClickInputCommodity(itemDetails);}break;case ItemType.none:break;case ItemType.count:break;default:break;}}}private void ProcessPlayerClickInputSeed(ItemDetails itemDetails){if(itemDetails.canBeDropped && gridCursor.CursorPositionIsValid){EventHandler.CallDropSelectedItemEvent();}}private void ProcessPlayerClickInputCommodity(ItemDetails itemDetails){if(itemDetails.canBeDropped && gridCursor.CursorPositionIsValid){EventHandler.CallDropSelectedItemEvent();}}

4、優化UIInventorySlot腳本

在OnEnable方法中增加如下代碼,訂閱事件并進行處理。

5、運行程序

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75900.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75900.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75900.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 正則表達式優化

1&#xff0c;什么是正則表達式 正則表達式使用一些特定的元字符來檢索、匹配以及替換符合規則的字符串。 構造正則表達式語法的元字符&#xff0c;由普通字符、標準字符、限定字符&#xff08;量詞&#xff09;、定位字符&#xff08;邊界字符&#xff09;組成 普通字符 字母[…

檢測鏈表是否有環, 動畫演示, Floyd判圈算法擴展應用

力扣原題鏈接: 141. 環形鏈表 - 力扣&#xff08;LeetCode&#xff09; 哈希表 檢測環形鏈表, 直觀的思路就是使用哈希表, 遍歷這個鏈表, 將訪問過的節點加入到哈希表中, 如果遍歷過程中發現節點已經存在于哈希表中, 則說明鏈表有環. 復雜度分析: 時間復雜度: O(N), 最壞情…

linux專題3-----linux上鏈接遠程mysql

要在 Ubuntu 上連接遠程 MySQL 數據庫&#xff0c;你可以使用 MySQL 客戶端工具或者其他數據庫管理工具&#xff0c;如 phpMyAdmin 或 MySQL Workbench。以下是使用 MySQL 命令行工具連接遠程 MySQL 的步驟&#xff1a; 確保已安裝 MySQL 客戶端 首先&#xff0c;確保你的 Ub…

webpack js 逆向 --- 個人記錄

網站 aHR0cDovL2FlcmZheWluZy5jb20v加密參數 參數加密位置 方法&#xff1a; 1. 構造自執行函數 !function(e) {// 加載器 }(// 模塊1&#xff1b;// 模塊2 )2. 找到js的加載器 3. 把上述代碼放入第一步構造的自執行函數(完整扣取一整個加載器里的代碼)&#xff0c;并用一…

用HTML.CSS.JavaScript實現一個貪吃蛇小游戲

目錄 一、引言二、實現思路1. HTML 結構2. CSS 樣式3. JavaScript 邏輯 三、代碼實現四、效果展示 一、引言 貪吃蛇是一款經典的小游戲&#xff0c;曾經風靡一時。今天&#xff0c;我們將使用 HTML、CSS 和 JavaScript 來實現一個簡單的貪吃蛇小游戲。通過這個項目&#xff0c…

基于α-β剪枝的含禁手AI五子棋

前言&#xff1a; 正常的五子棋應當設有禁手規則&#xff0c;否則先手黑棋必贏&#xff0c;基于此點設計出一款包含禁手的AI五子棋項目&#xff0c;該項目代碼已在github開源&#xff0c;感興趣的友友可以自取試玩:ace-trump-tech/AI-Gomoku-with-Prohibition-Moves: 含禁手的A…

Spring Boot 集成 Redis中@Cacheable 和 @CachePut 的詳細對比,涵蓋功能、執行流程、適用場景、參數配置及代碼示例

以下是 Cacheable 和 CachePut 的詳細對比&#xff0c;涵蓋功能、執行流程、適用場景、參數配置及代碼示例&#xff1a; 1. 核心對比表格 特性CacheableCachePut作用緩存方法的返回結果&#xff0c;避免重復計算執行方法并更新緩存&#xff0c;不覆蓋原有緩存執行流程緩存命中…

可以使用費曼學習法閱讀重要的書籍

書本上畫了很多線&#xff0c;回頭看等于沒畫出任何重點。 不是所有的觸動都是有效的。就像你曾經看過很多好文章&#xff0c;當時被觸動得一塌糊涂&#xff0c;還把它們放進了收藏夾&#xff0c;但一段時間之后&#xff0c;你就再也記不起來了。如果讓你在一本書上畫出令自己…

Nginx之https重定向為http

為了將Nginx中443端口的請求重定向到80端口&#xff0c;你可以按照以下步驟進行操作&#xff1a; ?確認Nginx已經正確安裝并運行?&#xff1a; 確保Nginx服務已經在你的系統上安裝并運行。你可以通過運行以下命令來檢查Nginx的狀態&#xff08;具體命令可能因操作系統而異&a…

【ARTS】【LeetCode-2873】有序三元組中的最大值!

前言 僅做學習使用&#xff0c;侵刪 什么是ARTS&#xff1f; 算法(Algorithm): 每周至少一道LeetCode算法題&#xff0c;加強編程訓練和算法學習 閱讀(Review)&#xff1a; 閱讀并點評至少一篇英文技術文章&#xff0c;提高英文水平 技巧 (Tip)&#xff1a;學習至少一個技…

基于spring boot 鮮花銷售系統PPT(源碼+lw+部署文檔+講解),源碼可白嫖!

課題意義 隨著網絡不斷的普及發展&#xff0c;鮮花銷售系統依靠網絡技術的支持得到了快速的發展&#xff0c;首先要從用戶的實際需求出發&#xff0c;通過了解用戶的需求開發出具有針對性的信息管理系統&#xff0c;利用目前網絡給用戶帶來的方便快捷這一特點對系統進行調整&am…

Redis常用的數據結構及其使用場景

字符串(String) string 是 redis 最基本的類型&#xff0c;你可以理解成與 Memcached 一模一樣的類型&#xff0c;一個 key 對應一個 value。 string 類型是二進制安全的。意思是 redis 的 string 可以包含任何數據&#xff0c;比如jpg圖片或者序列化的對象。 string 類型是 R…

設計模式簡述(五)建造者模式

建造者模式 描述基本要素協調類使用 描述 建造者模式屬于創造型設計模式。 通常用于構建一系列復雜對象&#xff0c;這些對象有一定的共性。 我們可以通過不同的建造者&#xff0c;組裝不同的對象 與工廠模式的區別&#xff0c;建造者模式更側重與基于基礎構件組裝而非直接創…

Java基礎 4.6

1.成員方法練習 //編寫類A&#xff1a;判斷一個數是奇數還是偶數&#xff0c;返回boolean //根據行、列、字符打印對應行數和列數的字符&#xff0c;比如&#xff1a;行4 列4 字符# 則打印相應的效果 public class MethodExercise01 {public static void main(String[] args) …

前端快速入門學習4——CSS盒子模型、浮動、定位

一、盒子模型 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"這一術語是用來設計和布局時使用。 CSS盒模型本質上是一個盒子&#xff0c;封裝周圍的HTML元素&#xff0c;它包括&#xff1a;邊距&#xff0c;邊框&#xff0c;填充&#xff0c…

瑞數信息發布《BOTS自動化威脅報告》,揭示AI時代網絡安全新挑戰

近日&#xff0c;瑞數信息正式發布《BOTS自動化威脅報告》&#xff0c;力求通過全景式觀察和安全威脅的深度分析&#xff0c;為企業在AI時代下抵御自動化攻擊提供安全防護策略&#xff0c;從而降低網絡安全事件帶來的影響&#xff0c;進一步增強業務韌性和可持續性。 威脅一&am…

Docker設置代理

目錄 前言創建代理文件重載守護進程并重啟Docker檢查代理驗證 前言 拉取flowable/flowable-ui失敗&#xff0c;用DaoCloud源也沒拉下來&#xff0c;不知道是不是沒同步。索性想用代理拉鏡像。在此記錄一下。 創建代理文件 創建docker代理配置 sudo mkdir -p /etc/systemd/s…

Debezium嵌入式連接postgresql封裝服務

文章目錄 1.項目結構&#xff1a;2.依賴&#xff1a;3.application.properties4.DebeziumConnectorConfig類5.TableEnum類6.TableHandler接口&#xff08;表處理抽象&#xff09;7.DefaultTableHandler默認實現類8.UserTableHandler處理類9.TableHandlerFactory工廠10.Debezium…

ER-圖,詳情和畫法

一、E-R圖的核心元素 1.實體 表示現實中對象或概念&#xff0c;用矩形表示 示例&#xff1a;用戶、老師、學生 2.屬性 描述實體的特征&#xff0c;用橢圓表示。 分為主鍵&#xff08;用戶id&#xff09; 和非主鍵&#xff08;用戶昵稱&#xff09; 3.關系 表示實體間的…

Windows Flip PDF Plus Corporate PDF翻頁工具

軟件介紹 Flip PDF Plus Corporate是一款功能強大的PDF翻頁工具&#xff0c;也被稱為名編輯電子雜志大師。這款軟件能夠迅速將PDF文件轉換為具有翻頁動畫效果的電子書&#xff0c;同時保留原始的超鏈接和書簽。無論是相冊、視頻、音頻&#xff0c;還是Flash、視頻和鏈接&#…