相关疑难解决方法(0)

从另一个Thread使用Unity API或调用主Thread中的函数

我的问题是我尝试使用Unity套接字来实现一些东西.每次,当我收到新消息时,我需要将其更新为updattext(它是Unity Text).但是,当我执行以下代码时,void update不会每次都调用.

我没有包含updatetext.GetComponent<Text>().text = "From server: "+tempMesg;在void getInformation中的原因是这个函数在线程中,当我在getInformation()中包含它时会出现错误:

getcomponentfastpath can only be called from the main thread

我认为问题是我不知道如何在C#中运行主线程和子线程?或者可能还有其他问题...希望有人可以提供帮助..有我的代码:

using UnityEngine;
using System.Collections;
using System;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine.UI;


public class Client : MonoBehaviour {

    System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
    private Thread oThread;

//  for UI update
    public GameObject updatetext;
    String tempMesg = "Waiting...";

    // Use this for initialization
    void Start () {
        updatetext.GetComponent<Text>().text = "Waiting...";
        clientSocket.Connect("10.132.198.29", 8888);
        oThread = new Thread (new ThreadStart …
Run Code Online (Sandbox Code Playgroud)

c# multithreading unity-game-engine

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

使用Unity在C#中发送http请求

如何使用Unity在C#中发送HTTP GET和POST请求?

我想要的是:

  • 在post请求中发送json数据(我使用Unity序列化器,因此不需要新的,我只想在post数据中传递字符串并且能够将ContentType设置为application/json);
  • 获得响应代码和正文没有任何问题;
  • 在不阻止ui渲染的情况下完成异步操作.

我尝试过的:

  • 使用HttpWebRequest/HttpWebResponse实现,但它太难和低级别(如果我找不到更好的东西,我将不得不使用它);
  • 使用统一WWW,但它不符合我的要求;
  • 使用NuGet的一些外部包 - Unity不接受它们:(

大多数问题都是使用线程,我在C#中没有足够的经验.我使用的文本编辑器是Intellij Rider.

c# http unity-game-engine

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

标签 统计

c# ×2

unity-game-engine ×2

http ×1

multithreading ×1