大象无形11.4.4 实战:创建新的渲染代理 笔记

遇到问题如下:

书中的代码复制粘贴后,其中实例化的一行出错。
在这里插入图片描述

严重性 代码 说明 项目 文件 行 禁止显示状态 详细说明
错误(活动) E0322 不允许使用抽象类类型 “FTestCustomComponentSceneProxy” 的对象: MyProjectCPP C:\Users\Administrator\Documents\Unreal Projects\MyProjectCPP 4.25\Source\MyProjectCPP\Test\TestCustomComponent.cpp 46 纯虚拟 函数 “FPrimitiveSceneProxy::GetTypeHash” 没有强制替代项

解决方法:

参考链接:没有躲过的坑–抽象类不能实例化对象(但是你明明定义的不是抽象类)江南-一苇渡江
思路:

  1. 这篇文章提到了不能实例化的原因就是虚函数没有全部实现。报错的字面意思,GetTypeHash函数没有实现。
  2. 找到这个函数的位置,来自继承的FPrimitiveSceneProxy。在这里插入图片描述
  3. 在正确的位置实现这个函数:
    借鉴另一个虚函数的实现方法和放置位置在这里插入图片描述
	virtual SIZE_T GetTypeHash(void) const override
	{
		return SIZE_T();
	}

结果:

编译,拖一个Actor到场景中,添加已有代码实现的组件
在这里插入图片描述


版权声明:本文为qq_36005498原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。