Unity 开发人员转CGE(castle Game engine)城堡游戏引擎指导手册

Unity 开发人员的城堡游戏引擎概述

  • 一、简介
  • 2. Unity相当于什么GameObject?
  • 3. 如何设计一个由多种资产、生物等组成的关卡?
  • 4. 在哪里放置特定角色的代码(例如生物、物品)?Unity 中“向 GameObject 添加 MonoBehaviour”相当于什么?
  • 5.Unity子目录相当于什么Assets?
  • 6. 支持哪些模型格式?
  • 7. 支持FBX模型格式吗?
  • 8. 我应该使用 TCastleWindow 还是 TCastleControl?
  • 9. 在哪里Time.timeScale?
  • 10. 在哪里Time.deltaTime?
  • 11. 使组件处于非活动状态
  • 12. 用户界面缩放
  • 13.统一服务
  • 14. 着色器
  • 15. 视口
  • 16. 预制件
  • 17. 播放声音
  • Owner18. CGE和CGE有什么区别Parent?
  • 19.UnityWebRequest(WWW)在哪里?
  • 20.物理力API

一、简介

如果您了解其他游戏引擎(例如Unity),本页将尝试解释某些概念如何映射到Castle Game Engine。如果您有任何疑问,请记得在论坛、Discord 聊天或其他地方提问。

2. Unity相当于什么GameObject

GameObjectUnity 中的东西(简化)存在于你的世界中,并且可能是可见的,并且可能有受转换影响的子元素。

对于游戏对象(不是用户界面), Castle Game EngineGameObject中最接近的等价物是类。的实例可以按层次结构排列,其中每个元素都会变换(移动、旋转、缩放)子元素。CGE 最重要的类是,它是实际上可以渲染/动画/碰撞模型的后代。只需设置为在那里加载您的模型(如 glTF 文件)即可。TCastleTransformTCastleTransformTCastleSceneTCastleTransformTCastleScene.Url

我们的手册文档TCastleSceneTCastleTransform功能在“带有场景、相机、导航的视口”一章中。基本上你可以做类似的事情

<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f8"><span style="color:#333333"><code>MyScene.Url := <span style="color:#dd2200"><span style="color:#dd1144">'</span><span style="color:#dd1144">castle-data:/my_model.gltf</span><span style="color:#dd1144">'</span></span>;
MyScene.Translation := Vector3(<span style="color:#009999">1</span>, <span style="color:#009999">2</span>, <span style="color:#009999">3</span>);
MyScene.PlayAnimation(<span style="color:#dd2200"><span style="color:#dd1144">'</span><span style="color:#dd1144">run</span><span style="color:#dd1144">'</span></span>, true);</code></span></span></span></span>

层次结构TCastleTransform放置在 a 中TCastleViewport,它是 2D 用户界面元素( 的后代TCastleUserInterface)。

对于作为用户界面元素的对象,最重要的基类是TCastleUserInterface。它有很多后代,比如

  • 明显的用户界面控件:TCastleButtonTCastleLabelTCastleRectangleControlTCastleImageControl...

  • 布局:TCastleVerticalGroupTCastleHorizontalGroup,

  • 最后TCastleViewport是一个关键的 UI 组件,它是实际渲染TCastleTransform.

请参阅用户界面文档。

3. 如何设计一个由多种资产、生物等组成的关卡?

在最简单的情况下,您为每个 3D 模型创建一个TCastleScene实例。您可以使用CGE 编辑器直观地执行此操作,也可以通过代码执行此操作。

要将多个TCastleScene实例分组(并转换为一个组),您可以使用其他TCastleTransform实例。它TCastleScene也是一个TCastleTransform后代,所以它也可以有孩子。

遵循模板“3D FPS Game”(通过运行我们的编辑器创建它,选择“New Project”,然后选择“3D FPS Game”作为起点)。data/gameviewplay.castle-user-interface在生成的项目中,在编辑器中打开设计,以实际了解我的意思(在这个和之前的答案中)。

我们使用CGE 编辑器的目标是提供与 Unity 和其他游戏引擎编辑器类似的体验。因此,您可以将 3D 模型拖放到设计中,然后拖动它们来设计关卡。

4. 在哪里放置特定角色的代码(例如生物、物品)?Unity 中“向 GameObject 添加 MonoBehaviour”相当于什么?

简短回答:

相当于在行为中记录的MonoBehaviour类。您可以将其附加到控制它。TCastleBehaviorTCastleTransform

完整答案:

您可以通过多种方式从代码中控制 CGE 内容:

  1. 定义一个来自的类TCastleBehavior(请参阅behaviors),并将其实例添加到TCastleTransform。喜欢

    <span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f8"><span style="color:#333333"><code>  <span style="color:#000000"><strong>type</strong></span>TMyBehaviorClass = <span style="color:#000000"><strong>class</strong></span>(TCastleBehavior)<strong>public</strong><span style="color:#000000"><strong>procedure</strong></span> Update(<span style="color:#000000"><strong>const</strong></span> SecondsPassed: Single; <span style="color:#000000"><strong>var</strong></span> RemoveMe: TRemoveType); <strong>override</strong>;<span style="color:#000000"><strong>end</strong></span>;</code></span></span></span></span>

    然后从代码中添加这样的行为实例:

    <span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f7f8"><span style="color:#333333"><code>  <span style="color:#000000"><strong>var</strong></span>MyBehavior: TMyBehaviorClass;<span style="color:#000000"><strong>begin</strong></span>MyBehavior := TMyBehaviorClass.Create(SomOwner);MyBehavior.Xxx := ...; <span style="color:#999988"><em>// configure necessary parameters</em></span>MyTransform.AddBehavior(MyBehavior);<span style="color:#000000"><strong>end</strong></span>;</code></span></span></span></span>

    请参阅我们的模板“3D FPS Game”(通过运行我们的编辑器创建它,选择“New Project”,然后选择“3D FPS Game”作为起点),它准确地展示了这种方法。它定义了一个简单的TEnemy类,该类定义了敌人的逻辑,并且是TCastleBehavior后代。它控制着敌人的行动。它还允许通过检查来检查(例如,当射击射线时)“我是否击中了敌人” SomeTransform.FindBehavior(TEnemy) <> nil

    虽然上面的示例显示了使用代码附加行为,但您也可以TEnemy在编辑器中添加。有关如何在编辑器中注册类的信息,请参阅编辑器和自定义组件TEnemy文档。这需要使用菜单选项“Project -> Restart Editor (With Custom Components)”重新启动项目内的编辑器。这是一个额外的步骤,但对于复杂的行为来说是有意义的,可以更轻松地在编辑器中配置这些行为。

    该引擎还附带了一些标准行为(例如TCastleBillboardTCastleSoundSource),并且可以轻松地从编辑器中添加和配置这些行为。

  2. 您可以从视图中控制事物(请参阅视图)。像这样的视图TViewPlay(参见上面提到的模板“3D FPS Game”)有自己的方法来Update处理输入。视图可以保留对您世界中所有事物的引用,并且可以控制它们。

    例如,您可以像这样处理视图方法中的所有生物TViewPlay.Update。我们关于使用代码控制视口的手册显示了移动多辆车的示例。

  3. 您还可以分配事件,例如OnClick. 大多数 UI 控件都会公开明显的事件,例如TCastleButton.OnClick. 您可以自由地在一个中心位置处理这些事件(例如 LCLTForm后代(仅当您使用TCastleControl)或 CGETCastleView后代)或分散处理(例如,创建您自己的类的不同实例来处理每个不同生物、不同项目的事件) 。

    使用事件的方法类似于在 Lazarus LCL 或 Delphi VCL 中使用 UI。

    当您想要在一个类(视图中处理与某些 UI 相关的所有事件(例如单击游戏选项中可见的所有按钮)时,此方法是最佳选择。

  4. 在 CGE 中控制事物的另一种方法是从现有类创建类后代。在 CGE 中,您可以从几乎所有类(包括 importantTCastleTransformTCastleUserInterface)创建后代,并在那里重写虚拟方法。例如,您可以重写TCastleTransform.Update以每帧执行某些操作。

    因此,您可以定义一个类似从or派生的TMyCreature。这个类将控制它自己的变换(例如,它会改变它自己的变换以移动生物),并且它可能会加载一些子项(更多和实例)来显示生物并为其设置动画。TCastleTransformTCastleSceneTranslationTCastleTransformTCastleScene

    这是一种经典的 OOP 方法。这就像虚幻引擎一样,允许您定义自己的角色类来覆盖基类。

    您甚至可以将自定义类注册为在编辑器中可用,以直观地添加/配置它们。

5.Unity子目录相当于什么Assets

您应该将游戏数据放置在data项目的子目录中。请参阅有关“数据”目录的手册。它将自动打包并在您的游戏中可用。

子目录中的所有内容都data可以在运行时加载。Assets/Resources/从这个意义上说,如果你关心细节的话,它实际上类似于Unity的子目录。

不属于您的游戏数据的内容(例如源代码)不应放置data子目录中。源代码应该位于数据之外。只有编译器必须能够找到它(您可以使用标准 Lazarus项目选项和/或(用于构建跨平台项目)<compiler_options>在 CastleEngineManifest.xml 中指定源位置)。按照惯例,大多数 CGE 示例将 Pascal 源代码放置在code子目录中(或顶级项目目录中),但这实际上只是一个惯例。

一个较大的CGE项目的布局可能是这样的:

my_project/ <- 项目根目录CastleEngineManifest.xml <- 此清单文件由 CGE 构建工具和 CGE 编辑器使用data/ <- 游戏数据存放在这里;由你决定如何组织这个CastleSettings.xml <- 定义 UI 缩放、默认字体示例_图像.png示例_模型.gltfgameviewmainmenu.castle-用户界面...code/ <- Pascal 游戏代码位于此处;由你决定如何组织这个游戏初始化.pasgameviewmainmenu.pas <- 帕斯卡单位(按照惯例)对应于 gameviewmainmenu.castle-user-interface...... <- 还有其他子目录和文件吗?由你决定。考虑 docs/ 和 README.md。

6. 支持哪些模型格式?

请参阅支持的模型格式。简而言之:glTF 是最好的:) 此文档页面还链接到各种创作工具“如何导出数据”的说明。

使用view3dscene测试您的模型以查看支持的内容。如果您在CGE 编辑器中双击模型,它将自动启动 view3dscene。

7. 支持FBX模型格式吗?

不,我们可能永远不会这样做(除非间接通过一些通用转换库)。FBX 是 Autodesk 的专有模型格式。请不要使用 FBX,它是专有的(Autodesk FBX 规范故意“保密”,并且 Autodesk 只通过其付费 SDK 批准使用 FBX),而且也不是那么好。使用 glTF。

如果您有 FBX 格式的现有模型,您可以将它们转换为 glTF(使用 FBX2glTF 的 Godot Engine 分支)。如果您有模型的源版本,您可能可以将它们从创作软件重新导出到 glTF。您还可以使用Blender或许多其他工具在模型格式之间进行转换。

8. 我应该使用 TCastleWindow 还是 TCastleControl?

答案的简短摘要:使用 TCastleWindow。如果您想要的只是一款跨平台游戏,其中所有内容均使用 Castle Game Engine 渲染。如果您来到这里并且想要“只是使用 CGE 制作游戏”,请使用TCastleWindow.

详细信息: https://castle-engine.io/manual_lazarus_control.php概述了差异:

  • TCastleControl 意味着引擎渲染在 Lazarus 形式内。也就是说,TCastleControl 是一个常规的 Lazarus 控件,可以放置在更大的窗体上。您可以使用Lazarus设计器来放置LCL控件,并且可以使用CGE编辑器来设计CGE控件(在TCastleControl内)。

  • TCastleWindow 意味着引擎渲染是一个单独的窗口,并且我们没有使用 LCL。您可以使用CGE编辑器来设计控件。因此,您无法访问 LCL 控件,但作为交换,您可以获得完美的跨平台代码(Android、iOS、Switch 仅适用于 TCastleWindow)。

在这两种情况下,您都可以使用 Lazarus 作为 IDE — 来编写代码、调试等。在这两种情况下,您都可以使用 CGE 编辑器来设计 CGE 控件(位于 TCastleControl 或 TCastleWindow 内部)。

9. 在哪里Time.timeScale

等效的方法是设置MyViewport.Items.TimeScale.

它特定于给定的世界,这是TCastleAbstractRootTransform可用的实例MyViewport.Items。简单的游戏只有一个视口,一个TCastleViewport实例。的多个实例TCastleViewport是可能的,然后可以共享同一个世界,或显示不同的世界(只需在Items之间分配)。

可以通过额外的时间缩放TCastleScene.TimePlayingSpeed。这在给定TCastleScene实例中是本地的。

10. 在哪里Time.deltaTime

Container.Fps.SecondsPassed. 请参阅查看事件以获取最简单的用法示例。

在您重写TCastleUserInterface.Update(包括TCastleView.Update)或TCastleTransform.Update方法时,您还有一个SecondsPassed包含该值的显式参数。TCastleTransform.Update时间已经缩放(如果您使用上面MyViewport.Items.TimeScale提到的)。

11. 使组件处于非活动状态

TCastleTransform和都TCastleUserInterface具有布尔Exists属性:TCastleTransform.ExistsTCastleUserInterface.Exists。默认情况下这是true. 只需将其设置为false即可使所有组件的行为就好像该组件不属于层次结构一样。不存在的组件不可见、不碰撞、不处理任何输入、不引发任何事件等。因此 UnityGameObject.SetActive(xxx)翻译为 CGE MyTransform.Exists := xxx

您还可以控制 的TCastleTransform.CollidesTCastleTransform.PickableTCastleTransform.Visible属性TCastleTransform。这些对于使某些东西有用,例如可见但不可碰撞,或可碰撞但不可见。请注意,当Existsis 时false,它会“覆盖”它们,并且不存在的对象永远不会碰撞并且永远不可见。

12. 用户界面缩放

我们有 UI 缩放功能,可以智能地适应任何屏幕尺寸,其工作原理类似于 Unity 画布缩放。它允许假设特定的窗口大小进行设计,只要设置合理的锚点,设计在各种屏幕分辨率(即使具有不同的宽高比)下看起来都是合理的。它只是缩放坐标 - 实际渲染是针对最终分辨率完成的,因此它看起来总是“清晰”。

缩放是使用CastleSettings.xml文件配置的。默认 CGE 编辑器“新项目”模板将 UI 缩放设置为使用 1600x900 的参考窗口大小进行调整。

13.统一服务

广告、分析、应用内购买等移动服务可作为Android 服务或iOS 服务提供。您可以在CastleEngineManifest.xml中声明它们,然后使用我们的构建工具构建项目。这些允许将您的代码与各种第三方服务(来自 Google、Apple 等)集成,或使用需要特殊权限(例如振动)的移动 API。

“服务是指“在构建阶段添加的二进制或源代码形式的项目的一部分”

  • Android 服务可能包含 Java 代码、Android 预编译库、Gragle 配置等。

  • iOS 服务可能包含 Objective-C 代码、iOS 预编译库、CocoaPods配置等。

  • 在其他平台上,到目前为止我们不需要类似的概念。例如,通过公开 FMOD 或 Steam API 等的普通 Pascal 单元,始终可以将 CGE 与桌面上的第三方服务集成。也就是说,有一天我们可能会为其他平台添加“服务”。

14. 着色器

您当然可以替换或增强我们引擎使用的着色器。

我们有合成着色器,类似于 Unity3d“表面着色器”,但增强了:)我对此感到非常自豪,它确实允许轻松编写一段着色器代码并将其添加到某些形状中,并且(与 Unity3d“表面着色器”相比)着色器”)它有一些很酷的新功能,例如组合多种效果的能力(因此您可以编写一个着色器效果,也许添加另一种着色器效果),或者更改灯光或纹理的着色或制作程序生成(在 GPU 上)纹理。

请参阅examples/viewport_and_scenes/shader_effects,了解 Pascal 中的简单演示,该演示将用 GLSL 编码的效果附加到从 glTF 加载的场景。当然,着色器统一变量可以在运行时从 Pascal 设置,因此您可以在运行时以零成本配置着色器。

请参阅https://github.com/castle-engine/demo-models,子目录compositing_shaders中的纯 X3D节点演示Effect(您可以从 CGE 加载它们;只是这些演示是Effect通过 X3D 代码创建节点,而不是通过 Pascal 代码) )。

合成着色器文档(特别是本文档)描述了这些着色器效果的工作原理。

15. 视口

在 Unity 中,典型的世界是 3D 的层次结构GameObject

  • 在这个世界的某个地方,您有一个Camera组件,它确定相机参数(如投影)和视口大小。关联的变换GameObject决定了相机的位置和旋转。

  • 您可以Camera在不同的游戏对象上拥有多个组件以拥有多个视口。

  • 在这个世界的某个地方,您有一个画布,可以充当按钮和图像等 2D 控件的位置。

在 CGE 中,情况有点不同。Viewport( TCastleViewport)是一个2D控件,它可以在里面渲染3D世界。

  • 您设计组件的层次结构TCastleUserInterface。它们都具有相同的属性来控制位置和大小,使用锚点,使用FullSize(填充父级等)。

  • 有许多TCastleUserInterface后代,例如按钮、图像和视口。

  • 在视口 ( TCastleViewport) 实例中,您可以放置​​ 3D 世界(在 中Viewport.Items)。

  • 视口始终与 中的一台摄像机连接Viewport.Camera。该摄像机确定投影设置以及观看者的位置和旋转。

上面描述了编辑器模板中的典型设计。要查看其实际效果,请使用“3D FPS Game”等模板在编辑器中创建一个“新项目” ,然后在编辑器中打开设计。data/gameviewplay.castle-user-interface

简而言之,在 Unity 中,“视口”、“相机”和“UI”只是 3D 世界中的东西。在 CGE 中,“视口”(以及相应的“相机”)包含您的 3D 世界,而“视口”是您 UI 的一部分。

有效,

  • 在 CGE 中,“视口”可以像任何其他 2D 控件一样定位/调整大小。有关显示 4 个视口的示例,请参阅Examples/viewport_and_scenes/multiple_viewports 。

  • CGE 中视口的 Z 顺序(前面/后面)很简单,它的工作方式就像所有其他 2D 控件一样。您可以轻松地将其他 2D 控件放置在视口的前面或后面(如果视口有背景,后者很有用Transparent)。

  • 在 CGE 中,每个“视口”可能显示一个完全不同的、不相关的 3D 世界。视口还可以共享世界(从不同的相机显示相同的世界),只需将它们设置为相同的Viewport.Items值即可。

16. 预制件

预制件是一种在文件中存储游戏对象层次结构并附加 Unity 组件的方法。

CGE 中通常的等效方法是创建一个xxx.castle-transform文件,您可以在其中创建根为TCastleTransform或 的设计TCastleScene。这允许您构建TCastleTransform/TCastleScene实例的转换层次结构。然后,您可以将其xxx.castle-transform作为单个内容多次加载。请参阅Examples/advanced_editor,该文件data/soldier_with_cape.castle-transform中有此方法的最简单示例。

Unity UI 元素的预制件相当于 UI 设计文件,xxx.castle-user-interface上面已经提到过。

17. 播放声音

Unity AudioSource的等价物是我们的TCastleSoundSource. 这是一种行为,您将其附加到父级TCastleTransform,它可以播放空间化声音。请注意,对于非空间声音,您也可以直接调用TSoundEngine.Play,这更简单,并且不需要实例TCastleSoundSource

Unity AudioClip的等价物是我们的TCastleSound.

有关如何在 CGE 中使用声音的信息,请参阅有关声音的手册章节。

Owner18. CGE和CGE有什么区别Parent

  • Owner来自于标准TComponent。请参阅手动和自动释放(Pascal 介绍)。它管理内存(当所有者在拥有的实例之前被释放时,所有者将释放拥有的实例)。

  • Parent是视觉父母。CGE UI 有TCastleUserInterface.Parent. CGE 变换有TCastleTransform.Parent.

因此ParentOwner是不同的概念,甚至在不同的类中声明。

有时,如果在特定情况下合适,则可以将两者设置为同一实例,但一般来说,这两件事只执行两个单独的功能ParentOwner例如,在 CGE 编辑器中,设计中所有内容的所有者始终是一个中心DesignOwner组件。当您自己加载设计时,您Owner显式提供实例(作为UserInterfaceLoadTransformLoad, 的参数ComponentLoad),然后您自己指定父级,但将设计添加到层次结构中(例如MyParentUi.InsertFront(MyLoadedUi))。

19.UnityWebRequest(WWW)在哪里?

使用TCastleDownload. 与 类似UnityWebRequest,该类可以发送 HTTP 请求(GET、POST 等)并可以异步下载数据。它被设计为一种简单但功能强大的网络通信方式。Z-Gantt时间进度计划甘特图软件

CGE示例/网络演示了它。

20.物理力API

这是各种物理力方法(请参阅物理)从 Unity 映射到 CGE 的方式:

  • Unity - Scripting API: Rigidbody.AddForceAtPosition → TCastleRigidBody.AddForceAtPosition(两者都在世界坐标空间中采用 2 个参数“力,位置”)

  • Unity - Scripting API: Rigidbody.AddRelativeForce → TCastleRigidBody.AddForce(两者都采用 1 个参数“Force”)。通过ForceInLocalCoordinatestrue.

  • Unity - Scripting API: Rigidbody.AddForce → TCastleRigidBody.AddForce(两者都采用 1 个参数“Force”)。通过ForceInLocalCoordinatesfalse.

  • Unity - Scripting API: Rigidbody.AddTorque → TCastleRigidBody.AddTorque(两者都采用 1 个参数,“扭矩”,在世界坐标空间中)

上述映射适用于默认 Unity 使用情况ForceMode.Force

对于脉冲(使用 Unity API ForceMode.Impulse),我们有一个单独的方法TCastleRigidBody.ApplyImpulse

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84725.shtml

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

相关文章

Vue3大屏项目实现数字跳动的效果

一、vue-count-to组件&#xff1a; 1、安装&#xff1a; npm install vue3-count-to --save 2、使用&#xff1a; <template><BaseCountTo:startVal"startVal":endVal"endVal":duration"duration":decimals"decimals":pr…

基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)

TES745D是一款基于上海复旦微电子FMQL45T900的全国产化ARM核心板。该核心板将复旦微的FMQL45T900&#xff08;与XILINX的XC7Z045-2FFG900I兼容&#xff09;的最小系统集成在了一个87*117mm的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&#xff0c;能…

Redis 五大类型源码及底层实现

面试题&#xff1a; 谈谈Redis数据类型的底层数据结构&#xff1a; SDS动态字符串双向链表玉缩列表ziplist哈希表hashtable跳表kiplist整数集合intset快速列表quicklist紧凑列表listpack Redis源代码的核心部分 官网&#xff1a;GitHub - redis/redis: Redis is an in-memory…

在已知的二维坐标里找到最接近的点

一、业务场景 最近在研发的项目&#xff0c;在做可视化层&#xff0c;在全球地图上&#xff0c;对我们的国家的陆地地图经纬度按照步长为1的间隔做了二维处理。在得到一组整数的点位信息后&#xff0c;需要将我们已有的数据库数据(业务项目)按照地址的经纬度&#xff0c;映射到…

大数据Flink(八十三):SQL语法的DML:With、SELECT WHERE、SELECT DISTINCT 子句

文章目录 SQL语法的DML:With、SELECT & WHERE、SELECT DISTINCT 子句 一、DML:With 子句

本地Docker Registry远程连接,为你带来高效便捷的镜像管理体验!

Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…

jmeterbeanshell调用jsonpath获取对应值

1.jmeter 新建线程组、Java Request、BeanShell Assertion、View Results Tree 2、在BeanShell Assertion中贴入代码&#xff1a; import org.apache.jmeter.extractor.json.jsonpath.JSONManager; import java.util.List; JSONManager js new JSONManager(); String jsonStr…

电商项目高级篇-01 elasticsearch

电商项目高级篇-01 elasticsearch 1、linux下安装elasticsearch和可视化工具2、docker设置虚拟机开机启动和容器开机启动3、elasticsearch的curd3.1、新增、更新3.2、查询 1、linux下安装elasticsearch和可视化工具 将安装好jdk1.8和tomcat的centos7下安装elasticsearch dock…

贝叶斯神经网络 BBB 学习中遇到的一些问题

这里写目录标题 贝叶斯公式模型概率的公式1/n 形式的贝叶斯公式 全概率公式全概率公式的积分形式 后验推理后验预测分布 posterior predictive distributionKL 散度 平均场 VIBayes by Backprop 代码重新参数化 贝叶斯公式 模型概率的公式 一开始看了这个 https://zhuanlan.z…

Unity 2021.x及以下全版本Crack

前言 最近Unity那档子事不出来了吗&#xff0c;搞得所有人都挺烦的&#xff0c;顺便在公司内网需要我完成一个游戏的项目&#xff0c;就研究了一下如何将Unity给Crack掉。 注意所有操作应有连接外网的权限 以我选择的版本为例&#xff0c;我使用的是Unity 2021.3.5f1与Unity…

企业商标信息API:品牌管理的秘密武器

引言 当今数字时代&#xff0c;品牌管理变得比以往任何时候都更具挑战性。企业需要不断创新、保护知识产权、实时监测市场动态以及应对竞争压力。在这个竞争激烈的环境中&#xff0c;企业商标信息API已经成为品牌管理的秘密武器&#xff0c;为企业提供了无可估量的价值。 企业…

CFCA企业版通配符SSL证书

CFCA是中国CFCA企业版通配符SSL证书金融认证中心的缩写&#xff0c;即China Financial Certification Authority。它是一家经过中国人民银行和国家信息安全机构批准成立的国家级权威安全认证机构&#xff0c;也是国际CA浏览器联盟组织&#xff08;CA/Browser Forum&#xff09;…

基础算法--位运算

位运算理解&#xff1a; n >> k&#xff1a;代表n右移k位 比如 000011 >> 1 000001 前面会补零&#xff08;所以第几位是从0开始计算&#xff09; n & 1&#xff1a;表示最后一位是否为1 比如&#xff1a;n 3 0011 而 1 0001 则3 & 1 0011 & 000…

红日靶场五(vulnstack5)渗透分析

环境搭建 win7 192.168.111.132&#xff08;仅主机&#xff09; 192.168.123.212&#xff08;桥接&#xff09; .\heart p-0p-0p-0win2008 ip: 192.168.111.131&#xff08;仅主机&#xff09; sun\admin 2020.comkali ip: 192.168.10.131&#xff08;nat&#xff09;vps&…

【vue】vue+easyPlayer 实现宫格布局及视频播放

由于业务需要&#xff0c;ant-design-vue框架集成easyPlayer.js作为视频播放器。EasyPlayer.js H5播放器&#xff0c;是一款能够同时支持HTTP、HTTP-FLV、HLS&#xff08;m3u8&#xff09;、WS视频直播与视频点播等多种协议&#xff0c;支持H.264、H.265、AAC等多种音视频编码格…

解密list的底层奥秘

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

CDN加速器有哪些?

一、前端使用CDN加速的优缺点 1.CDN优点 (1). 提高网站性能&#xff1a; CDN&#xff08;内容分发网络&#xff09;可以将静态资源&#xff08;如脚本、样式表、图片等&#xff09;缓存在服务器节点上&#xff0c;并通过就近访问用户&#xff0c;从而提供更快的加载速度和更好…

服务器搭建(TCP套接字)-基础版(客户端)

一、socket 1.1、vim man查看socket :!man socket1.2、 依赖的头文件 #include <sys/types.h> #include <sys/socket.h>1.3、原型 int socket(int domain, int type, int protocol);domain说明AF_INETIPV4协议AF_INET6IPV6协议AF_LOCALUnix域协议 type说明S…

GDPU 数据结构 天码行空2

实验内容 用顺序表实现病历信息的管理与查询功能。具体要求如下: 利用教材中定义顺序表类型存储病人病历信息(病历号,姓名&#xff0c;症状)&#xff1b;要求使用头文件。 设计顺序表定位查找算法&#xff0c;写成一个函数&#xff0c;完成的功能为:在线性表L中查找数据元素x…

MATLAB中ilu函数用法

目录 语法 说明 示例 不同类型的不完全 LU 分解 不完全 LU 分解的调降容差 使用 ilu 作为预条件子来求解线性系统 ilu函数的功能是对矩阵进行不完全 LU 分解。 语法 [L,U] ilu(A) [L,U,P] ilu(A) W ilu(A) [___] ilu(A,options) 说明 [L,U] ilu(A) 用零填充执行…