小编Pro*_*mer的帖子

WWW/UnityWebRequest POST/GET请求不会从server/url返回最新数据

我正在使用Unity创建一个HoloLens应用程序,它必须从REST API获取数据并显示它.我目前正在使用WWW数据类型来获取将从Update()函数调用的协程中的数据和yield return语句.当我尝试运行代码时,我从API获取最新数据,但当有人将任何新数据推送到API时,它不会实时自动获取最新数据,我必须重新启动应用程序以查看最新数据.我的代码:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;

public class TextChange : MonoBehaviour {

    // Use this for initialization
    WWW get;
    public static string getreq;
    Text text;
    bool continueRequest = false;

    void Start()
    {
        StartCoroutine(WaitForRequest());
        text = GetComponent<Text>();
    }

    // Update is called once per frame
    void Update()
    {

    }

    private IEnumerator WaitForRequest()
    {
        if (continueRequest)
            yield break;

        continueRequest = true;

        float requestFrequencyInSec = 5f; //Update after every 5 …
Run Code Online (Sandbox Code Playgroud)

c# yield get unity-game-engine hololens

5
推荐指数
1
解决办法
3879
查看次数

Unity 5:如何从检查器传递按钮单击功能的多个参数?

我想从检查员点击按钮发送多个参数?

Unity不允许这样做,我怎样才能做到这一点?还有其他方法吗?有几十个按钮,我使用相同的方法为所有按钮,但发送不同的参数,现在我需要发送多种类型的参数.想不通怎么样?

c# parameter-passing uibutton unity5

5
推荐指数
1
解决办法
1万
查看次数

掩码UI图像/ RawImage

我最近遇到了UI问题.我打开了一个新的2D项目并使用带有Image组件的GameObject创建了一个画布.然后我通过右键单击添加了一个精灵Assets > Create > Sprites > Circle.这为我的Assets文件夹添加了一个圆形精灵.

问题是当我选择图像组件的源图像作为圆时,它仍然显示为矩形. 截图显示白色矩形

圆形精灵被导入为纹理类型的精灵.

其他形状也会出现此问题,例如三角形.

我正在使用Unity 5.6.0b9 Personal.构建目标是PC,Mac,Linux Standalone.

我可能错过了很简单的事情.任何帮助表示赞赏!

user-interface unity-game-engine

5
推荐指数
1
解决办法
1万
查看次数

将游戏对象移动/转移到另一个场景

我们尝试了不同的方法将 UI 对象移动到另一个场景,但我们失败了。对象在画布中。

方法 1:我们使用了 LoadLevelAdditive,但是从第一个场景中移动了所有对象,而没有通过 Canvas 及其元素。

方法 2:我们使用 DontDestroyOnLoad。我们需要更改 Canvas 上的元素。DDOL 保存了场景中的最后一个位置,但我们根本无法更改对象。

你能得到一些建议吗?

谢谢。

c# unity-game-engine

5
推荐指数
1
解决办法
2万
查看次数

Unity3d文件类型.它们是什么:.meta,.controller,.anim,.asset?

简短问题:

.controler, .anim, .assetUnity项目中文件类型的用途是什么.

重要说明: 此问题的目的是通过它的文件类型调查Unity3d项目结构.

我不是在问如何为git准备我的项目.我对它们的扩展名的文件的目的和行为感兴趣,在摘要#1中查找文档.

简介如何出现此问题:

我正在使用unity3d,当我运行git status后同步时,我得到了一长串修改/删除的文件,我没有触及.这些文件有下一个扩展:*.meta, *.controller, *.anim, *.assets

经过长时间的谷歌搜索与不同的请求后,我发现足够好的信息只会在文件中*.meta丢失或重复时可能发生的文件和冲突.但其他文件扩展名在谷歌的回复中没有得到很好的体现.我只能通过扩展来猜测这些文件的作用,但我更喜欢它.guid*.meta

摘要:

您能否帮我找到有关Unity3d项目中具有下一个文件扩展名的文件的用途,结构和行为的信息.

1)*.metaUnity3d中的文件是什么?

回答#1: 此文件类型包含有关无法存储在资产内的资产的数据.每个资产都有自己的*.meta文件. https://blog.forrestthewoods.com/managing-meta-files-in-unity-713166ee3d30

2)什么是.*.controllerUnity3d中的文件?

3)*.animUnity3d中的文件是什么?

4)*.assetUnit3d中的文件是什么?

unity-game-engine

5
推荐指数
1
解决办法
516
查看次数

Unity 5.3 - 按下时输入字段不会检测到第一个“返回”键

我必须双击“返回”键才能提交值!它在 2 小时前工作正常(我只需要按回车一次),但后来我重新启动了 Unity,现在我需要双击“回车”才能提交值。

更新 #2

我有一个脚本附加到包含输入字段的画布。代码如下:-

public class Example: MonoBehaviour {
    public InputField inputField; 

    void Start () {
    }

    void Update () {
    HandleUserInput ();
    }

    void HandleUserInput() 
    {

    if (inputField.isFocused && inputField.text != "" && (Input.GetKey (KeyCode.Return) || Input.GetKey(KeyCode.KeypadEnter))) {
        Debug.Log ("Pressed");
        //Do stuff
        inputField.text = ""; //Clear Inputfield text
        inputField.ActivateInputField(); //Re-focus on the input field
        inputField.Select ();//Re-focus on the input field
    }
    }
Run Code Online (Sandbox Code Playgroud)

当我播放场景并在字段中输入并按第一个返回时,日志不会显示任何内容,但是当我再次按下它时它会显示“已按下”。

更新 #3

我找到了某种解决方案,如果我删除“inputField.isFocused”输入字段将检测到第一个“返回”键。但是,在我的情况下,如果输入字段中有一些文本,那么用户单击场景中的任何其他地方然后按 Enter,输入字段将提交它。

请指教

c# unity-game-engine unity5

4
推荐指数
1
解决办法
7226
查看次数

如何加速iOS/Android移动设备的统一构建和运行过程

嗨,我正在开发一个统一的游戏,我需要在iOS中测试这个游戏.对于特殊情况,我需要测试控制器的输入触摸,但这需要很长时间.

当我在脚本C#中更改一些代码行时,我必须重新构建iOS游戏,之后我必须构建并运行Xcode项目进行测试并在我的iPhone上运行游戏.

这个过程需要很长时间,所以问题是如果有一些方法可以加速这个过程?

c# iphone unity-game-engine ios unityscript

4
推荐指数
1
解决办法
3784
查看次数

清除编辑器控制台记录脚本

这是我的脚本,我试图制作"",以防它不是其中一个案例:

using UnityEngine;
using System.Collections;

public class DetectPlayer : MonoBehaviour {

    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.name == "Platform")
        {
            Debug.Log("Touching Platform");
        }
        else
        {
            Debug.Log("");
        }
    }

    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.name == "OnTop Detector")
        {
            Debug.Log("On Top of Platform");
            GameObject findGo = GameObject.Find("ThirdPersonController");
            GameObject findGo1 = GameObject.Find("Elevator");
            findGo.transform.parent = findGo1.transform;
        }
        else
        {
            Debug.Log("");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这""不起作用.在游戏运行时,它不会从控制台中删除文本.而且当我停止游戏并再次运行它时,它会继续显示Debug.Log的最后一个文本.

如果在我的脚本中没有发生If,我想清除它.

我看到了这个答案:

回答

但我不确定这是否是我需要的以及如何使用它.制作一个新剧本?

还有错误呢.如果我清除登录控制台,它会删除erorrs,如果有一些?

在这个屏幕截图中,我触摸平台然后离开它后处于状态,但文本仍然存在于控制台日志中:

截图

c# unity-game-engine

4
推荐指数
1
解决办法
4656
查看次数

淡入/淡出GameObject

我对编码很新,我仍然在努力发展思维逻辑,以帮助我创建我想要的游戏解决方案.目前,我正在Unity尝试创建一个2D GameObject,这是一个隐藏秘密门的墙.当玩家GameObject触发它时,我希望GameObject淡出(大约90%),露出后面的空间和隐藏的门.

到目前为止,我已经设法弄清楚如何在触发器上使"秘密墙"GO处于非活动状态,因此它会消失,但这并不会产生我想要的视觉效果.正如我所说,我仍在努力开发编码器的思维方式,所以虽然我已经做了很多研究来解决这个问题,但很多结果我都不太明白.

这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SecretDoor1 : MonoBehaviour {

    void OnTriggerEnter2D (Collider2D SecretDoorTrig) {
         if (SecretDoorTrig.gameObject.tag == "Player") {
             GetComponent<SpriteRenderer> ().enabled = false;
         }
         else {
             GetComponent<SpriteRenderer> ().enabled = true;
         }
    }

    void OnTriggerExit2D (Collider2D SecretDoorTrig) {

         if (SecretDoorTrig.gameObject.tag == "Player") {

             GetComponent<SpriteRenderer> ().enabled = true;
         }
         else {
             GetComponent<SpriteRenderer> ().enabled = false;
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# 2d sprite unity-game-engine

4
推荐指数
2
解决办法
6223
查看次数

使用 Transform 属性移动和旋转 LineRenderer

您可以使用 Transform 属性在 Unity 中旋转任何可视对象。一个例外是LineRenderer. 您不能使用 transform 属性移动或旋转它。

LineRendererSetPositionorSetPositions函数一起移动,因此我设法通过变换位置属性使其可移动,但我也无法使其旋转。

下面是我用来使它可移动的代码。

public Vector3 beginPos = new Vector3(-1.0f, -1.0f, 0);
public Vector3 endPos = new Vector3(1.0f, 1.0f, 0);

Vector3 beginPosOffset;
Vector3 endPosOffset;

LineRenderer diagLine;

void Start()
{

    diagLine = gameObject.AddComponent<LineRenderer>();
    diagLine.material = new Material(Shader.Find("Sprites/Default"));
    diagLine.startColor = diagLine.endColor = Color.green;
    diagLine.startWidth = diagLine.endWidth = 0.15f;

    diagLine.SetPosition(0, beginPos);
    diagLine.SetPosition(1, endPos);

    //Get offset
    beginPosOffset = transform.position - diagLine.GetPosition(0);
    endPosOffset = transform.position - diagLine.GetPosition(1);
}

void Update() …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

4
推荐指数
1
解决办法
6828
查看次数