c#-Unity 3D:游戏对象交互
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-Unity 3D:游戏对象交互,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1576字,纯文字阅读大概需要3分钟。
内容图文
假设我们有一个第一人称角色和几个NPC AI.第一人称角色应该能够与NPC AI对话(通过对话服务).我的问题是:如何将两个游戏对象(FPC和NPC)彼此“连接”?
因此,他基本上可以走动并与他们交谈,然后他们回答一些事情,并且第一人称角色可以选择一个选项.
我在这里看到几个选项:
>在“第一人称角色”中添加一个公共变量.这个公众
变量将保存NPC AI. NPC AI和第一人称
角色可以通过两个类上的函数相互交谈.
>添加一个实现观察者模式的“ DialogService”类.
因此,将有多个发布者和订阅者.我的问题在这里
是如何将NPC和第一人称角色彼此联系起来的
>也许您有更好的选择?
解决方法:
如果您正在寻找一个简单的解决方案,我可以提供:
角色的GameObject内还有另一个GameObject,例如“ Dialog Collider”.向该游戏对象添加一个对撞机组件,使其成为对撞机(触发器).另外,我建议您将对撞机做成具有更大半径的圆柱体,这样您就可以在不实际与其他角色碰撞的情况下输入对话框.
为您的玩家角色添加一个脚本,当“ Dialog Collider”与另一个具有相同名称/标记的GameObject碰撞时,该脚本将启动对话框.在这一点上,我假定您对所有游戏角色都具有相同的设置:如果它们都具有对话框选项,则它们都应在主GameObject内部具有一个“ Dialog Collider” GameObject.
这样,您可以将碰撞检测留给UnityEngine,而不是每帧检查一次.
另外,我建议制作一个通用的Dialog脚本;使其成为一个抽象类,可以从其继承以覆盖某些方法,因此一开始就拥有所有基本功能,并且具有足够的灵活性以稍后更改/扩展NPC的行为.
或创建一个IDialogCharacter接口并为每个类手动实现方法和对话框;如果您喜欢组合而不是继承,则可以使用多态性来检查IDialogCharacter接口.
作为连接的一部分-当碰撞开始时,您的玩家角色将能够获取其他角色的脚本(首先获取碰撞的GameObject,然后获取脚本组件),并请求从其他角色开始对话或获取一些数据对象从另一个字符开始,然后启动对话框.
内容总结
以上是互联网集市为您收集整理的c#-Unity 3D:游戏对象交互全部内容,希望文章能够帮你解决c#-Unity 3D:游戏对象交互所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。