unity3d中 如何用C#定义GetComponent("AutoRotation").speed的类型?
speed是C#脚本AutoRotation里的一个变量我想在另一个c#里面调用这个speed变量,现在只会用js调用如果用C#调用就需要定义GetComponent("...
speed是C#脚本AutoRotation里的一个变量
我想在另一个c#里面调用这个speed变量,现在只会用js调用
如果用C#调用就需要定义GetComponent("AutoRotation").speed的类型,应该定义成什么类型啊? 展开
我想在另一个c#里面调用这个speed变量,现在只会用js调用
如果用C#调用就需要定义GetComponent("AutoRotation").speed的类型,应该定义成什么类型啊? 展开
2个回答
展开全部
1、变量声明为public
public float speed = 1;
2、GetComponent返回的是Component类型,C#要求强类型(强制转换类型),不像js那样var变量直接使用
1、AutoRotation cmp1=(AutoRotation) GetComponent(typeof(AutoRotation));
cmp1.speed=10F;
2、AutoRotation cmp2=(AutoRotation) GetComponent("AutoRotation");
cmp2.speed+=10F;
3、AutoRotation cmp3= GetComponent<AutoRotation>();
print(cmp3.speed);
Unity3D语言参考在菜单:Help=>Scripting Reference
C#资料在网页版MSDN上http://msdn.microsoft.com/zh-cn/library/kx37x362.aspx
建议装visual studio 2010带离线版msdn,(我用这个)
public float speed = 1;
2、GetComponent返回的是Component类型,C#要求强类型(强制转换类型),不像js那样var变量直接使用
1、AutoRotation cmp1=(AutoRotation) GetComponent(typeof(AutoRotation));
cmp1.speed=10F;
2、AutoRotation cmp2=(AutoRotation) GetComponent("AutoRotation");
cmp2.speed+=10F;
3、AutoRotation cmp3= GetComponent<AutoRotation>();
print(cmp3.speed);
Unity3D语言参考在菜单:Help=>Scripting Reference
C#资料在网页版MSDN上http://msdn.microsoft.com/zh-cn/library/kx37x362.aspx
建议装visual studio 2010带离线版msdn,(我用这个)
追问
非常感谢啊 但是还有一些问题
我那个speed是个bool值
AutoRotation cmp1=(AutoRotation) GetComponent("AutoRotation");
cmp1.speed=false;
这样会报错..
error CS0176: Static member `AutoRotation.Rotation' cannot be accessed with an instance reference, qualify it with a type name instead
你看下什么问题
追答
静态成员AutoRotation.Rotation不能在实例对象上操作,应该使用类型限定名操作.
也就是AutoRotation.Rotation 变量为static类型是不能在实例上访问cmp1.Rotation,静态类型应该用AutoRotation.Rotation直接来操作.
C#语言基础.静态类型不属于某个实例,应该用类名.你该先学下C#再学u3d.装vs 2010吧.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询