unity3d中 如何用C#定义GetComponent("AutoRotation").speed的类型?

speed是C#脚本AutoRotation里的一个变量我想在另一个c#里面调用这个speed变量,现在只会用js调用如果用C#调用就需要定义GetComponent("... speed是C#脚本AutoRotation里的一个变量
我想在另一个c#里面调用这个speed变量,现在只会用js调用
如果用C#调用就需要定义GetComponent("AutoRotation").speed的类型,应该定义成什么类型啊?
展开
 我来答
liuwenjiexx
2011-09-09 · 超过14用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:23.9万
展开全部
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,(我用这个)
追问
非常感谢啊 但是还有一些问题
我那个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吧.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Yutouyu51
2011-09-09 · TA获得超过119个赞
知道小有建树答主
回答量:175
采纳率:100%
帮助的人:137万
展开全部
没用过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式