创建一个基础的玩家停靠点 (Creating a Basic Player Dock)

停靠点对象 (Dock Objects)

“停靠点(Dock)”是一种允许玩家进入、停靠或操作的可交互物。例如一台电脑终端,一把椅子或一台街机。

“停靠点”可以让玩家进入、停靠在某个位置上。并且在此期间玩家的移动和视野,也将受到一定的限制。

例如:如果玩家进入了电脑终端,那么玩家在停靠在此电脑终端期间,将无法进行移动。并且玩家可以查看(或操作)我们希望他查看(或操作)的计算机屏幕和键盘。

在Demo场景里有两个停靠点对象可以供我们参考:一把椅子可以让玩家坐上去,还有一台街机小游戏可以让玩家游玩。


下面是创建一个简单的停靠点的步骤:

  1. 创建一个空的游戏物体,命名为“MyDock”

  2. 给这个游戏物体添加一个碰撞体(Box Collider或Unity的其他碰撞体)。这个碰撞体是玩家与停靠点交互的判定区域,如果玩家看向(瞄准)了这个碰撞体,那么就可以与这个停靠点进行交互。

  3. 给“MyDock”添加“FPEInteractableDockScript”组件。

  4. 给“MyDock”添加一个空的子Game Object,并且命名为“SeatPosition”。

  5. 再给“MyDock”添加另一个空的子Game Object,并命名为“FocalPoint”。

  6. 选中“MyDock”,找到MyDock身上的FPEInteractableDockScript组件。然后,将“SeatPosition”拖到“My Dock Transform”字段,将“FocalPoint”拖到“My Focus Transform”字段。

  7. 你可以看到插件绘制出了两个区域,这两个区域分别代表“SeatPosition游戏物体”和“FocalPoint游戏物体”的区域。

    img


  8. 移动这两个区域的位置。将紫色的“SeatPosition”区域移动到你想让玩家停靠的区域。将绿色的“FocalPoint”区域移动到你想让玩家进入、停靠后,视线的焦点区域。

    注意:
    "My Dock Transform"选项中的游戏物体 (也就是 "SeatPosition"游戏物体) ,会和玩家的中心点对齐。
    因为对齐的是中心点,所以你想让玩家坐下的时候,你可能需要让SeatPosition的位置,比你期望坐下的位置高一点。
    这个需要你按照你的需求,自己慢慢调整~
    
  9. 配置“Dock Specific Values”的其他选项:

    选项

    • Docked View Limits(停靠点的视野范围):玩家“停靠”在之后的视野范围。这个范围会以“My Focus Transform”选项中的的游戏物体 (也就是 "FocalPoint"游戏物体) 的位置为中心点。这个选项的默认值为(45,45)。

    • Smooth Dock(平滑停靠):如果为true,则玩家将平滑地进出停靠点。

    • Dock Hint Text(停靠点的提示文本):当玩家没有进入停靠点,并且看向(瞄准)停靠点时,在准心下方显示的交互文本(当玩家没有进入停靠点,并且看向停靠点时,这个选项中的文字,会被设置到Interaction String选项中)

    • Un Dock Hint Text(退出停靠点的提示文本):当玩家进入了停靠点,并且看向(瞄准)停靠点时,在准心下方显示的交互文本。(当玩家进入了停靠点,并且看向停靠点时,这个选项中的文字,会被设置到Interaction String选项中)

    • Play Dock Sounds(是否播放停靠声音):如果为true,将播放停靠的声音。

    • Docking Sound(停靠时声音):在这里设置,玩家停靠时播放的声音文件(例如皮椅吱吱声,椅子腿在地板上刮擦,电脑开机等)

    • Un Docking Sound(退出停靠时的声音):在这里设置,玩家退出停靠时播放的声音文件(例如,椅子被推回桌面,电脑关闭等)


    事件(可选)

    • Dock Started Event(首次停靠事件):当玩家第一次停靠这个停靠点时,会触发此事件。

    • Dock Finished Event(停靠完成事件):当玩家停靠这个停靠点时,会触发此事件。

    • Un Dock Started Event(首次退出停靠事件):当玩家第一次退出这个停靠点时,会触发此事件。

    • Un Dock Finished Event(完成退出停靠事件):当玩家退出这个停靠点时,会触发此事件。

  10. 运行场景,与“MyDock”对象进行交互。

  11. 调整“SeatPosition”和“FocalPoint”的位置,以及调整“Dock View Limits(停靠点的视野范围)”选项,直到符合你的设计。

  12. 根据需要在“MyDock”周围添加其他模型或对象,直到符合你的设计。(例如,电脑桌,椅子,键盘,说明书等)


下图是,我做的一个停靠点的截图,这是一个舒适的椅子。

img

这是玩家坐在这把椅子上时的视角。

img

注意:
默认情况下,停靠点的状态会在保存和加载游戏时保存和加载。
例如,如果玩家在保存游戏时,是坐在椅子上的。那么在加载游戏后,仍会坐在椅子上。
玩家停靠在停靠点时,可能会与其他可交互对象交互。与这些交互对象相关的状态和数据是否保存,取决于您。
例如:如果您有一个玩家停靠在一台计算机上,并且您希望将计算机的状态保存下来,这一步,需要您自己实现。
有关更多详细信息,请参阅文档中的Save/Load System章节,或者查看附带的示例预制体。 

results matching ""

    No results matching ""