Usage Guide

In-game Photography

  1. 在UI以外的任何地方按住点击/触摸1秒,直到框架动画结束。

  2. 照片出现在收藏中(捕获的数据在会话之间保存)。

  3. 通过电子眼按钮打开照片屏幕,悬停查看照片数据。

此功能允许在游戏过程中截取屏幕任何部分的截图,并将其保存到游戏内存中以供以后使用。玩家可以为自己留下提示,而不是用笔在真实笔记本上记笔记,也不用使用手机备忘录或手机相机拍照。

Entering and Exiting Photo Mode

由于不同的Unity项目可能有不同的照片模式转换逻辑,我们决定不强加严格的框架或预定义的启用和禁用场景。使用InputController → Forbid Input Manually公共布尔值自行实现此逻辑:

  • 设置为true时,允许拍照。

  • 设置为false时,禁用拍照,输入系统暂时停用。

Photo Management

  1. 在收藏和桌面区域之间拖动照片(放置位置在会话之间保存)。

  2. 将照片旋转90度(角度在会话之间保存)。

  3. 删除照片(包括磁盘上的所有保存数据)。

  4. 通过资源管理器按钮访问照片文件(仅限PC)。

  5. 在Prefabs → Photo预制体中自定义十字、旋转按钮、框架和描述位置。

Data Recognition & Photo Description

相机识别具有任何Collider(必需)以及可见网格或ObjectToPhoto.cs脚本(例如用于Sprites)的对象。每张拍摄的照片都有一个描述,可以显示坐标、识别对象的名称或自定义数据。该插件有2种识别模式,可以在Photo Settings中切换。

单对象识别(默认)
Multiple Objects recognition

在捕捉框架内,确定最接近焦点的主要对象。照片在其描述中存储对象数据。详细的碰撞器在这里很重要,以防止对象重叠。建议在PhotoSettings中减小Sphere Radius。

在捕捉框架内,确定所有可见对象。照片在其描述中保存所有对象的数据。建议在PhotoSettings中增加Sphere Radius并增加multiplayerPrecision以实现准确识别。建议将Never Show Photo Description设置为true,以避免用所有信息压倒玩家。

此功能通过提供有关拍摄对象的信息并启用与游戏内内容的交互来丰富游戏玩法。它允许玩家了解游戏世界,并通过捕捉特定对象完成基于摄影的"拍照狩猎"任务。

Quest Integration & Photo Validation

  1. 拍摄关键对象的照片,然后将照片拖放到检测器对象上。如果照片包含匹配的关键数据,检测器将响应。

  2. 要从对象创建检测器,请确保对象具有Collider和PhotoDetector.cs脚本。

  3. 填写Required Photo Data字段。此字段必须与捕获对象的Custom Description(以及照片描述)匹配才能验证成功。例如,验证器对象需要输入车牌号AS 891 RX,蓝色汽车照片的完整描述正好包含"AS 891 RX"。

  4. 使用PhotoDetector.cs脚本将游戏事件连接到照片验证。整个PhotoDetector.cs负责识别接收数据的逻辑。ValidatePhotoData、SetDetectorState、OnActivate和OnError方法。使用它们自定义激活效果。

  5. 确保存在具有Collider、ObjectToPhoto脚本和Required Photo Data所包含的必需Custom Description的"关键"对象。

Object Duplication

不适用于识别多个对象的情况。

  1. 查看YouTube视频教程快速入门:3Darrow-up-right设置和2Darrow-up-right设置。

  2. 在Photo Settings中将Duplication Mode设置为true。

  3. 为了复制拍摄的对象,它必须具有Collider、ObjectToPhoto脚本、PhotoController引用、PossibleToCopy设置为true以及Unique Index To Copy。

  4. 拍摄可复制对象的照片。

  5. 打开照片屏幕。点击吸管按钮,然后点击照片以外的任何地方以禁用。

  6. 点击吸管并点击照片。如果它捕获了可复制对象,将出现SpawnPointer对象。

  7. 在游戏世界中选择生成位置并点击它。

  8. 释放点击时,对象被复制。此类对象为一个游戏会话创建,并且没有父对象 - 这可以在PhotoPrefab脚本中编辑。

Last updated