当前位置: 首页 > news >正文

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

文章目录

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

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

前言

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

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

ue4端的debug过程

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

选择调试对象

信息流的传递

实时信息的显示

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

pycharm端

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

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

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

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

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

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

一些仿真经验

经验总结:

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

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

  3. 绕Z轴旋转的角取值范围是 [ − π , − π ] [-\pi, -\pi] [π,π],且以X轴正半轴为起始,以Y轴正半轴为增加的方向,增加图以更好地说明。
    在这里插入图片描述

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

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

小结

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

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

http://www.lryc.cn/news/141775.html

相关文章:

  • 【数据分析】波士顿矩阵
  • sizeof和strlen的对比
  • Flutter系列文章-Flutter 插件开发
  • 基于SpringBoot实现MySQL与Redis的数据最终一致性
  • mysql与oracle数据库备份
  • UE4 材质学习笔记
  • TiDB 源码编译之 TiProxy 篇
  • 利用驱动漏洞
  • 开始MySQL之路——MySQL约束概述详解
  • CMake基础和命令介绍
  • 【matlab利用shp文件制作mask白化文件】
  • 【LLM】解析pdf文档生成摘要
  • 方案:AI边缘计算智慧工地解决方案
  • 【Python】【数据结构和算法】查找最大或最小的N个元素
  • C++day1(笔记整理)
  • 关于chromedriver.exe一系列问题的解决办法
  • css-选择器、常见样式、标签分类
  • 三星申请新商标:未来将应用于智能戒指,作为XR头显延伸设备
  • 0201hdfs集群部署-hadoop-大数据学习
  • DevOps中的持续测试优势和工具
  • 函数-C语言(初阶)
  • elementuiplus设置scroll-to-error之后 提示被遮挡的解决方案
  • vue中将新添加的div标签自动定位到可视区域内
  • Vue3笔记——(尚硅谷张天禹Vue笔记)
  • 正则表达式一小时学完
  • 上门服务系统|上门服务小程序如何提升生活质量?
  • 系统报错msvcp120.dll丢失的解决方法,常见的三种解决方法
  • 数据库备份工具有哪些
  • Sentinel流量控制与熔断降级
  • The Connector 周刊#10:你真的知道什么是DevOps文化吗?