小编Art*_*rtS的帖子

在 Dart 中使用 wait 和 return 是否有区别?

在我的 flutter 项目中,假设有一个foo(int x) async函数。看起来bar() async像:

Future bar() async {
  return foo(3);
}
Run Code Online (Sandbox Code Playgroud)

bar()函数只是一个foo(int x)带有特定参数的简单胶囊。并bar()用作futurea 中的FutureBuilder

我不确定是否应该await与 return 一起使用。我在网上找不到相关文档。return foo(3)那么和之间有什么区别return await foo(3)?谢谢你!

asynchronous async-await dart flutter

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

如何使Unity单例基类支持泛型?

阶级派生关系

在我的项目中,我有一个类结构,如图所示.

绿色类是旧代码,运行得很好.红色框中的类是新添加的代码.没有编译器错误,但是当在Unity中单击播放并运行到新代码时,无法正确初始化这三个类.

Unity控制台发出警告说:"名为'DataMgrBase`2'的类是通用的.不支持Generic MonoBehaviours!UnityEngine.GameObject:AddComponent()"在这一行:"instance = obj.AddComponent();"

我怎么解决这个问题?

以下是一些代码供您参考,谢谢!

单例基类的实现:

using UnityEngine;
using System.Collections;

public class UnitySingletonPersistent<T> : MonoBehaviour where T : Component
{
    private static T instance;

    public static T Instance {
        get {
            if (instance == null) {
                instance = FindObjectOfType<T> ();
                if (instance == null) {
                    GameObject obj = new GameObject ();
                    obj.name = typeof(T).Name;
                    obj.hideFlags = HideFlags.DontSave;
                    instance = obj.AddComponent<T> ();
                }
            }
            return instance;
        }
    }

    public virtual void Awake ()
    {
        DontDestroyOnLoad (this.gameObject);
        if (instance …
Run Code Online (Sandbox Code Playgroud)

c# generics unity-game-engine unity5

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

带有cocos2d 2.0的iPhone5S上的旋转动画问题

我正在使用cocosbuilder2.1,cocos2d 2.0制作CCSprite旋转动画.它适用于iPhone4S(iOS 8.0.2),iPhone5模拟器,iPad 2模拟器,iPad Retina模拟器,但在iPhone5S(iOS 7.1.1),iPhone5S模拟器,iPad Air Simulator,iPhone 6模拟器,iPhone上有"抖动"问题6加模拟器.构建设置如下:

在目标下的构建设置中:

基础SDK =最新iOS(iOS 8.0); 有效的架构= arm64 armv7 armv7s

一般情况下目标:

部署目标= 6.0

起初我认为这是cocosbuilder中的一个错误,但是在通过手动制作旋转并且具有相同问题的sprite进行测试后,我觉得cocos2d 2.0与iPhone5S的兼容性有问题.

代码:在第一个场景的图层中

-(void)onEnter {
    [super onEnter];
    ...//play music
    ...//load image resources
    CCSprite *testSprite = [CCSprite spriteWithSpriteFrameName:@"testIMG.png"];
    testSprite.position = ccp(200,200);
    [self addChild:testSprite];
    CCRotateBy *rotateAction = [CCRotateBy actionWithDuration:3 angle:360];
    [testSprite runAction:rotateAction];
    ...//other stuff, nothing related with CCBReader or cocosbuilder
}
Run Code Online (Sandbox Code Playgroud)

"抖动"问题就好像testSprite的旋转值已被设置为0 everyFrame,它被设置为正确的值.例如,它旋转为1,然后回到0,然后回到2,然后回到0,3,0,4,0 ......等等.所有这些都很快发生,这使得它有点"眨眼".最后,旋转始终重置为0.

我尝试谷歌它,但没有发现任何相关,好像这是一个非常个人的问题.如果这是个人问题,请告诉我应该朝哪个方向寻找错误的位置,谢谢!

cocos2d-iphone ios cocosbuilder

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

如何在Unity中的协程函数中使用await调用异步函数?

我有一个协程如下:

IEnumerator CountingCoroutine()
{
    while (true)
    {
        DoSomething();
        yield return new WaitForSeconds(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要在其中调用一些异步函数。如果我按如下方式编写,编译器会抱怨:

async IEnumerator CountingCoroutine()
{
    while (true)
    {
        DoSomething();
        await foo();
        yield return new WaitForSeconds(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

每秒调用一些异步函数的正确等待时间是多少?PS我可以放弃整个协程函数并使用带有计时机制的更新,并将更新函数标记为异步。但我不确定它是否安全或推荐。

根据 @derHugo 的建议解决方案:

IEnumerator CountingCoroutine()
{
    while (true)
    {
        DoSomething();
        var task = Task.Run(foo);
        yield return new WaitUntil(()=> task.IsCompleted);
        yield return new WaitForSeconds(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

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

Flutter NetworkImage 与 cached_network_image

Flutter 建议在cached_network_image这里使用https://flutter.dev/docs/cookbook/images/cached-images。我用过它,效果很好。我试过了NetworkImage,它也奏效了。

我从文档中读取,该文档NetworkImage也在本地缓存了下载的图像。那么使用cached_network_image而不是有NetworkImage什么意义呢?是否可以比较它们的缓存策略如何彼此区分?谢谢!

flutter

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