在線游戲玩家與物品交互處理

玩家與物品接觸后的判定

 ? ? ? ?if (hit != null && hit.CompareTag("Item")){Debug.Log("撿東西");var worldItem = hit.gameObject.GetComponent<WorldItem>();if (worldItem != null){var inventory = GetComponent<PlayerInventory>();if (inventory != null){inventory.TryPickItem(worldItem); }}}

玩家的背包腳本

分3部分:

公共函數TryPickItem(實際上也是客戶端的玩家調用)

發給服務端的函數:申請撿東西

服務端發給客戶端的函數:廣播客戶端修改物品

using UnityEngine;
using Mirror;
using System.Collections.Generic;
?
public class PlayerInventory : NetworkBehaviour
{public List<Item> items = new List<Item>();
?// 提供給外部調用的公共函數public void TryPickItem(WorldItem targetItem){if (!isLocalPlayer || targetItem == null) return;Debug.Log("TryPick");CmdPickItem(targetItem.netId);}
?// 服務器端命令函數,用于處理撿取物品的邏輯[Command]void CmdPickItem(uint netId){Debug.Log("發送撿東西");if (NetworkServer.spawned.TryGetValue(netId, out var itemIdentity)){var worldItem = itemIdentity.GetComponent<WorldItem>();if (worldItem != null){Item itemData = worldItem.GetItemData();items.Add(itemData);Debug.Log($"服務端:拾取了 {itemData.itemName}");TargetAddItem(connectionToClient, itemData);NetworkServer.Destroy(worldItem.gameObject);}}}
?// 客戶端RPC函數,用于同步物品到客戶端[TargetRpc]void TargetAddItem(NetworkConnection target, Item item){items.Add(item);Debug.Log($"客戶端:已同步物品 {item.itemName} 到背包");}
}

結果展示

拾取前

拾取后

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

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

相關文章

深入解析Java Stream 構建:AbstractPipeline

Java Stream 宏觀介紹見&#xff1a;深入解析 Java Stream 設計&#xff1a;從四幕劇看流水線設計與執行機制-CSDN博客 PipelineHelper PipelineHelper 是 Java Stream API 內部一個至關重要的輔助類。正如其名&#xff0c;它是一個“管道助手”。可以把它想象成一個執行上下文…

《林景媚與命運回響》

《林景媚與命運回響》——當數據庫開始回響命運&#xff0c;現實是否還能被信任&#xff1f;《林景媚數據庫宇宙》系列第九部第一章&#xff1a;命運的漣漪公元 2089 年&#xff0c;數據庫神諭的運行已趨于穩定&#xff0c;PostgreSQL Quantum Engine&#xff08;PQE&#xff0…

圖神經網絡入門:從GNN開始01圖卷積網絡GCN節點分類 02圖注意力網絡GAT 03圖自編碼器GAE 04 門控圖神經網絡GGNN

目錄 一.基礎1-[圖論、圖算法、CNN] 二.基礎2-[圖卷積神經網絡GCN] 三.torch-geometric.nn工具包安裝&#xff08;包含各種算法和數據集&#xff09; 四.GCN任務[節點分類-Cora 數據集] 五.圖注意力網絡&#xff08;GAT&#xff09; 六.圖自編碼器&#xff08;GAE&#x…

001 Configuration結構體構造

目錄DramSys 代碼分析1 Configuration結構體構造1.1 from_path 函數詳解1.2 構造過程總結這種設計的好處2 Simulator 例化過程2.1 instantiateInitiatorDramSys 代碼分析 1 Configuration結構體構造 好的&#xff0c;我們來詳細解釋一下 DRAMSysConfiguration.cpp 文件中 fro…

以太坊十年:智能合約與去中心化的崛起

以太坊10周年&#xff0c;敬開發者&#xff0c;敬構建者&#xff0c;敬還在鏈上的我們 以太坊即將迎來十周年紀念,作為一名在這個生態中深耕了8到9年的見證者&#xff0c;我親歷了它從一紙白皮書的構想到成長為全球領先去中心化平臺的全過程。這十年間&#xff0c;以太坊經歷了…

kafka 3.9.1版本: kraft + sasl+ standlone 模式完整可行安裝步驟

Kafka 3.9.1 Kraft 單機模式安裝 安裝 OpenJDK 11 CentOS/RHEL yum install -y java-11-openjdk-develUbuntu/Debian apt install -y openjdk-11-jdk下載安裝包 wget https://mirrors.aliyun.com/apache/kafka/3.9.1/kafka_2.12-3.9.1.tgz tar -zxvf kafka_2.12-3.9.1.tgz -C /…

Gitee DevOps平臺深度評測:本土化優勢與功能特性全面解析

Gitee DevOps平臺深度評測&#xff1a;本土化優勢與功能特性全面解析 在數字化轉型浪潮下&#xff0c;企業軟件開發流程的自動化與協作效率成為核心競爭力。作為國內領先的代碼托管與DevOps平臺&#xff0c;Gitee&#xff08;碼云&#xff09;憑借其本土化服務與全流程支持能力…

從零開始本地化部署Dify:開源大模型應用平臺搭建全指南

在AI應用開發的浪潮中&#xff0c;Dify作為一款開源的大語言模型(LLM)應用開發平臺&#xff0c;正逐漸成為開發者和企業的首選工具。它巧妙地融合了后端即服務&#xff08;BaaS&#xff09;和LLMOps的理念&#xff0c;讓開發者能夠快速搭建生產級的生成式AI應用。無論是構建智能…

Qt 多媒體開發:音頻與視頻處理

Qt 多媒體模塊提供了一套完整的 API&#xff0c;用于開發音頻和視頻處理應用。從簡單的媒體播放到復雜的音視頻編輯&#xff0c;Qt 都提供了相應的工具和組件。本文將從基礎到高級全面解析 Qt 多媒體開發。 一、Qt 多媒體模塊概述 1. 主要組件 Qt 多媒體模塊包含以下核心組件&a…

Mac 專業圖像處理 Pixelmator Pro

原文地址&#xff1a;Pixelmator Pro Mac 專業圖像處理 Pixelmator Pro&#xff0c;是一款非常強大、美觀且易于使用的圖像編輯器&#xff0c;專為 Mac 設計。 采用單窗口界面、基于機器學習的智能圖像編輯、自動水平檢測&#xff0c;智能快速選擇及更好的修復工具等功能優點…

iptables和IPVS比較

iptables 和 IPVS (IP Virtual Server) 都是 Linux 系統上用于處理網絡流量的強大工具&#xff0c;但它們的設計目標、工作原理和適用場景有顯著區別&#xff1a; 核心區別&#xff1a;主要目的&#xff1a; iptables&#xff1a; 核心是一個包過濾防火墻和網絡地址轉換工具。它…

語音識別指標計算 WER

目錄 CER&#xff08;Character Error Rate&#xff09; WER Word Error Rate&#xff08;詞錯誤率&#xff09; &#x1f9ee; WER 計算方式 &#x1f4cc; 示例 ? 理解要點 CER&#xff08;Character Error Rate&#xff09; 語音識別中的 CER&#xff08;Character …

【前端基礎篇】JavaScript之jQuery介紹

文章目錄前言JQuery基本介紹和使用方法引入依賴jQuery語法jQuery選擇器jQuery事件操作元素獲取/設置元素內容獲取/設置元素屬性獲取/返回css屬性添加元素刪除元素總結&#xff1a;常用的jQuery方法 - 詳細解釋與示例事件處理拓展 - 詳細解釋與示例其他拓展內容前言 在閱讀過程…

Vue入門:vue項目的創建和基本概念

一、vue的基本簡介1. 什么是vue?Vue (發音為 /vju?/&#xff0c;類似 view) 是一款用于構建用戶界面的 JavaScript 框架。它基于標準 HTML、CSS 和 JavaScript 構建&#xff0c;并提供了一套聲明式的、組件化的編程模型&#xff0c;幫助你高效地開發用戶界面。無論是簡單還是…

2.oracle保姆級安裝教程

一、Oracle數據庫安裝1.找到軟件的位置 D:\學習軟件\Oracle&#xff0c;并解壓軟件2.雙擊setup.exe3.選擇 是4.去掉勾&#xff0c;下一步5.創建和配置數據庫&#xff0c;下一步6.桌面類&#xff0c;下一步7.配置安裝路徑地址和密碼8.點完成9.正在安裝&#xff0c;稍等片刻10.有…

STM32 軟件模擬 I2C 讀寫 MPU6050--實現加速度與陀螺儀數據采集

演示視頻&#xff1a; https://www.bilibili.com/video/BV1iCQRYXEBb/?share_sourcecopy_web&vd_source0e4269581b0bc60d57a80c9a27c98905一、前言在嵌入式開發中&#xff0c;MPU6050 六軸傳感器因其集成加速度計和陀螺儀且成本低廉&#xff0c;廣泛應用于平衡小車、飛控、…

TFLOPs與TOPS的轉換關系詳解:如何衡量AI芯片的算力?

在評估AI芯片或計算硬件的性能時&#xff0c;我們經常會遇到TFLOPs和TOPS這兩個關鍵指標。很多開發者對它們的區別和轉換關系存在疑惑。本文將深入解析這兩個指標的含義、應用場景及轉換方法&#xff0c;并提供實際應用中的注意事項。 一、基本概念解析 1.1 TFLOPs&#xff08;…

C語言:第11天筆記

C語言&#xff1a;第11天筆記 內容提要函數函數的概述函數的分類函數的定義形參和實參函數的返回值函數的調用函數的聲明函數 函數的概述 **函數&#xff1a;**實現一定功能的&#xff0c;獨立的代碼模塊&#xff0c;對于函數的使用&#xff0c;一定是先定義&#xff0c;后使 ?…

java導出pdf(使用html)

引入maven <dependencies><!-- Thymeleaf --><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.1.1.RELEASE</version> <!-- 或與 Spring Boot 匹配的版本 --></de…

Qt 遠程過程調用(RPC)實現方案

在分布式系統開發中&#xff0c;遠程過程調用&#xff08;RPC&#xff09;是實現跨進程、跨機器通信的重要技術。Qt 作為一個強大的跨平臺框架&#xff0c;提供了多種 RPC 實現方案&#xff0c;能夠滿足不同場景下的通信需求。本文將深入探討 Qt 中 RPC 的各種實現方式&#xf…