项目开发疑问汇总


UniRx一帧陷阱

UniRx的效率极高,高过了Unity及C#的执行时间,由于其异步机制,导致和Unity不同步

await UniTask.Yield();    //别用这个,一帧之内
await UniTask.NextFrame();//这个好用,下一帧

CustomYieldInstruction不兼容内置IEnumerator

// CustomYieldInstruction 不兼容内置 IEnumerator
public class BoomBox : CustomYieldInstruction, IAbility
{
   
    private bool _keepWaiting = true;
    public override bool keepWaiting => _keepWaiting;

    public IEnumerator ShowVFX(List<Element> elements)
    {
   
        for (var i = 0; i < elements.Count; i++)
        {
   
            var element = elements[i];
            element.transform.localScale *= 0.6f;
            
            yield return new WaitForSeconds(0.1f);
        }

        _keepWaiting = false;
    }
}

Unity自定义多级同步Awaitable,内部流程控制外部流程

class MyClassA : CustomYieldInstruction
{
   
    private bool _keepWaitingToken = true;
    public MyClassA(MonoBehaviour mono)
    {
   
        Debug.Log("MyClassA");
        mono.StartCoroutine(StartSub());
    }
    IEnumerator StartSub()
    {
   
        // bool 当作引用来使用,token
        yield return new MySubClassA(ref _keepWaitingToken);
    }

    public override bool keepWaiting => _keepWaitingToken;
}

class MySubClassA : CustomYieldInstruction
{
   
    public MySubClassA(ref bool keepWaitingToken)
    {
   
        Debug.Log("MySubClassA");
        keepWaitingToken = false; // 真正控制的地方
        keepWaiting = keepWaitingToken;
    }
    public override bool keepWaiting {
    get; }
}

IEnumerator WaitForSth()
{
   
    print("CUSTOM YIELD INSTRUCTION");
    yield return new MyClassA(this);
    
    print("SKILL A EFFECTING");
    yield return new WaitForSeconds(1f);

    print("ALL DONE");
}

// true
// CUSTOM YIELD INSTRUCTION 
// MyClassA
// MySubClassA
// SKILL A EFFECTING
// ALL DONE

// false
// CUSTOM YIELD INSTRUCTION 
// MyClassA
// MySubClassA


Unity自定义CustomYieldInstruction
https://docs.unity3d.com/ScriptReference/CustomYieldInstruction.html


list快速排序

var list1 = new List<int>() {
    1, 1, 1, 1,1 };
var list2 = new List<int>() {
    1, 1, 1, 1 };
var list3 = new List<int>() {
    1, 1, 1, 1, 1, 1};
var list = new List<List<int>>();
list.Add(list1);
list.Add(list2);
list.Add(list3);
list.Sort((x, y) =>
{
   
    if (x.Count >= y.Count)
    {
   
        return -1; // 1为正序 -1为倒序
    }
    else
    {
   
        return 1;
    }
});
print(list[0].Count); // 6


Unity中简易线程使用

// 主线程
Debug.Log("main thread:" + Thread.CurrentThread.ManagedThreadId);
// 线程池,功能强大
Task.Run((
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Excel开发进度汇总表通常是用于统计和汇总项目的各个任务开发进度的表格。表格中可以包含以下内容: 1. 任务:列出所有的任务或子任务,每个任务都有一个独立的编号或名称。这些任务可以是项目中的主要阶段、功能模块或具体工作。 2. 负责人:指明每个任务的负责人或责任人,即负责完成该任务的人员。 3. 开始日期和结束日期:记录每个任务的预计开始和结束日期,包括具体的年、月和日。 4. 预计工期:估计每个任务完成所需要的时间,可以精确到小时或天数。 5. 实际工期:记录每个任务实际完成所花费的时间,方便与预计工期进行对比,评估开发进度。 6. 进度:用百分比表示当前任务的完成度,可以通过已完成工期和预计工期进行计算。 7. 状态:包括待完成、进行中、已完成等标识,以直观表示每个任务的当前状态。 8. 备注:可以记录一些额外信息,例如任务进展的问题、备注或解决方案等。 通过填写和更新这些信息,可以清晰地了解到每个任务的进度、负责人以及项目整体的开发进展情况。同时,可以根据实际情况进行调整和优化,提高项目的执行效率和准确性。Excel开发进度汇总表不仅便于沟通和协调各个团队成员,还有助于及时发现潜在问题并采取相应的措施,确保项目按计划顺利进行。 ### 回答2: Excel 开发进度汇总表是指用Excel软件制作的一种表格,用于收集和总结项目开发进度情况。其主要目的是为了方便管理人员或相关人员了解项目的进展情况,以便及时调整和优化工作计划。 Excel开发进度汇总表通常包括以下几个方面的信息: 1. 项目名称:列出需要进行进度汇总项目名称,以便进行分类和区分。 2. 任务列表:列出项目中的所有任务,并与对应的开始时间、结束时间进行关联,以更清晰地了解任务的时间安排。 3. 完成情况:根据实际情况,填写任务的完成情况,可以使用百分比或其他形式表示任务的完成度。 4. 进度折线图:利用Excel的图表功能,绘制出各个任务的进度折线图,使得进度的变化一目了然。 5. 延期分析:记录每个任务的实际结束时间与计划结束时间的差异,通过对延期的任务进行分析,找出延期的原因并制定相应的对策。 6. 总结和分析:对进度情况进行总结和分析,可以对不同任务的进展速度进行比较,发现问题和瓶颈,以及评估项目进展的整体情况。 通过使用Excel开发进度汇总表,项目管理人员可以更加清晰地了解项目的进展情况,及时发现问题并采取相应的措施,确保项目的顺利进行。同时,该表格的制作也便于交流和共享,使得团队成员之间能够更好地协作和沟通,提高项目开发效率和质量。 ### 回答3: Excel开发进度汇总表是一种用于汇总和跟踪项目开发进度的工具。它可以提供项目各个阶段的实际完成情况,以及参与者的责任和任务分配情况。 首先,我们可以在Excel表格中创建一列标题,包括项目名称、开始日期、预计完成日期和实际完成日期。通过填写这些信息,我们可以清晰地了解项目的时间安排和实际完成情况。 其次,我们可以创建一列用于记录参与者的责任和任务分配。这可以帮助我们追踪每个人在项目中的贡献和进度。在这一列中,我们可以添加负责人的姓名,以及他们在项目中所承担的具体任务。 然后,我们可以添加一列用于记录每个任务的状态。这可以是“未开始”,“进行中”或“已完成”等。通过使用这些状态分类,我们可以清楚地看到项目中每个任务的进展情况。 接下来,我们可以添加一个进度列,用于计算项目的整体进展情况。这可以是一个百分比,表示项目已完成的工作量。通过自动计算这个百分比,我们可以快速了解项目的整体进展情况。 最后,我们还可以在表格中添加其他重要信息,如备注、问题和风险等。这些信息可以帮助我们跟踪项目中出现的问题,并及时采取相应的措施。 通过使用Excel开发进度汇总表,我们可以清晰地了解项目的进展情况,提前发现和解决问题,并保证项目按时完成。它是一个简单而有效的工具,可以帮助我们管理和掌控项目进度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值