UE4与pycharm联合仿真的调试问题及一些仿真经验

文章目录

    • ue4与pycharm联合仿真的调试问题
      • 前言
      • ue4端的debug过程
      • pycharm端
    • 一些仿真经验
    • 小结

ue4与pycharm联合仿真的调试问题

前言

因为在实验中我需要用到py代码输出控制信息给到ue4中,并且希望看到py端和ue端分别在运行过程中的输出以及debug调试。所以,即使ue4中可以直接调用py代码执行,我也没有利用,同时我也不会用。

UE4与pycharm联合仿真的调试问题及一些仿真经验_第1张图片

尽管我通过TCP通信将ue4与py端进行了通信,在代码执行过程中如何debug仍然是一个让我手忙脚乱的问题,有时候需要重新运行多次,才可以轻松地在想要的代码位置进行调试。

ue4端的debug过程

在ue4端的debug过程比较简单,在运行模拟游戏/仿真之后,选中一个调试对象,即可在蓝图中看到信息流的传递并在对应的引脚上停留,会输出实时的信息,从而帮助我们进行debug的调试。

UE4与pycharm联合仿真的调试问题及一些仿真经验_第2张图片

UE4与pycharm联合仿真的调试问题及一些仿真经验_第3张图片

UE4与pycharm联合仿真的调试问题及一些仿真经验_第4张图片

同时,如果编写的蓝图有错误,在程序运行结束之后,或者编译时就会指出错误所在的地方,因此在与py端的联合仿真中,ue4的debug调试还是比较简单和直观的。

pycharm端

因为这个工程暂时只需要py文件和ue4联合仿真就能够完成任务,我使用的IDE是pycharm。本来在pycharm上进行调试也是很简单的事件,只需要打断点慢慢debug就可以了。但由于ue4端的信息是实时在运行着的,因此如果打断点的话,下一次的ue4端的输入信息会与上一次的输入差别较大,这也不是正常仿真下会出现的情况。

因此在进行pycharm端的仿真时应当首先进入“调试”状态。但该状态下是不存在断点的,也就是说代码是能够畅通无阻的运行的。当你想查看某一部分目前的代码运行是否按照你的预期,这时候应该按照以下步骤进行调试:

  1. 暂停ue4端的仿真,使得ue4端的所有actor、Pawn等的对象状态不再变化;

    UE4与pycharm联合仿真的调试问题及一些仿真经验_第5张图片

  2. 由于ue4输出的状态信息是不变化的,此时对应py端执行代码得到的结果也应该是不变的。打断点让代码运行到你希望断点的位置。

    从而能够按照正常pycharm中的代码调试进行调试。

    同时还要注意的是如果ue4和py端中有用到时间,并且时间没有同步的状况下,要注意到调试对两端运行时间所带来的影响,避免在调试过程中得到的信息较真实运行时有所不同。

一些仿真经验

经验总结:

  1. 首先应该仔细检查数值仿真与3D仿真中的代码是否一致,尽量能够在3D仿真的代码中复现数值仿真所得到的结果图;

  2. 其次应当注意到数值仿真中是右手坐标系,虚幻引擎是左手坐标系,因此虽然在算法上二者不需要进行修改,但在某些方面二者是不相同的;例如顺时针和逆时针

  3. 绕Z轴旋转的角取值范围是 [ − π , − π ] [-\pi, -\pi] [π,π],且以X轴正半轴为起始,以Y轴正半轴为增加的方向,增加图以更好地说明。
    UE4与pycharm联合仿真的调试问题及一些仿真经验_第6张图片

  4. 在3D仿真中,对于控制参数可能更加敏感,需要小心调整;

  5. 要注意python的数组起始是0索引,MATLAB是1;

小结

本文主要简单讲述了一下在UE4和PyCharm联合仿真中所需要主要的代码调试的问题以及一些经验。本文比较简单,属于是水文。

如果您觉得我写的不错,麻烦给我一个免费的赞!如果内容中有错误,也欢迎向我反馈。

你可能感兴趣的:(虚幻引擎,ue4,pycharm,ide)