Js_x 2022-10-16 15:46 采纳率: 0%
浏览 26

关于#c##的问题:我想知道如何在Unity2D中按下一个键后回到角色三秒前的位置呢

我想知道如何在Unity2D中按下一个键后回到角色三秒前的位置呢?

  • 写回答

1条回答 默认 最新

  • wanghui0380 2022-10-16 17:48
    关注

    如果仅仅是是角色(不要求整个场景)到简单,那就是每次更新动画的时候把角色的当前位置延迟3秒发送一次

    如果会用Rx.net的一句话就行,不会用也没关系。 反正延迟赋值这种事情,自己写代码你也能实现

    rx的例子

    //定义部分
                //定义一个观察源
                Subject<DateTime> obSubject = new Subject<DateTime>();
                //把第一观察源延迟3秒发送形成第2个观察源
                var obdelay = obSubject.Delay(TimeSpan.FromSeconds(3));
    
                    //使用部分
                    //每次unity更新动画时候,你把新数据发送到第一个观察源里
                    
                obdelay.Subscribe(p =>
                {
                    //我这里用订阅观察效果,你可以看到,他实际到达这里是延迟了3秒的
                    var p1 = p;
    
                });
    
                //这里是发送一个数据出去,从反射到上面那个订阅接收,实际被延迟了3秒
                obSubject.OnNext(new DateTime());
            }
            
    
            //ps:我用了rx.net做例子,不过例子本身不重要,只是说可以转变一下思路,与其费劲查找3秒前,不如让3秒前的延迟3秒发送出去
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月16日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错