Questions tagged «unity»

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

2
如何使字段在检查器中可见(可附加),但无法通过代码访问(类似私有)?
假设我有一个名为buttontype 的变量,Button它当然是System.Serializable。 我希望该变量可以通过检查器分配,所以我做到了public: public class SomeScript : MonoBehaviour{ public Button button; } 这给了我: 现在,我想保持代码的干净和安全(井井有条),这是我需要保留封装的真实原因。 我知道有多种方法可以像在运行时那样检索组件,transform.Find("Some/Genius/TypeUnsafe/Path")或者GameObject.Find("3 seconds scene iteration").GetComponent(...).我想避免这种情况。 如何搭配一个变量private access与它的public access的检查?

2
如何避免动画师中的意大利面条?
我正在Unity中制作动画,到目前为止我只制作了四个(上下左右),我的动画窗口如下... 问题是,如果我要向上移动,我希望英雄一直保持向上状态,而不要进入“空转”(或者他开始了),但这意味着我有4个空闲位置...并且每个位置都可以转换为“向上”,“向下” ,左或右,并且每执行一次其他操作就会成倍增加... 这让我觉得自己做错了...。 是否有更好的方法在不同动作之间进行转换?
9 unity  2d  animation 

5
为什么在Vector3s中不能使用运算符'> ='?
我正在尝试获得一个矩形,以便在我称为_positionA和的两个位置之间移动_positionB。两者都是类型Vector3。矩形移动得很好。但是,到达时_positionB它不会像应该的那样朝相反的方向移动。 我回到代码中看一看。我得出的结论是,随着对象的移动,if代码中的语句错过了rects位置等于的框架_positionB。如果rects的位置大于或等于, 我决定将代码修改为反向_positionB。我的代码不太长,因此我将在下面显示它: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 


4
为什么我的C#6代码无法在Unity中编译?
为什么Unity无法使用C#6代码?它总是给我编译器错误。以下是一些代码示例: using static System.Convert; using static System.Environment; $"€{punten}{NewLine}€{Money}{NewLine}€{KilledEnemies}{NewLine}€{bonus}{NewLine}€{total}"; 我使用Visual Studio作为我的代码编辑器,并且构建时没有错误。如果我在Unity中按播放,它将无法建立。
9 unity  c# 

1
ResolutionException:找不到com.google.android.gms:play-services-games:8.1+的候选工件
出现此错误: EditorAssemblies.ProcessEditorInitializeOnLoad(System.Type类型)(在C:/buildslave/unity/build/Editor/Mono/EditorAssemblies.cs:123处)作为TargetInvocationException抛出:调用的目标抛出了异常。System.Reflection.MonoCMethod.Invoke(System.Object obj,BindingFlags invokeAttr,System.Reflection.Binder绑定程序,System.Object []参数,System.Globalization.CultureInfo文化)(在/ Users / builduser / buildslave / mono-runtime-和-classlibs / build / mcs / class / corlib / System.Reflection / MonoMethod.cs:519)System.Reflection.MonoCMethod.Invoke(BindingFlags invokeAttr,System.Reflection.Binder绑定程序,System.Object []参数,System.Globalization .CultureInfo文化)(位于/Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:528中)System.Reflection。 如何解决呢?

1
生成用于地形生成的Octree
我以前已经实现了行进立方体/四面体以渲染IsoSurface。它可以正常工作(YouTube),但是性能却很糟糕,因为我从来没有绕过根据视距实现可变的“细节级别”(甚至删除了旧的,遥远的块)。 我决定再次尝试一下,这次要正确地做。我首先创建了一个OctreeNode,它在Build()被调用时的工作方式如下。 如果块太小而无法构建,请立即返回。 算出表面是否穿过该块的体积。 如果是这样,则决定我们是否要提高LOD(因为相机已关闭) 如果是这样,则生成8个子代并对其调用相同的过程 如果没有,请使用当前节点的尺寸构建网格 一些伪代码: OctNode Build() { if(this.ChunkSize < minChunkSize) { return null; } densityRange = densitySource¹.GetDensityRange(this.bounds); if(densityRange.min < surface < densityRange.max) { if(loDProvider.DesiredLod(bounds)² > currentLoD) { for(i 1 to 8) { if(children[i] == null) { children[i] = new OctNode(...) } children[i] = children[i].Build(); } } …
9 unity  c#  voxels  octree 

2
如何在Unity 5中检测UI图像的鼠标悬停?
我有一幅图像,可以将其设置为四处移动以及放大和缩小。麻烦的是可以在场景中的任何位置进行缩放,但是我只希望在鼠标悬停在图像上时进行缩放。我尝试使用OnMouseEnter,OnMouseOver,事件触发器,所有三个没有对撞机,带对撞机,带触发器对撞机的触发器,以及所有这些在图像本身和空游戏对象上使用的触发器。但是这些都不起作用...所以我绝对很沮丧...有人可以在这里帮助我! 这是我的脚本: private float zoom; public float zoomSpeed; public Image map; public float zoomMin; public float zoomMax; void Update () { zoom = (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * zoomSpeed); map.transform.localScale += new Vector3(map.transform.localScale.x * zoom, map.transform.localScale.y * zoom, 0); Vector3 scale = map.transform.localScale; scale = new Vector3(Mathf.Clamp(map.transform.localScale.x, zoomMin, zoomMax), Mathf.Clamp(map.transform.localScale.y, …
9 unity  c#  gui  image  mouse 

1
如何手动绘制精灵表的一部分?
我在Unity中工作,发现在2D游戏中动画师没有为我要尝试的工作工作。我想使用Sprite表格构建特定的动画,并能够将相同的动画与按单元格具有相同大小和尺寸的其他Sprite重复使用。经过研究,我发现这是不可能的。 相反,我试图创建自己的动画脚本,但是我不明白如何告诉Unity只绘制精灵的一部分。类似于XNA,您可以使用开始和结束坐标仅渲染精灵的特定矩形。 如何手动绘制精灵表的一部分?

3
绑带旋转镜
我使用以下代码旋转游戏角色以观看目标: transform.rotation = Quaternion.Slerp(startQuaternion, lookQuaternion, turningNormalizer*turningSpeed/10f) startQuaternion是给定新目标时角色的当前旋转。 lookQuaternion是角色应查看的方向,其设置如下: destinationVector = currentWaypoint.transform.position - transform.position; lookQuaternion = Quaternion.LookRotation(destinationVector, Vector3.up); TurningNormalizer只是Time.deltaTime增加,并且turningSpeed是编辑器中给定的静态值。 问题在于,尽管角色在大多数情况下都应该旋转,但在必须接近180度时仍存在问题。然后它有时会抖动并镜像旋转: 在此绘制效果不佳的图像中,角色(右侧)开始转向左侧的圆圈。不仅仅是左右旋转,它还可以启动“镜舞”: 它开始向新面貌旋转 然后突然突然以相同的角度但在另一侧并继续旋转 它执行此“镜像”的时间很长,直到它看着目标为止。这是带有四元数的东西吗? 编辑1: 显然问题不是由旋转本身引起的。更有可能的问题是,角色在旋转时会朝着面部移动。作为限制角度,当允许角色移动时,面对和目标之间的角度会减少,并且有时会消除抖动/镜像旋转。 这当然引发了更多的问题,为什么角色不能同时没有问题地同时移动和旋转呢?机芯使用的代码: transform.Translate(Vector3.forward * runningSpeed/10f * Time.deltaTime);

2
协程系列
我将如何堆叠一系列应该一个接一个执行的Coroutine调用? 我试图获得闪烁的色彩效果,在协程中循环显示一系列色差,但无法正常工作。
9 unity 

1
如何从第二个游戏中的摄像机录制,然后将其导出到视频文件?
我正在Unity中制作PC恐怖游戏,我想在游戏中进行摄像机录制模拟-这样您就可以随时离开一个令人毛骨悚然的位置,并且在浏览时您会得到一盘录像带。 从技术上讲,我需要在角色的手上安装第二个摄像头(手持摄像头),然后让玩家通过按下按钮浏览取景器。但是无论在任何位置,手持摄像机都必须记录该点聚焦的所有内容-地板,楼梯,垃圾等,无论是将其放低还是抬高以符合玩家的视线。 游戏结束时(玩家离开或死亡),我想选择一个选项,将录制的磁带保存到视频文件中(如果不可能,则保存到一些保存文件中)。 如何在游戏中实现这种功能?是否有一些特殊的Unity技巧,附加组件和附加模块?使用主动触发器保存装饰和场景,还是仅从屏幕上抓取视频? 以下是我的意思的快速MSPaint概念:

1
2D水顶面轮廓
我正在尝试使用顶点片段着色器创建水表面厚度的效果。 我在3D游戏环境中,但是它是滚动视图,所以是“ 2D”视图。 这是一个使用片段着色器在真实2D中创建这种效果的很好的教程。 但是我认为这不能用于我的情况。目前,我只有一架飞机要折射。 我想应用水厚效果。但是我不知道该怎么做。 我暂时不尝试使用顶点创建一些水变形/位移,这不是重点。 我不知道是否可以使用简单的四边形,也许我应该使用这样的对象。 这里有些例子。 我对如何产生这种效果一无所知。 非常感谢 ! [ 编辑 ]添加了雷曼水效果以更好地参考效果。

1
如何创造高质量和快速的门户效果?
编辑:因此,我获得了门户视觉效果,而没有性能受到影响,并且物理设置了对象,其中刚体无缝地通过门户,而角色控制器的对象无缝地通过门户。我现在要弄清楚的唯一事情是混合两个摄影机视图,以获得适当的第一人称过渡效果。关于如何将两者融合的任何想法?我在考虑使用仅深度着色器或标准化视口rect的东西。我的主要问题是实时计算角度和角度。 因此,我一直在努力在Unity3D中创建门户效果。显然,我将Valve的Portal视为对此编程的重要影响。目前,我只是使用摄像机的渲染纹理来获得图形效果,然后使用一些代码来完成其余的工作。问题是在2048x2048分辨率下,它的质量与Portal一样高,但会导致严重的FPS损失。为了解决这个问题,我要么必须降低纹理质量,要么必须降低更新纹理的次数。 Valve在不造成高帧频损失的情况下实现了高质量的门户效果。我该怎么做?有没有人有很好的想法可以渲染到高分辨率纹理而不引起帧丢失? 我正在考虑制作自己的代码以渲染到纹理,而不是使用Unity的内置系统,这是可行的,但肯定会很麻烦。因此,任何想法,想法或建议都将受到高度赞赏。
9 unity  valve  portals 

1
如何在Unity3D中遮挡灯光?
首先,我拥有Unity Pro。 我一直在寻找遮挡灯光的方法,现在已经有一段时间没有出现了,以提高性能。我遇到的主要方法是使用BecameVisible()并测试相机的视锥。 我的主要问题是,如果玩家正在观看一个被灯光照亮的区域,我仍然希望该灯点亮。 目前,我正在使用一种方法来检查照明区域是否在相机的视锥中,但是问题是有时视锥中的光没有被玩家实际看到(例如,玩家与玩家之间的墙)。我已经尝试过对它们进行光线投射,但是对于实际的照明区域,您永远无法获得足够的详细信息(我能想到的最好的方法是使用renderer.bounds.extent和renderer.bounds.center来计算灯光的最大照明点)。 有谁知道Unity Pro中遮挡灯光的简单方法吗?还是您能告诉我一种使用我正在谈论的相机支点方法的好方法?

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.