一、前言

Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包。它提供了身份验证选项、匹配,以及快速、可靠的通过我们的Photon后端实现的游戏内通信。

二、原文

原文地址:http://bbs.gameres.com/forum.php?mod=viewthread&tid=797805&extra=page=1&filter=sortid&sortid=6
原文作者:liefeng603
原文出处:GameRes游资网
PS:图文来源于网络,如有侵权请联系作者删除

三、正文

Photon多人游戏开发教程
这里写图片描述

PUN介绍

入门

Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包。它提供了身份验证选项、匹配,以及快速、可靠的通过我们的Photon后端实现的游戏内通信。

PUN输出几乎所有Unity支持的平台,且有两种选项:
这里写图片描述
注意:对于Unity 5,两个PUN插件包都含相同的文件。你可以买PUN+ 来获得60个月的100 CCU,但客户端上仍使用PUN Free。
PUN、PUN+和UNet的对比
这里写图片描述
一些必须的代码
要充分使用PUN,你将需要写一些脚本。本页向你展示入门的最重要部分。

你也应该花一些时间来通过Marco Polo Tutorial。

连接

C#代码示例:

PhotonNetwork.ConnectUsingSettings("v4.2");

上面的代码是你需要连接并开始使用Photon功能的所有代码。

ConnectUsingSettings 设置你的客户端的游戏版本并使用一个由PUN设置向导写入的配置文件,该配置文件保存在PhotonServerSettings里面。

匹配

接下来,你想加入现有的房间或创建自己的。下面的代码显示了启动或加入游戏的可能方法调用。

//加入名为"someRoom"的房间
PhotonNetwork.JoinRoom("someRoom");
//如果没有开放的游戏就会失败。错误回调: OnPhotonJoinRoomFailed//尝试加入任何随机游戏:
PhotonNetwork.JoinRandomRoom();
//如果没有开放的游戏就会失败。错误回调: OnPhotonRandomJoinFailed//创建名为"MyMatch"的房间。
PhotonNetwork.CreateRoom("MyMatch");
//如果名为"MyMatch"的房间已存在就会失败并调用:OnPhotonCreateRoomFailed

好朋友常常想要一起玩游戏。如果他们可以交流(例如 使用Photon Chat, Facebook), 他们可以瞎编一个房间名并使用JoinOrCreateRoom方法。因为他们知道房间的名字,他们可以创建为他人不可见,像这样:

C#代码示例:

 RoomOptions roomOptions = new RoomOptions() { isVisible = false, maxPlayers = 4 };PhotonNetwork.JoinOrCreateRoom(nameEveryFriendKnows, roomOptions, TypedLobby.Default);

使用 JoinOrCreateRoom 方法,如果房间不存在就会创建该房间。如果房间满了, OnPhotonJoinRoomFailed 会被调用 (如果你在某个地方实现了这个回调函数)。

游戏

GameObjects可以被实例化为”networked GameObjects”。它们会有一个可以被识别的PhotonView组件和一个所有者(或控制者)。所有者会更新其他人。持续更新可以通过拖拽一个脚本到一个PhotonView的 Observed字段被发送。需要更新的脚本必须实现OnPhotonSerializeView像这样:

// 在一个"observed"[ "observed",被观察的。] 脚本里:
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{if (stream.isWriting){Vector3 pos = transform.localPosition;          stream.Serialize(ref pos);}else{Vector3 pos = Vector3.zero;stream.Serialize(ref pos);  // pos被填充。必须在某个地方使用}
}
客户端可以为不见用的操作执行Remote Procedure Calls:
// 定义一个可以被其他客户端调用的方法:
[PunRPC]
public void OnAwakeRPC(byte myParameter)
{//Debug.Log("RPC: 'OnAwakeRPC' Parameter: " + myParameter + " PhotonView: " + this.photonView);
}
// [...]
// 在别的某个地方调用该RPC
photonView.RPC("OnAwakeRPC", PhotonTargets.All, (byte)1);

独立于GameObjects, 你也可以发送你自己的事件:

PhotonNetwork.RaiseEvent((byte)eventCode, (object)eventContent,(bool)sendReliable, (RaiseEventOptions)options)

初始设置

Photon Unity Networking (PUN)真的很容易设置。把PUN导入到一个新的项目中,然后PUN设置向导就会弹出来,如图0-1所示。通过输入一个邮箱地址来注册一个新的(免费) Photon Cloud帐号,或者复制粘贴一个已有的AppId到该字段里。打完收工。

如果你想要自己托管一个Photon服务器,点击”skip”,然后像如下描述的那样编辑 PhotonServerSettings
这里写图片描述
要连接,你只需在你的代码中调用 PhotonNetwork.ConnectUsingSettings()。如果你需要更多的控制,详见下面的 Connect Manually

Photon服务器设置

设置向导会添加一个 PhotonServerSettings文件到你的项目,用来保存配置。如图0-2所示,这也是去编辑服务器设置的地方。
这里写图片描述
你可以设置AppId、Photon Cloud Region和更多的。你的客户端的Game Version是在代码里被设置的。

要选择的最重要的选项是托管类型。

托管类型

通过Hosting Type你选择处理你游戏的服务器和其他配置。

Photon CloudBest Region都涉及到我们管理的云服务。您可以选择特定区域,也可以让客户选择最佳ping区域。

如果你想在别的地方运行Photon服务器,选择Self Hosted。安装程序如下。

或者,你的客户可以在脱机模式。

最佳托管区域

最佳区域模式将在应用首次启动的时候ping所有已知区域。由于这需要一点时间,结果被存储在PlayerPrefs。这会加快连接时间。

你可以设置哪些区域可以忽略。在更少的区域分发客户端会导致剩余区域的玩家更多。这在游戏流行之前是有益的。

使用PhotonNetwork.OverrideBestCloudServer()来定义要使用的另一个区域。

自托管

如果你为iOS开发游戏可以考虑阅读 PUN and IPv6和how to setup Photon Server for IPv6。

如果你要自己托管一个Photon服务器,你应在PhotonServerSettings里面设置好它的地址和端口。当这些都被正确设置了,你可以在你的代码里调用PhotonNetwork.ConnectUsingSettings()

确保您的客户端可以到达输入的地址。它可以是一个公共的、静态的IP地址、主机名或在你的客户端也使用的网络中的任何地址。

端口取决于所选协议,所以请确保这两个字段匹配。清除该字段会将其重置为默认端口。

协议

这里默认是(可靠的)UDP,但Photon还支持使用TCP以及将允许一个可靠的HTTP协议。

我们建议你坚持UDP。PUN+不支持TCP。WebGL导出只能使用WebSockets。

客户端设置

客户端设置部分包含了每个项目应设置的几个选项。

当你勾选Auto-Join Lobby时,PUN将在连接(或离开房间)时自动加入默认大厅。Photon的大厅提供当前房间的列表,这样玩家可以选择一个加入。这个默认是关闭的,因为更好的选择是使用随机匹配,就像所有的演示案例中使用的那样。

启用Enable Lobby Stats来从服务器获取大厅统计信息。如果游戏使用多个大厅,并且你想要向玩家展示每一个活动,则这个统计信息会很有用。每个大厅,你都可以获取这些属性: name、type、room和playercount。详见PhotonNetworking.LobbyStatistics!

这些设置在PUN v1.60版本引入。

远程过程调用列表

Remote Procedure Calls使你可以在一个房间里调用所有客户端上的方法。PUN 将这些方法的列表保存在PhotonServerSettings。对于最初的设置,这是不相关的。详见Remote Procedure Calls。

手动连接

作为替代自动连接的PhotonNetwork.ConnectUsingSettings()方法你可以通过PhotonNetwork.ConnectToMaster()方法来手动连接你自己的Photon服务器。当你托管付费Photon服务器时这是有用的。

对于ConnectToMaster(),你需要提供一个masterServerAddress和一个port参数。地址可以是你的On-Premises DNS名称或一个IP。它可以包括冒号后的端口(然后传递0作为端口)或您可以单独通过端口。

ConnectToMaster()方法有更多的另外两个参数 : “appID”和”gameVersion”。两者都只与Photon Cloud有关,并且当你自己托管Photon服务器时,可以设置为任何值。

对于Photon Cloud, 使用ConnectUsingSettings()方法。它涉及到我们的Name Server自动找到一个区域的主服务器。

功能概述

内容提要

  • PUN插件
  • 连接和主服务器
  • 版本控制
  • 创建和加入游戏
  • MonoBehaviour回调函数
  • 在游戏房间里发送消息
  • Photon视图组件
  • 观察Transform
  • 观察MonoBehaviour
  • 远程过程调用
  • RPCs和加载关卡的时机

PUN

当你导入PUN时,设置向导窗口会弹出来。如何设置请看导入PUN与设置小节。

PUN由相当多的文件组成, 然而只有一个是真正重要的: PhotonNetwork。这个类包含所有需要的函数和变量.。如果您有自定义要求,可以随时修改源文件。

要从UnityScript中使用PUN,你需要把 “PhotonNetwork”和”UtilityScripts” 文件夹移动到AssetsPlugins文件夹。

为了告诉你这个API如何工作,这里有几个例子。

连接

PhotonNetwork始终使用主服务器和一个或多个游戏服务器。主服务器管理当前可用的游戏并进行匹配。一旦房间被发现或创建,实际的游戏是在游戏服务器上完成的。

所有的服务器都运行在专用的机器上,没有所谓的玩家托管的服务器。你不必费心记住该服务器组织,PUN会为你处理它。

C#代码示例

PhotonNetwork.ConnectUsingSettings("v1.0");

上面的代码是你需要连接并开始使用Photon功能的所有代码。ConnectUsingSettings 设置你的客户端的游戏版本并使用一个由PUN设置向导写入的配置文件,该配置文件保存在PhotonServerSettings里面。你也可以修改文件PhotonServerSettings 属性来连接到你自己的服务器。或者,使用Connect()方法来忽略该PhotonServerSettings 文件。

版本控制

Photon的负载均衡逻辑使用你的AppId来区分你的和他人的游戏。玩家也会被游戏版本分开,ConnectUsingSettings的参数(见上文)。通过这种方式,您可以发布新功能的客户端,而不破坏旧版本的游戏。

由于我们不能保证不同PUN的版本之间相互兼容,PUN把它自己的版本号添加到你的游戏里。更新PUN可能会从旧的版本中分离出新的客户端,但不会打破老客户端。

创建和加入游戏

接下来,你想加入或创建一个房间。下面的代码展示了一些必要的函数:

//加入一个房间
PhotonNetwork.JoinRoom(roomName);  //创建这个房间。
PhotonNetwork.CreateRoom(roomName);  
// 如果该房间已存在则会失败并调用: OnPhotonCreateGameFailed //尝试加入任何随机游戏:
PhotonNetwork.JoinRandomRoom();  
//如果没有匹配的游戏则会失败并调用: OnPhotonRandomJoinFailed

在最好的情况下,您的游戏使用随机配对。JoinRandomRoom()将尝试加入任何房间。如果该方法失败了(没有房间接受另一个玩家),只需创建一个新的房间,并等到其他玩家随机加入它为止。

或者,您的客户端可以获得当前可用的房间列表。这是通过加入一个大厅来获得的。

大厅自动发送他们的房间列表到客户端,并在时间间隔内更新(从而减少流量)。玩家不会看到对方,且无法沟通(以防止当您的游戏繁忙时出问题)。

PhotonNetwork插件可以在其连接时自动加入默认大厅。把PhotonServerSettings文件里的”Auto-Join Lobby”属性开启即可。

当你的客户端在一个大厅里时,房间列表会得到更新, 这些更新会缓存。如果需要的话,你可以通过GetRoomList方法来每一帧访问房间列表。

C#代码示例:

foreach (RoomInfo room in PhotonNetwork.GetRoomList()) 
{ GUILayout.Label(room.name + " " + room.playerCount + "/" + room.maxPlayers); 
}

关于匹配的更多信息请参考Matchmaking And Room Properties。

回调函数

PhotonNetwork使用多个回调函数来让你的游戏知道状态的变化,如“已连接”或“已加入一个游戏”。像往常对Unity一样,回调可在任何脚本里实现。

如果你的脚本扩展Photon.PunBehaviour, 你可以单独重写每个回调。在这种情况下,您不必调用基类实现。

C#代码示例:

public override void OnJoinedRoom()
{Debug.Log("OnJoinedRoom() called by PUN: " + PhotonNetwork.room.name);
}

你不需要扩展PunBehaviour。如果你在其本身身上实现它所有的回调函数也会起作用。它们也在枚举PhotonNetworkingMessage中被列出和描述。

这包括建立游戏房间的基础知识。接下来是游戏中的实际交流。

发消息

在一个房间里,你可以发送网络信息给其他连接的玩家。此外,您还可以发送缓冲消息,也将被发送到未来连接的玩家(以玩家生成为例)。

发送消息可以使用两种方法。无论是RPCs,还是通过在一个由PhotonView观察的脚本里实现OnSerializePhotonView。

然而有更多的网络互动。你可以监听一些网络事件的回调函数,如OnPhotonInstantiateOnPhotonPlayerConnected,并且你可以触发其中一些事件,如 PhotonNetwork.Instantiate。如果你被最后一段弄糊涂了,不要担心,下一步我们会为这些主题逐个做解释。

Photon视觉同步组件

PhotonView是一个用于发送消息(RPCs和OnSerializePhotonView)的脚本组件。你需要将PhotonView依附到游戏对象或预设上。请注意,PhotonView和Unity的NetworkView非常相似。

整个过程,你的游戏中需要至少一个PhotonView,才能发送消息和可选的实例化/分配其他的PhotonViews。

如图下图所示,添加一个PhotonView到一个游戏对象,只需选择一个游戏对象并使用: “Components/Miscellaneous/Photon View”。
这里写图片描述

图 0-1 Photon Cloud:Photon View

观察Transform

如果你将一个Transform绑定到PhotonView的观察属性上,你可以选择同步位置、旋转和尺度或玩家的这些属性组合。这可以极大的帮助制作原型或小游戏。注意:任何观察到的值变化将发送所有观察到的值-而不只是发生变化的那个单一值。此外,更新的值是不平滑的或插值。

观察MonoBehaviour

PhotonView可以被设置来观察MonoBehaviour。在这种情况下,脚本的OnPhotonSerializeView方法会被调用。此方法被调用来写入对象的状态并读取它,这取决于脚本是否由本地玩家控制。

下面简单的代码展示了如何用几行代码来增加角色状态同步:

C#代码示例:

void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
{if (stream.isWriting){          //我们拥有这个玩家:把我们的数据发送给别的玩家stream.SendNext((int)controllerScript._characterState);stream.SendNext(transform.position);stream.SendNext(transform.rotation);}      else{//网络玩家,接收数据controllerScript._characterState = (CharacterState)(int)stream.ReceiveNext();correctPlayerPos = (Vector3)stream.ReceiveNext();correctPlayerRot = (Quaternion)stream.ReceiveNext();}
}

观察选项

Observe Option字段让你选择更新如何发送以及何时被发送。该字段还会影响到OnPhotonSerializeView被调用的频率。

Off 顾名思义,关掉。如果该PhotonView被保留为RPCs限定时可以很有用。

Unreliable 更新如是被发送,但可能会丢失。这个想法是,下一次更新很快到来,并提供所需的正确的/绝对的值。这对于位置和其他绝对数据来说是有利的,但对于像切换武器这样触发器来说是不好的。当用于同步的游戏对象的位置,它会总是发送更新,即使该游戏对象停止运动(这是不好的)。

Unreliable on Change 将检查每一个更新的更改。如果所有值与之前发送的一样,该更新将作为可靠的被发送,然后所有者停止发送更新直到事情再次发生变化。这对于那些可能会停止运动的以及暂时不会创建进一步更新的游戏对象来说是有利的。例如那些在找到自己的位置后就不再移动的箱子。

Reliable Delta Compressed 将更新的每个值与它之前的值进行比较。未更改的值将跳过以保持低流量。接收端只需填入先前更新的值。任何你通过OnPhotonSerializeView写入的都会自动进行检查并以这种方式被压缩。如果没有改变, OnPhotonSerializeView不会在接收客户端调用。该“可靠的”部分需要一些开销,所以对于小的更新,应该考虑这些开销。

现在开始,以另一种方式交流:RPCs。

远程过程调用

Remote Procedure Calls (RPC)使你可以调用”networked GameObjects”上的方法,对由用户输入等触发的不常用动作很有用。

一个RPC会被在同房间里的每个玩家在相同的游戏对象上被执行,所以你可以容易地触发整个场景效果就像你可以修改某些GameObject

作为RPC被调用的方法必须在一个带PhotonView组件的游戏对象上。该方法自身必须要被[PunRPC]属性标记。

[PunRPC] 
void ChatMessage(string a, string b) 
{ Debug.Log("ChatMessage " + a + " " + b); 
}

要调用该方法,先访问到目标对象的PhotonView组件。而不是直接调用目标方法,调用PhotonView.RPC()并提供想要调用的方法名称:

PhotonView photonView = PhotonView.Get(this); 
photonView.RPC("ChatMessage", PhotonTargets.All, "jup", "and jup!");

你可以发送一系列的参数,但它必须匹配该RPC方法的定义。

这些是最基本的。详情请阅读Remote Procedure Calls.

时机

RPCs在指定的PhotonViews上被调用,并总是以接收客户端上的匹配者为目标。如果一个远程客户端还没有加载或创建匹配的PhotonView,这个RPC就会丢失!

因此,丢失RPCs一个典型的原因就是当客户端加载新场景的时候。它只需要一个已经加载有新游戏对象的场景的客户端,并且其他客户端不能理解这个RPC(直到这些客户端也加载了相同的场景)。

PUN可以帮你解决此问题。只需在你连接之前设置PhotonNetwork.automaticallySyncScene = true并在房间的主客户端上使用 PhotonNetwork.LoadLevel()。这样,一个客户端定义了所有客户端必须在房间/游戏中加载的关卡。

客户端可以停止执行接收到的消息来防止RPCs丢失(这正是LoadLevel方法帮你做的)。当你得到一个RPC来加载一些场景,立即设置isMessageQueueRunning = false直到该内容被初始化。

例子:

private IEnumerator MoveToGameScene()
{// 加载关卡前临时禁用进一步的网络信息处理PhotonNetwork.isMessageQueueRunning = false;Application.LoadLevel(levelName);
}

禁用消息队列将延迟传入和传出消息,直到队列被解锁。显然,当你准备好要继续的时候,打开队列是非常重要的。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 关于电子设计大赛

    一年一度的电子设计大赛选拔赛开始了,作为参加两年的选手还是很有感悟,下面我简单从电赛是什么和经验教训谈论一下: 电赛全称全国大学生电子设计大赛,它国赛和省赛交叉进行,是衡量大学生电子设计能力的重要平台,也是用人单位评价别人的基础之一。比赛时间为四天三夜,一般…...

    2024/4/20 21:01:33
  2. 基于visual c++之windows核心编程代码分析(10)实现socket通信

    在多台计算机之间实现通信,最常见的方法有两种:Socket通信与UDP通信。Socket是一种基于TCP/IP协议,建立稳定连接的点对点通信,它的特点是安全性高,数据不会丢失,但是很占系统资源。在JAVA中,ServerSocket类和Socket类为我们实现了Socket通信,建立通信的一般步骤是:1。…...

    2024/5/1 6:46:51
  3. 电子设计大赛的赛前反省

    这是我第一篇博客,本来计划在这么值得纪念的日子写点什么牛逼哄哄的技术博客o( ̄ヘ ̄o#)但是打开电脑迟迟不知如何开始,可能大家已经猜到了,其实我只是一个技术小白。虽然说可能以前接触过一点,但是完全不够看啊,这让我不由的感叹了,书到用时方恨少!!不过仅仅是这样的…...

    2024/5/1 13:13:25
  4. Unity3D 学习笔记4 —— UGUI+uLua游戏框架

    Unity3D 学习笔记4 —— UGUI+uLua游戏框架使用到的资料下载地址以及基础知识 框架讲解 拓展热更过程在这里我们使用的是uLua/cstolua技术空间所以提供的UGUI+uLua的热更游戏框,我也只是把我学习和使用这个框架的笔记记录下来而已。一.资料下载地址以及基础知识:主要使用到的…...

    2024/4/20 21:01:29
  5. 预测分析和数据挖掘服务的好处

    预测分析和数据挖掘服务的好处   预测分析是处理各种数据和应用各种数学公式,发现对于给定的情况下最好的决策过程。预测分析给你的公司带来竞争优势,可用于大幅提高投资回报率。这是决策科学,消除猜测出来的决策过程,并套用行之有效的科学准则,以找到正确的解决方案,在…...

    2024/4/21 0:31:19
  6. QT学习笔记17Socket通信

    Qt中提供的所有的Socket类都是非阻塞的。 Qt中常用的用于socket通信的套接字类:QTcpServer 用于TCP/IP通信, 作为服务器端套接字使用QTcpSocket 用于TCP/IP通信,作为客户端套接字使用。QUdpSocket 用于UDP通信,服务器,客户端均使用此套接字。1 TCP/IP传统TCP通信过程:在Qt中…...

    2024/4/21 0:31:18
  7. 【Unity3D开发小游戏】《塔防游戏》Unity开发教程

    文章目录一、前言二、源码二、版本三、开始1、游戏规则2、艺术风格3、摄像机设置4、光线设置5、地面设置6、建筑物设置7、城堡设置8、怪物设置9、生成怪物10、子弹设置11、防御塔设置12、内容拓展 一、前言 在本教程中,我们将创建一个小的三维塔防御游戏与一个完全独特的图形风…...

    2024/4/21 0:31:18
  8. 2020年大学生电子设计竞赛,又来了!

    不知不觉,又临近5月份,疫情下的各个比赛活动都受到了影响,今年是偶数年,暑期应该是各个省份的电子设计竞赛比赛之时。还有三四个月,有想参加的比赛的同学应该可以提前准备了。关于比赛的帖子,之前写过很多篇:「第一弹」电子设计大赛应该准备什么?「第一篇」大学生电子设…...

    2024/4/21 0:31:17
  9. 姜启源《数学模型》笔记

    第1章 建立数学模型关键词:数学模型 意义 特点第1章是引入的一章,对数学模型的意义来源,做了很好的解释。其实数学模型也是模型的一种,是我们用来研究问题、做实验的工具之一,只不过它比较“理论”、“摸不着”而已。但通常,数学模型有严谨的特点,而且我们可以根据建模实…...

    2024/4/21 0:31:16
  10. java多线程(2)---基于ExecutorService的socket通信线程池

    了解线程池 socket通信,如果服务器端采用的实现方式是:一个客户端对应一个线程。那么,每个新线程都会消耗系统资源:创建一个线程会占用CPU周期,而且每个线程都会建立自己的数据结构(如,栈),也要消耗系统内存,另外,当一个线程阻塞时,JVM将保存其状态,选择另外一个线…...

    2024/4/20 0:50:08
  11. 【Unity3D】Unity3D 场景的淡入淡出效果实现

    Unity3d 场景的淡入淡出效果实现 思路用UGUI设计一张全屏的纯色图片 控制图片的Alpha值,来实现淡入淡出的效果效果展示实现先新建一张图片,设置锚点为全屏设置颜色值新建脚本Fade_Controlusing UnityEngine; using UnityEngine.UI;//状态效果值 public enum FadeStatuss {Fad…...

    2024/4/21 0:31:13
  12. 2017年全国大学生电子设计大赛有感

    2017年全国大学生电子设计大赛有感作为一个大专生,本本不应该提这个比赛,但是参加了还是提一下吧! 作为一名大专生,我的指导老师有一种惯性,专科生比不过本科生。其实他犯了一个错误。在当时的训练情况无论是大专的题目还是本科的题目,只要没有高手的帮助,我们都赢不了。…...

    2024/4/21 0:31:13
  13. 弹性系数法 预测

    什么是弹性系数法弹性系数法在对一个因素发展变化预测的基础上,通过弹性系数对另一个因素的发展变化作出预测的一种间接预测方法。弹性系数法适用于两个因素y和x之间有指数函数关系的情况,式中α为比例系数,b为y对x的弹性系数。 弹性一词来源于材料力学中的弹性变形的概念。弹性…...

    2024/4/21 0:31:11
  14. 【翻译】 Unity3D VR 教程:1.VR概述

    Unity VR 入门Unity加入了一些对VR的内置的支持,但是只针对几种特定的VR设备。这个指南会专注于Oculus 系列的VR设备, 特别是 Oculus Rift Development Kit 2 (DK2 ) 和 消费者版本的Gear VR(一种手机外设,需要三星Galaxy s6, s6 Edge, s6 Edge+, 或者 Note 5)。也许以后…...

    2024/4/21 0:31:10
  15. 使用socket连接实现客户端向服务器端的单向通信(socket通信第二弹)

    欢迎转载,请注明转载自微信订阅号(安卓编程入门进阶)。 百度云原清晰度地址:http://pan.baidu.com/s/1mhS0H8O 在socket连接状态下实现客户端发送数据到服务器端的功能,需要在客户端编写字符串输出代码,在服务器端编写数据接收代码。每次有输出时启动一次输出线程来完成,…...

    2024/4/21 0:31:11
  16. 什么是开源软件? 什么是免费软件?GNU是什么意思?

    商业软件 商业软件是在计算机软件中,指被作为商品进行交易的软件。相对于商业软件,有非商业的专用软件(但专用软件中亦包含有商业软件),可供分享使用的自由软件、共享软件、免费软件等。 共享软件 共享软件是为了促进IT业的发展,软件开发商或自由软件者推出的免费产品,共…...

    2024/5/1 2:46:09
  17. 2018年TI杯大学生电子设计大赛(D题手势识别)

    相关简介题主于大二年级下学期参加了2018年TI杯电子设计大赛(辽宁省),选题为D题《手势识别》,最终为省二等奖,在此将比赛过程及代码进行分享,欢迎前来交流,不足之处还望指正。硬件模块模块数量功能FDC22142手势数据采集kinetis k602手势数据训练与判别oled1手势判别结果…...

    2024/4/21 0:31:08
  18. Unity3d游戏引擎Windy系列教程:3D建模系列板块1(unity支持的建模软件)

    好开始一个新的板块,对于一个游戏来说没有游戏建模那么这个游戏就不能称作游戏了吧,我们看到的整个游戏世界都是由许许多多的平面构成的。 是不是觉得不可思议,画面上那么逼真的角色竟是一堆的多边形,事实就是这样,你的屏幕里只是被渲染出来的几万个面而已。 首先今天只介…...

    2024/4/21 0:31:06
  19. 【机器学习项目】意大利新型冠状病毒(Covid-19)感染数学模型及预测(Python)

    目录一、项目背景二、项目的数据集1、数据集介绍2、数据集链接三、项目分析四、项目步骤1、安装Python和Scipy平台(1)安装Anaconda(2)检查已安装版本2、导入数据(1)导入程序库(2)导入数据集3、数据集准备4、建立和评估模型(1)logistic模型(The logistic model)(2)…...

    2024/4/21 0:31:05
  20. Android客户端与本地服务器Socket通信

    现代生活中,我们的移动设备离不开网络,我们的APP也经常需要连接到网络,所以现在,在这里完成一个简单的Socket通信程序,实现Android客户端与本地的服务器通信。关于网络通信的知识,互联网上有很多相关的讲解,这里就不进行详细的讲解了,直接就代码进行讲解。需要注意的是…...

    2024/4/21 0:31:11

最新文章

  1. 从键入网址到网页显示,期间发生了什么?

    从键入网址到网页显示,期间发生了什么? 孤单小弟【HTTP】真实地址查询【DNS】指南帮手【协议栈】可靠传输【TCP】远程定位【IP】两点传输【MAC】出口【网卡】送别者【交换机】出境大门【路由器】互相扒皮【服务器与客户端】相关问答 不少小伙伴在面试过程…...

    2024/5/1 18:21:22
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. MQ死信队列

    面试题:你们是如何保证消息不丢失的? 1、什么是死信 在 RabbitMQ 中充当主角的就是消息,在不同场景下,消息会有不同地表现。 死信就是消息在特定场景下的一种表现形式,这些场景包括: 1. 消息被拒绝访问&…...

    2024/4/30 20:26:15
  4. 面试经典算法系列之双指针1 -- 合并两个有序数组

    面试经典算法题1 – 合并两个有序数组 LeetCode.88 公众号:阿Q技术站 问题描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#…...

    2024/5/1 13:23:19
  5. Docker Desktop+WSL2安装到自定义路径

    现在大多数软件实在太“流氓”了,在安装过程中,根本不让你选择安装路径,默认安装到$HOME下(windows C盘),随着软件的使用增多,可能磁盘空间不够,这个时候就想着,看看某些…...

    2024/4/30 7:03:29
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57