c# - 在检查它是否是子对象而不是父对象之后,如何使用特定子对象的参数/函数?
问题描述
我正在尝试为一个游戏制作一个系统,其中我有一个名为 Scene 的类,它存储诸如 GameObjects 之类的东西。我创建了一个名为 GameScene 的子类,它还存储关卡、整数列表和 Player。最重要的是,我有一个静态对象来存储当前存在的场景。
现在我想制作一个游戏内调试器:
- 检查当前场景是否为 GameScene
- 如果这是真的,显示一些有关播放器速度等的信息。
然而,这带来了一个问题,因为在我检查当前场景是否是 GameplayScene 之后,我仍然必须让编译器相信我正在处理 GameplayScene,而不仅仅是任何旧场景。我该怎么做呢?
我假设(并希望)这是一个滑稽可笑的简单答案,但我只是没有找到合适的术语。
这就是我想做的事情。
if (InputManager.doLevelStuff && SceneManager.currentScene is GameScene)
SceneManager.currentScene.level.DoLevelStuff();
}
当然这会产生错误,因为 Scene 不包含级别的定义。
解决方案
我不确定我是否跟随你,但为了使用 IS 调用派生类型的方法是不够的,你需要强制转换为特定的类 ((GameScene)SceneManager.currentScene.level).DoLevelStuff() 更好的方法是使用 as 并检查 null
推荐阅读
- python - 搜索结果未显示
- android - 表格行内 TextView 的第二行不是真正的文本对齐,但第一行没问题
- java - 整数 n 作为 List 的第二个参数传递
.sublist(fromIndex, toIndex),但堆栈跟踪说 toIndex 在 Kotlin 中是 n + 2 - python - 使用请求库登录到 parscoders.com
- powershell - 使用invoke-restmethod的powershell POST数据问题
- javascript - node.js中的包和模块有什么区别
- javascript - 如何在使用 Puppeteer 评估页面响应之前使表单页面元素加载其内部文本?
- excel - 复制特定范围
- python - 将 pandas 列与其他列的一系列索引进行比较
- python - 试图从pdf中提取数据并理解它并将其上传到数据库