【问题标题】:Create pop menu Sims's style when click on Character in Unity3D在 Unity3D 中单击角色时创建弹出菜单 Sims 的样式
【发布时间】:2019-03-22 17:38:20
【问题描述】:
我正在尝试使用已知游戏“模拟人生”中的概念来构建游戏。现在我正在为 3d 角色构建 AI,我需要玩家能够判断角色应该去哪里或做什么。我想知道创建带有动画的弹出菜单的最佳方法,以显示一些选择,以便当玩家点击 3d 角色时,他可以选择他想做的任何地方。我知道这必须在放置在播放器上方的 Canvas 下使用 UI 元素。但是我不能在一个场景中有 2 个画布,而且我不知道如何将它们固定到角色上以便它与他一起移动。提前致谢。
在这里你可以明白我的意思,这是模拟人生游戏
【问题讨论】:
标签:
visual-studio
unity3d
character
artificial-intelligence
【解决方案1】:
这里有两种主要方法:
1) 使用世界空间 UI。
2) 使用屏幕空间 UI 并使用世界空间到屏幕空间的转换实时定位它。
当您接近这两个主题时,它们会大大扩展,因此无法从这里提供更多细节。
虽然之前玩过模拟人生,但如果你追求与他们相同的风格,我建议你使用世界空间 UI 系统。
【解决方案2】:
您可以拥有任意数量的画布。要控制画布的级别(哪个在顶部),您可以使用所选画布的“画布”组件中的“层中顺序”参数。数字越小,您的画布的交互性和可见性就越高。
您可以为您的角色创建一个画布蚂蚁父级。由于画布会更小,您应该使用这些参数来获得您想要的分辨率(不要过度):
要使画布始终面向相机,您应该为 Canvas 提供一个新脚本,其中包含以下命令:
canvas.transform.LookAt(camera.transform);
要控制画布的可见性,您可以使用以下代码行:
canvas.enabled = bool;
当你想要隐藏它时,bool 是 false,当你想要显示它时,bool 是 true。
在“模拟人生”中,可见性带有动画,你也可以这样做,但我会在完成所有功能后离开它。