Questions tagged «unity»

Unity是一个跨平台的游戏创建系统,专注于简单的美术制作流程。它由游戏引擎和集成开发环境组成。游戏引擎的脚本基于Mono。

1
通过Alpha混合精灵查看着色器的轮廓
我想在Unity中实现类似于以下示例中的透视效果: 在我的特定情况下,有两个要求: 子画面使用Alpha混合,并且子画面具有透明区域。 遮挡字符有2种元素。一个应创建轮廓效果,而另一个应具有正常的行为。 对于遮挡创建轮廓的元素,我启用了ZWrite,并为没有轮廓的元素禁用了它。 对于角色,我尝试将着色器的队列设置为transparent + 1,并添加了此步骤: Pass { ZTest Greater Lighting Off Color [_Color] } 效果部分起作用: 轮廓绘制在整个角色上,甚至透明的部分。透明的部分不应创建轮廓。 当角色在精灵后面时,即使该精灵的那部分是透明的,也会创建轮廓。在精灵的透明部分后面不应创建轮廓。 角色出现在其余元素的前面,即使它位于它们的后面。我猜这是因为将队列设置为“透明+1”。但是,如果我将其保留为“透明”,则会以正确的顺序绘制角色,但永远不会看到轮廓。 我尝试遵循某人给我的这些提示,但无法使其正常工作: 1)保留渲染精灵的过程。 2)添加一个写入z缓冲区的通道,但是具有一个着色器,该着色器使用clip()丢弃基于alpha的像素。如果不使用MSAA和alpha-to coverage,则不能使用z缓冲区进行软性z测试。这样的质量不会很好,但是这是您可以做到的最好的。更快的替代方法是图案或噪声抖动,或者,如果您的精灵都具有相当尖锐的边缘,则可以使用老式的阈值。 3)向使用z测试绘制遮挡颜色的可遮挡对象添加第三遍,并确保将其绘制为最终遍。 我是着色器的新手,尤其是在Unity中,我只是想不出如何使其正常工作。

1
运动模拟器平台上的Oculus Rift
我目前正在为现有的(物理上的)大型运动模拟器平台开发一个VR环境。用户可以坐在这个运动平台上,并加速并倾斜以在研究汽车模拟器环境中引起运动的感觉。就像在PC上一样,Oculus Rift位置跟踪器已经安装在用户面前的移动平台上。 我当前使用的3D引擎是Unity 5.3。平台的旋转角度和线性加速度已输入到Unity中。结果不是我想要的。只要我们倾斜平台,旋转补偿就可以正常工作,但是一旦角速度变为零,跟踪器就会重置,而不会被我调用或触发它这样做的事件。线性加速度补偿总是在真实的静止点附近抖动。 我已经尝试使用本机Unity VR实现以及Oculus插件。但是,传感器融合在此级别上不可用。Oculus论坛上有许多有关此问题的主题,但是我找不到任何解决方案。 是否有其他选择可以尝试在移动平台上使用Oculus? 我理想地要做的是在进一步处理之前从Oculus传感器数据中减去感应运动。我已经考虑过打补丁,例如LibOVR,但是我在那也找不到与传感器融合相关的任何有用功能。
12 unity  motion  oculus 

6
如何在多种颜色之间进行Color.Lerp?
我发现很难在Unity文档中找到解决方案。 Color.Lerp(Color a, Color b, float t) 是一个函数,该函数根据步骤t逐渐更改颜色,从而为其提供颜色b的最终值。 如何在多种颜色之间一个一个地变色?
12 c#  unity  color  lerp 

4
Unity 5的玻璃材料
有人知道如何在Unity 5中制作玻璃材料吗? 我可以做金属和图像纹理,但不确定如何创建玻璃材料。 在Google上进行搜索不会为我带来Unity 5的任何好处,因此它必须非常容易做到。 用于淋浴门和平面玻璃,如下所示:


1
如何停止Substance的运行时纹理缓存?
如果您关闭缓存,一次修改一个公开的变量,频繁地对其进行修改,甚至只有在尝试对其进行2或3次修改之后,Substance Engine的过程纹理似乎就会非常快速地更新。 但是,我基本上希望相反。例如,单位有一个“血”变量,在受到伤害时会在身上产生不同的血液;还有一个“战役”变量,会产生划痕和凹痕,但在恢复时不会恢复原状。 因此,要强制不缓存变量,我必须将其设置为某个虚拟值,然后恢复为正常值,然后调用RebuildTexturesImmediately。 我该如何告诉Substance在运行时不要缓存变量,所以我可以更改一次并快速重新生成纹理?

1
动态模型互动
我只是想知道在许多游戏(例如arkham庇护/城市,追捕,杀手等游戏)中如何做到这一点,以便您的角色可以“抓住”您面前的角色并对其进行处理。我知道这听起来可能很令人困惑,但是举个例子,去youtube并搜索“杀手s子”,而第一个视频就是我要问的例子。 基本上,我想知道它们是如何使您的模型与您遇到的任何其他模型动态交互的,所以在《杀手》中,当您用纤维丝站在某个人身后时,您会勒住另一个角色,或者如果您使用麻醉剂,则在某个人身后当他们挣扎时,把手放在那张嘴上,然后慢慢走到地板上,放下它们。如果只是在正确的时间播放两个完全独立的动画,使它们看起来像是在实际交互,还是其他东西在一起,我是否为使用两个模型使用特定的骨骼/骨骼标识符感到困惑。 我不是动画师,所以我认为我刚才所说的大部分内容都不对,但我希望有人能理解我的意思并提供答案。 PS)我是一名程序员,并且我正在开发一款流线型游戏,因为我喜欢那种风格的游戏,而且我想增加一些有趣的东西的技能,所以如果您确实知道我在说什么,请尝试一些同时涉及模型和编程的示例(我目前使用c ++,主要使用Ogre3D,但我正在使用unity和XNA),我将不胜感激。 谢谢。
12 xna  unity  animation  models  ogre 

3
我应该如何实现单位的​​敌人“意识”?
我正在使用Unity3d开发RTS / TD混合原型游戏。在单位与敌人之间进行“意识”的最佳方法是什么?让每个单位检查到每个敌人的距离并在范围内交战是否明智? 我现在要采用的方法是在每个单元上都有一个触发范围。如果有敌人进入扳机,则部队会察觉到敌人并开始距离检查。这样可以节省一些不必要的检查吗? 最佳做法是什么?
12 ai  unity  rts 

2
如何将语音识别功能添加到Unity Game Engine中?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 如何将语音识别功能添加到Unity Game Engine中?有没有我可以使用的插件或框架(希望是免费软件)?如果是这样,您对如何安装有任何想法吗?此外,游戏中的背景噪声会干扰游戏中的语音输入,从而产生多大的问题?市场上是否有使用它的游戏实例?(除了西班牙3D扭矩游戏引擎)。
12 unity 

6
虚幻引擎3与id技术3与Unity
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 8年前关闭。 我正在尝试确定应该开始使用哪个引擎来开始构建游戏。 我选择了Unity,但是当听说Unreal Engine 3变得可以自由使用时,我发现自己在质疑自己的决定。 从技术上讲,虚幻仍然是商业上最昂贵的,其次是Unity,然后是ID Tech 3(免费)。 但是,它也可能是最快运行的吗?或只是功能最强大的,但Unity实际上为您做了很多事情,因此使用它并使其对性能/调优(如Java / C#)产生重大影响是最有意义的。 请想一想,任何人都可以从这三个方面的经验中发言吗? 自厄运之日起,我就拥有改装的经验,然后是雷神之锤1和半条命。我也有3DS Max的经验。在这一点上,我并不希望真正陷入C ++动画和渲染问题的棘手问题,我宁愿快速启动并运行一些东西,看看是否有可能。但是虚幻的经验极大地吸引了我。
12 unity  unreal 

2
为什么Unity使用反射来获取更新方法?
为什么为了不统一使用反射来访问MonoBehaviour像信息的方法Awake,Update,Start,...? 使用反射会不会很慢?为什么不利用其他方法Template Method呢?它可以在MonoBehaviour基类中简单地将方法定义为抽象,并强制子类实现该方法。
12 unity  c#  performance 


3
为什么在Lerping函数中使用Time.deltaTime?
据我了解,两个值(之间的线性插值内插功能a和b使用第三值()t之间)0和1。在t = 0处返回值a,在处返回t = 1值b。值为0.5时,返回a与之间的中间值b。 (下图是一个平滑的步骤,通常是三次插值) 我一直在浏览论坛,在这个答案上,我找到了以下代码行:transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime); 我对自己说:“真是个傻瓜,他不知道”,但是因为它有40多个投票,所以我尝试了一下,果然成功了! float t = Time.deltaTime; transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, t); Debug.Log(t); 我之间的随机值0.01,并0.02为t。函数不应该相应地插值吗?为什么这些值会堆叠?我不明白勒普是什么意思?

3
Unity是否允许您使用Java编写代码?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 2年前关闭。 我对Unity3D的经验还很陌生,但是我对Java和Android开发非常了解。我真的很困惑,如果开发Android应用程序完全需要Java?我在Unity文档中的某处读到,在Unity中向对象添加行为需要使用脚本,并且unity仅支持C#,.Net和Boo脚本。根本没有使用Java吗?

1
创建健壮的物品系统
我的目标是创建一个模块化/尽可能通用的物料系统,该系统可以处理以下内容: 可升级物品(+6武士刀) Stat修饰符(+15敏捷) 物品修饰符(%X几率造成Y伤害,几率冻结) 充电物品(魔术师使用30次) 套装物品(装备4件X激活Y功能) 稀有度(常见,独特,传奇) 可分解的(分解成一些手工材料) 可制作(可以使用某些材料制作) 消耗(5分钟%X攻击强度,恢复+15 hp) *我能够解决以下设置中加粗的功能。 现在,我尝试添加许多选项以反映我的想法。我不打算添加所有必要的功能,但是我希望能够按照自己的意愿实施它们。这些也应该与库存系统和数据序列化兼容。 我计划完全不使用继承,而是使用实体组件/数据驱动的方法。最初,我想到的系统具有: BaseStat:通用类,可随时随地保存统计信息(也可用于项和字符统计信息) Item:包含数据的类,例如列表,名称,itemtype和与ui,actionName,description等相关的事物。 IWeapon:武器界面。每个武器都有实现IWeapon的自己的类。这将具有Attack(攻击)和对角色统计的引用。装备武器后,它的数据(物品类别的stat)将被注入角色stat(无论拥有什么BaseStat,它都会作为Stat奖励添加到角色类别中)因此,例如,我们想制作一把剑(想产生带有json的物品类),所以剑将对角色属性增加5点攻击。因此,我们有一个BaseStat为(“ Attack”,5)(我们也可以使用enum)。装备时,此属性将作为BonusStat(将是不同的类)添加到角色的“攻击”属性中。因此,名为Sword的类将实现IWeapon,项目类别已创建。因此,我们可以向这把剑注入角色统计数据,并且在攻击时,它可以从角色统计数据中检索总的攻击统计数据,并在Attack方法中造成伤害。 BonusStat:是一种将统计信息添加为奖励而无需触及BaseStat的方法。 IConsumable:与IWeapon相同的逻辑。添加直接属性相当容易(+15 hp),但是我不确定要使用此设置添加临时武器(%x攻击5分钟)。 IUpgradeable:可以使用此设置来实现。我正在考虑将UpgradeLevel作为基本属性,在升级武器时会增加它。升级后,我们可以重新计算武器的BaseStat以匹配其升级级别。 在此之前,我可以看到该系统相当不错。但是对于其他功能,我认为我们还需要其他东西,因为例如,我无法在其中实现Craftable功能,因为我的BaseStat无法处理该功能,这就是我遇到的问题。我可以将所有成分添加为统计信息,但这没有任何意义。 为了使您更轻松地进行此操作,以下一些问题可能会对您有所帮助: 我是否应该继续执行此设置以实现其他功能?没有继承就可能吗? 您有什么办法可以想到,在没有继承的情况下实现所有这些功能? 关于物品修饰符,如何实现?因为它的性质非常通用。 有什么建议可以做些什么来简化构建这种架构的过程? 有没有我可以挖掘的与此问题相关的来源? 我确实尽力避免继承,但是您认为在保持相当可维护性的同时,可以轻松地通过继承解决/实现这些继承吗? 由于我的问题范围很广,因此可以随意回答一个问题,这样我就可以从不同的方面/人那里获得知识。 编辑 遵循@ jjimenezg93的回答,我用C#创建了一个非常基本的系统进行测试,它可以正常工作!看看是否可以添加任何内容: public interface IItem { List<IAttribute> Components { get; set; } void ReceiveMessage<T>(T message); } public interface …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.