小编for*_*eka的帖子

在Unity iOS上发出HTTP请求的方法?

我需要使用所有标准RESTful方法发送HTTP请求并访问请求正文以便使用它发送/接收JSON.我调查过,

WebRequest.HttpWebRequest

这几乎是完美的,但有些情况下,例如,如果服务器关闭,函数GetResponse可能需要几秒钟才能返回 - 因为它是一个同步方法 - 冻结该时段的应用程序.这个方法的异步版本,BeginGetResponse,似乎不是异步工作(在Unity中),因为它仍然冻结该时期的应用程序.

UnityEngine.WWW#

由于某些原因,只支持POST和GET请求 - 但我还需要PUT和DELETE(标准的RESTful方法),所以我没有进一步深入研究它.

的System.Threading

为了运行WebRequest.HttpWebRequest.GetResponse而不冻结应用程序,我研究了使用线程.线程似乎在编辑器中工作(但看起来非常不稳定 - 如果你在应用程序退出时不停止线程,即使你停止它也会永远在编辑器中运行),并且当构建到iOS设备时它会立即崩溃因为我尝试启动一个线程(我忘记写下错误,我现在无法访问它).

在本机iOS应用程序中运行线程,并使用Unity应用程序的桥接器

荒谬,甚至不会尝试这个.

UniWeb

这个.我想知道他们是如何管理它的.

这是我正在尝试的WebRequest.BeginGetResponse方法的示例,

// The RequestState class passes data across async calls.
public class RequestState
{
   const int BufferSize = 1024;
   public StringBuilder RequestData;
   public byte[] BufferRead;
   public WebRequest Request;
   public Stream ResponseStream;
   // Create Decoder for appropriate enconding type.
   public Decoder StreamDecode = Encoding.UTF8.GetDecoder();

   public RequestState()
   {
      BufferRead = new byte[BufferSize];
      RequestData = new StringBuilder(String.Empty);
      Request = null;
      ResponseStream = null;
   } …
Run Code Online (Sandbox Code Playgroud)

c# multithreading http unity-game-engine ios

20
推荐指数
2
解决办法
3万
查看次数

使用SmartGit时如何更改core.autocrlf?

我对终端的版本控制没有任何经验,但据我所知,SmartGit没有终端也没有使用我可以通过终端配置的外部git客户端,所以我真的不知道我怎么能在它上面执行git配置命令.具体来说,我想做:

git config --global core.autocrlf true
Run Code Online (Sandbox Code Playgroud)

它是否具有UI中可用的等效配置选项,还是有其他方法可以应用此选项?

git core.autocrlf smartgit

10
推荐指数
2
解决办法
6986
查看次数

在SVN中从trunk的子文件夹创建分支有什么后果?

我认为通常当你分支时,你分支整个主干,但在我的公司我看到人们分支主干和更深的子文件夹 - 当你试图在主干中找到正确的目录时,除了混乱之外还有任何实际后果吗?合并回来?

svn branch

8
推荐指数
1
解决办法
1152
查看次数

组合是否应该专门用于继承,还是在不应该的情况下?

在这个例子中,我想我有大约4行代码可以用函数封装,而且这个函数肯定会用在同一层次结构中的其他类中.

我有以下选项来重用该代码:

  1. 将函数粘贴到需要它的类中.
  2. 为需要该函数的类创建一个基类并将其放在那里.
  3. 创建一个包含函数的类,该函数通过DI传递到需要它的类中,或者只是类的成员.(看起来像是重大的过度杀伤力)
  4. 创建一个静态实用程序类并将该方法放入其中.

我绝对不会做1或4.我过去会做2但是我试图继续保留组合而不是继承原则所以我倾向于4但是对于最有可能的东西似乎很多永远不要在层次结构之外使用,只有4行.我知道这是非常挑剔的,但我想弄清楚这样做的正确方法.

c# inheritance encapsulation composition

6
推荐指数
1
解决办法
413
查看次数

有限状态机的复杂行为建模有哪些替代方案?

我已经了解了使用有限状态机的许多缺点,但是没有真正看到任何建议的复杂行为建模的替代模式 - 有没有?

design-patterns state-machine

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

使用NUnit在VS2012中调试而不抛出异常?

我使用NUnit测试适配器将NUnit运行到VS2012中,我可以运行所有测试,但是如果我想在每次遇到Assert时调试所有测试,它会抛出异常.如何让它不会抛出Asserts的异常?我做错了什么吗?

c# debugging nunit

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

使用C#接口,同时最大化代码重用

所以说我有一个C#类,

class Foo : Bar, IBar, IBar2
{

}
Run Code Online (Sandbox Code Playgroud)

...其中Bar是一个类,IWhatever和IFine是接口.我打算在多个类中使用类似的IWhatever和IFine实现 - 我可以看到封装这些代码并在所有类中重用它的唯一理智方法是创建一个类,无论继承自IW和I的继承自IFine和使它们成为实现这些接口的类的成员,然后在从接口实现的成员中调用它们的成员,如下所示:

class Foo : Bar, IWhatever, IFine
{
   IWhatever mWhatever;
   IFine mFine;
   Foo()
   {
      mWhatever = new Whatever();
      mFine = new Fine();
   }
   // from IWhatever
   void Kick()
   {
      mWhatever.Kick();
   }
   // from IFine
   void Punch()
   {
      mFine.Punch();
   }
}
Run Code Online (Sandbox Code Playgroud)

我做得对吗?有没有更好的办法?

c# inheritance interface solid-principles

3
推荐指数
1
解决办法
1864
查看次数

这是一个语义违反封装的例子,如果是这样,我该如何解决?

如果我有像这样的服务器接口...

interface IServer
{
    void Login();
    void Post();
    void Get();
}
Run Code Online (Sandbox Code Playgroud)

...... 除非你先做,否则在哪里工作PostGet不工作Login.它是否是对封装的语义违反,因为它使得您对接口的使用隐含地依赖于实现?你会怎么解决它?

c# encapsulation

3
推荐指数
2
解决办法
256
查看次数

单一责任原则是否与类的依赖性直接相关?

如果一个类依赖于多个其他类的接口,那就是违反了SRP,或者只是在两个接口都发生变化时才是违规,或者这完全是错误的思路?

c# single-responsibility-principle

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