Unity《识别本地玩家》教程中OnStartLocalPlayer()方法的正确泛型调用方式
解决Unity
GetComponent<T>()泛型调用错误的问题 这个报错的原因很明确:GetComponent()是一个泛型方法,必须明确指定你要获取的组件类型作为泛型参数,官方教程里的代码漏掉了这关键的一步。
正确的调用方式
如果你是要修改3D物体的渲染材质颜色,需要指定Renderer类型作为泛型参数:
public override void OnStartLocalPlayer() { GetComponent<Renderer>().material.color = Color.blue; }
如果是2D项目中的Sprite对象,那就换成SpriteRenderer类型:
public override void OnStartLocalPlayer() { GetComponent<SpriteRenderer>().color = Color.blue; }
为什么原来的代码会报错?
编译器抛出CS0305错误,是因为泛型方法GetComponent<T>()要求必须传入一个具体的类型T,它需要知道你要从游戏对象上获取哪一种组件,没有这个类型参数,编译器无法完成方法的解析。
内容的提问来源于stack exchange,提问作者JDOaktown
相关产品推荐
相关产品推荐

