试图创建一个2D游戏,我需要一个精确对称的2D多边形对撞机,所以我想用手/数字设置坐标,而不是使用鼠标.
如何才能做到这一点?
我想游戏可以在启动时调整坐标,但如果可能的话,我宁愿让它们正确的"设计时间".此外,如果我要在启动时以编程方式执行此操作,我会感谢您提供了一个方法或合适的链接来帮助解决这个问题.
有没有办法通过Unity3d与iOS的VoiceOver辅助功能本机支持进行通信?我们有一个需要访问的应用程序,我们不确定如何去做.
由于我们需要语言支持,因此无法创建我们自己的自定义VoiceOver,因此我们需要本地化.我们的直觉告诉我们通过插件与iOS通信,但似乎iOS硬件无法捕获统一分接头,但它似乎也覆盖了我们的一些手势.
任何建议将不胜感激.
Unity 2D项目和统一3D项目之间的主要区别是什么!统一渲染2D项目比3D更快吗?或者2D预制件/纹理需要的内存少于3D?是否有在2D项目中创建2D网格的选项?
感谢您的时间!
使用Unity3D和iOS8时,我们遇到了一个奇怪的问题.大约1分钟后,有一个很大的(有时小一点)打嗝,我们无法弄清楚原因.垃圾收集?
我们花了几天时间试图找出问题所在,然后创建了一个简单的演示项目,其中出现了完全相同的问题.
打嗝不会出现在iOS 7或更低版本的设备上,不会出现在Android上,也不会出现在编辑器中.只有iOS8.我们尝试使用最新版本的Unity和最新的4.6 beta进行构建.
有没有人建议如何解决这个问题?这是Unity3D中的错误吗?
演示项目:
https://github.com/dale/demoproject-hiccup
编辑2014-10-20:
Unity现在回应了这一点."我们得到了关于这个问题的其他报告.它似乎是由iOS8的新"功能"引起的,如果你的应用程序经常乱洗线程,看门狗会生成异常报告.我们正在研究如何减轻/避免这些报告".
我是Unity的新手,我已经意识到,如果资产商店没有付费的第三个插件,就很难在Unity上进行多分辨率的2D游戏.
我做了一些测试,我可以用这种方式做多分辨率支持:
1-将UI(按钮等)中的所有内容放置在渲染模式屏幕空间中的Canvas对象内 - 以16:9参考分辨率和固定宽度覆盖.
2-将其余的游戏对象放入一个名为GameManager的游戏对象中,并在渲染模式屏幕空间中使用Canvas Scaler组件 - 摄像机具有16:9参考分辨率,固定宽度和附加的主摄像头.之后,GameManager中的所有游戏对象,如玩家,平台等,都需要有一个RectTransform组件,例如CanvasRenderer组件和Image Component.
我可以继续以这种方式开发游戏吗,或者这是做错事情的方法吗?
问候
Unity 优秀的Sprites(Unity 优秀的新精灵),除了其他有价值的优势之外,实际上是双面的。
在 2D 或 3D 用例中,您可以翻转这些小混蛋,仍然可以从后面看到它们——它们是从两侧渲染的。
我也喜欢它们上使用的 unlit 着色器(即 Sprite-Default,而不是 Sprite-Diffuse)。
但是,我需要一个老式的单面Sprite.
幸运的是,您可以免费下载 Unity 使用的优秀着色器的源代码......令人困惑的是,您不能只是在编辑器中打开它,而是在这里和那里查看。
在涉及廉价威士忌的大量持续努力之后,我对着色器进行了两 (2) 次修改。
我将文件第一行中的名称更改为“DefaultSingle”而不是“Default”
我评论了这条线 Cull Off
(然后我制作了一个新的Material,称为“Sprite Single Sided”,将着色器设置为这个新的,然后Sprite我用新材质替换了材质槽。)
事实上,我是否通过进行此修改来搞砸着色器中的任何内容?一个人可以愉快地注释掉“Cull off”而不引起进一步的问题吗?改变使用的常用材料是否有一些问题Sprite(您无法“看到”它,所以我不知道)。更广泛地说,有没有更正确的方法来实现单面Sprite?
// file "Sprites-DefaultSingle.shader"
Shader "Sprites/DefaultSingle"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
[MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
}
SubShader
{ …Run Code Online (Sandbox Code Playgroud) 生成错误的代码:
void Update()
{
if (Input.touchCount > 0)
{
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero);
if (hit && hit.collider != null && hit.collider.name == "leftTapArea")
{
hit.transform.name = "Hit";
}
}
}
Run Code Online (Sandbox Code Playgroud)
它说这个字符串有问题:
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position),Vector2.zero);
错误:
NullReferenceException:对象引用未设置为对象的实例leftScript.Update()(在Assets/leftScript.cs:16)
当我们在定位统一的UI元素,我们从固定锚预设的位置,因此它的位置是否正确放置在画布上.
我们选择顶部,中部,底部,拉伸和蓝色点.
如果我在C#中的代码中创建UI元素,我怎么能做同样的事情?
我做
Texture2D textureWhite = new Texture2D(1, 1);
textureWhite.SetPixel(0, 0, Color.white);
textureWhite.Apply();
Run Code Online (Sandbox Code Playgroud)
如何将左上角与蓝色点一起修复?
我正在创建一款 2D 游戏,玩家需要点击才能射击。鼠标光标在屏幕上的任何位置就是弹丸移动的方向。我能够实例化射弹并到达鼠标位置,但射弹跟随鼠标,这不是我想要的。
public class LetterController : MonoBehaviour {
private List<GameObject> letters = new List<GameObject>();
public GameObject letterPrefab;
public float letterVelocity;
// Use this for initialization
private void Start()
{
}
// Update is called once per frame
void Update ()
{
Vector3 direction = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Input.GetMouseButtonDown(0))
{
GameObject letter = (GameObject)Instantiate(letterPrefab, transform.position, Quaternion.identity);
letters.Add(letter);
}
for (int i = 0; i < letters.Count; i++)
{
GameObject goLetter = letters[i];
if (goLetter != null)
{
goLetter.transform.Translate(direction * Time.deltaTime * …Run Code Online (Sandbox Code Playgroud) 我有一个滚动视图。水平和垂直滚动条被删除,因为它很丑,而且我有空间限制。
我不能滚动。视图正在移动但不滚动。当我滚动时,只需滚动到一定程度并滚动回原始位置。
可能有什么问题?