Articles of 第一人称射手

可见性多边形为FPS AI战术移动

有谁知道如何在Unity的AI系统中实现可见性多边形? 我想写FPS AI来清除一个区域,方法是检查所有不可立即显示的地方,并在整个时间内切割这个饼图(角落时瞄准角的军事术语)。 我知道你可以通过使用NavMesh.CalculateTriangulation来获取NavMesh数据,我知道你可以使用它来访问navmesh顶点,从那里你可以通过所有顶点进行光线投射来获得可见性多边形。 这就是我所说的: https://en.wikipedia.org/wiki/Visibility_polygon 但是,我不知道如何编写AI来dynamic检查看不见的区域。 谁能帮忙? 我画了一个我想在这个figma中模拟的行为的一步一步的图! https://www.figma.com/file/ekWZTrsn5uhAqV3iL7Q9WalZ/FPS-AI 底部附近的框架代表了我必须解决这个问题的一些想法。

如何在Unity FPS控制器标准资产中使用我自己的3D模型?

那么我一直在努力使Unity中的标准FPS控制器与我自己的3D模型几乎整天工作,但没有成功… 我试过了: 导入FPS标准资产,并使我的模型组件的孩子,是的它的工作原理,但是当我尝试resize,一切都resize,即使我调整控制器之前让我的模型一个孩子,我的模型结束被压扁 然后我试着克隆添加组件的控制器到我的模型上,但再次没有成功,因为我得到一个错误: NullReferenceException:未将对象引用设置为对象的实例UnityStandardAssets.Characters.FirstPerson.FirstPersonController.Start()(在Assets / Standard Assets / Characters / FirstPersonCharacter / Scripts / FirstPersonController.cs:50) UnityStandardAssets.Characters.FirstPerson.FirstPersonController.UpdateCameraPosition(Single speed)(在Assets / Standard Assets / Characters / FirstPersonCharacter / Scripts / FirstPersonController.cs:197)UnityStandardAssets.Characters.FirstPerson。NullReferenceException:未将对象引用设置为对象的实例。 FirstPersonController.FixedUpdate()(在资产/标准资产/字符/ FirstPersonCharacter / Scripts / FirstPersonController.cs:131) NullReferenceException:对象引用未设置为对象的实例UnityStandardAssets.Characters.FirstPerson.FirstPersonController.RotateView()(在资产/标准资产/字符/ FirstPersonCharacter / Scripts / FirstPersonController.cs:239)UnityStandardAssets.Characters.FirstPerson.FirstPersonController。更新()(在资产/标准资产/字符/ FirstPersonCharacter / Scripts / FirstPersonController.cs:64) 全部指向相机的一段代码: 50 m_OriginalCameraPosition = m_Camera.transform.localPosition; 197 newCameraPosition = m_Camera.transform.localPosition; […]

如何在Unity 3D中animation对象

昨天我和Unity 4.6一起玩过,我想出了一个关于animation的问题。 我有一个fps生存项目(大多数用于教育目的)。 我使用了默认的内置fps相机控制器,它带有统一资产,并为head-mob添加了一个脚本。 现在我制作了一个“下降”的animation。 animation在第一个人控制器对象中。 尽管在我的FPS控制器中有两个“武器”,但是我想在每个animation帧中移动arm,但是当我点击每个arm时,animation窗口不会显示animation的正确状态,我需要回到我附上我的animation再次显示的地方。 我不知道该怎么办。 我不能在单独的文件中激活双手,因为我没有看到FPS控制器的下降帧(这更像是一个视觉问题,而不是技术问题)我想指出,我需要同时使用手形对象和我是新手,所以如果你能逐步告诉我该怎么做。 我附上一些图像,看看我的环境如何设置。 当我selectFPS控制器 我select每只手后

FPS – 如何处理枪的红点瞄准的准确性

我有一把枪,你可以瞄准红点瞄准器。 如果你在瞄准视线的同时移动,则会有一些晃动。 arm摆动,而不是相机本身。 目前当玩家开枪时,我从相机中央射出一束光线,并检查玩家是否有击中。 问题是,如果玩家瞄准和移动,红点是摆动(因为arm),但由于相机不是,射线总是向下发射不与红点alignment的中心。 它在游戏中感觉不对。 我希望有人可以有一些想法提供如何处理这个..

HUD文本不显示/绘图

我正在尝试使用蓝图来显示我的角色使用HUD的速度,但由于某些原因文本不显示。 我究竟做错了什么? 我正在使用第一人称模板。

如何将FoV转换成2倍,3倍,4倍…?

所以我有FoV的价值, 现在我需要将其转换为范围和双筒望远镜的2倍或3倍放大倍数。 我把一些物体放在一起, 但是当我从FoV 100放大到90时,(我称之为2倍变焦),光罩边缘的可见物体并不是我所期望的。 是的,我正在使用这个100到10的大FoV来试图正确计算2x,3x值。 所以我需要结束/最大FoV在10度。 在从FoV 30到10的最高缩放级别中,发生的变化是变焦太高而难以控制,所以我想知道我是否计算错误? 我的意思是,如果FoV步骤,让放大2x的结果,放大3倍,不是一个固定值,如: FoV 100 =放大1倍 FoV 90 =放大2x FoV 80 =放大3倍 我应该使用一些计算来给我一个像(或不喜欢)的结果: FoV 100 =放大1倍 FoV 85 =变焦2倍 FoV 73 =变焦3倍 什么可能是这样的计算? 还是应该使用其他一些规则,比如施加一些FoV限制和固定的fov值而不是进行任何计算?

我如何在Unity代码中引用网格的最前面部分? (并且帮助制造FPS弹丸看起来更真实)

我已经开始制作使用Unity的电脑游戏。 这只是一个testing项目,我正在尽可能地做出基本的FPS射击游戏。 我正在使用FPS控制器预制,并且还附带了一个步枪模型。 结果几乎是我想要的。 现在我正在考虑如何为炮火制造炮弹。 我觉得最好把我的每一根子弹制作成枪管向前的射线,否则我可能会从枪管中制造刚体,我还不确定。 我的问题是 :什么是适当的方式来参考枪管电stream结束的空间点? 目前,我正在考虑将另一个gameObject附加到枪模型上,并且只需手动将其放在桶的完成位置即可。 但是,这似乎是“cheaty”,我想也许有更好的方法(如mesh.position.z + mesh.length,但我似乎无法find任何类似mesh.length)。 我还没有发布代码,因为我还没有真正写这个项目。 我也会非常感兴趣的听到如何最好地模拟这个枪声的pro-tip版本(即最好是使用刚体还是以某种方式使用raycast或什么?或者我甚至还没有想到的一些更好的方法)

没有调整剪贴板不透过模型

我在Unity3d中用很多武器制作FPS游戏,但是当我瞄准的时候我可以看穿武器。 我知道我可以调整近剪贴板,但是当我这样做时,我的地形开始闪烁。 有一些解决scheme吗?

这种散列玩家位置的方法能否有效地击败FPS的黑客攻击?

例如,使用类似下面的类来保持玩家位置,并且只有当他们的距离小于某些东西时才向对方展示玩家,所以计算也被客户端PC使用。 public struct SafeFloat { private float offset; private float value; public SafeFloat (float value = 0) { offset = Random.Range(-1000, +1000); this.value = value + offset; } public float GetValue () { return value – offset; } public void Dispose () { offset = 0; value = 0; } public override string ToString() { […]

MMOFPS球员位置

我正在开发一个MMO游戏项目。 我有一个关于MMOFPS游戏架构的问题。 (我有基本的networking知识) (MMOFPS)我想发送玩家位置给其他玩家(客户),其他玩家将渲染玩家。 这就是游戏世界的基础。 我看过一些关于定位的文章,有人说“使用input进行移动更新”,其他人则说“使用位置发布”。 这是第一个问题。 什么是更好的? input或基于位置的移动发布? 什么更适合MMOFPS游戏? (怎么做?) 总结:我需要学习“真正的多人游戏如何工作? (但基本上)。 在我的第一个项目中,我使用TCP协议来发布位置(而不是input),并且每秒发送4次位置数据。 服务器将它们交付给其他客户端,其他客户端处理这些数据,并顺利移动。 这是一个非常基本的方法,但我知道这不是MMO! 有谁能帮我理解MMO游戏架构吗?