我刚刚为我正在开发的一款 VR 游戏实施了评分系统。但是表现很糟糕,我认为这是因为我如何渲染分数。在我实施评分后,性能问题就开始了。
我正在使用新的 THREE.TextGeometry 创建一个新的 THREE.Mesh,然后在每次分数发生变化时将其添加到场景中。据我了解,在 TextGeometry 对象中呈现的字符串不能动态更改,因此需要创建一个全新的对象。
每次分数变化时都会发生以下情况:
this.scene.remove( this.text );
this.material = this.assetStore.mainEmissiveMaterial;
this.geometry = new THREE.TextGeometry( String(this.score), {
font: this.assetStore.mainFont,
size: 6,
height: 0,
} );
this.geometry.translate(-10, 25, -40);
this.text = new THREE.Mesh( this.geometry, this.material );
this.scene.add( this.text );
我的问题:是否有另一种显示文本的方式,对性能影响不大?