Unity VR游戏弹药显示开发报错:成员名不能与封闭类型相同
错误原因
该报错属于C#语法强制限制:类的成员(变量、方法等)名称不能与所属类的名称完全相同。
你的代码中类名为 ammoText,同时类内部声明了一个Text类型的同名变量,恰好触发了该规则,导致编译失败。
修复方案
只需将类内部的Text变量重命名为不与类名冲突的名称即可,例如修改为ammoUiText,修改后的完整代码如下:
using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ammoText : MonoBehaviour { public GameObject weapon; // 变量名已修改,避免和类名ammoText重复 Text ammoUiText; void Awake() { ammoUiText = GetComponent<Text>(); } // Update is called once per frame void Update() { ammoUiText.text = weapon.GetComponent<Gun>().currentBullets.ToString(); } }
优化提示:可以将
weapon.GetComponent<Gun>()的调用移到Awake方法中提前缓存对应引用,不需要每帧执行GetComponent操作,可降低不必要的性能消耗。
内容的提问来源于stack exchange,提问作者Jordan Abramson
相关产品推荐
相关产品推荐

