2014-10-20 95 views
-1

我想改变团结球员的速度,但我不能从另一个脚本访问CharacterMotor。我搜索的实习,我发现这(对于C#):如何改变CharacterMotor在Unity

Player = GameObject.FindGameObjectsWithTag("Player")[0]; 
Player.GetComponent("CharacterMotor"). 
     CharacterMotorMovement.maxForwardSpeed = 6.0; 

但是,这并不工作,我得到的错误:

Assets/Scripts/MainScript.cs(60,63): error CS1061: 
Type `UnityEngine.Component' does not contain a definition for 
`CharacterMotorMovement' and no extension method 
`CharacterMotorMovement' of type `UnityEngine.Component' could be 
found (are you missing a using directive or an assembly reference?) 

我试过出头,但我我感到困扰的是,我搜索的每个地方都为我提供了一种不起作用的解决方案。任何人都可以帮我吗?

+0

你得到了什么错误?你必须更具体。 – 2014-10-20 16:00:43

+0

你的球员被标记为“球员”。代码寻找标记为“播放器”的对象。如果错误是玩家空引用,那么你没有一个玩家对象标记为玩家。如果错误在第2行,那么没有CharacterMotor组件(脚本)附加到播放器。 – 2014-10-20 16:13:12

+0

我只是把整个错误。该对象被标记为播放器并且它具有该组件。 – 2014-10-20 18:43:37

回答

-1

现在,因为它说你必须重视CharacterMovement脚本Player对象。

+0

您的建议可能正确也可能不正确,但这并不能解决问题中显示的编译错误。 – 2014-10-22 09:59:12

+0

看起来它不是一个类型转换错误。它一定是这样的。 不能将类型'UnityEngine.Component'隐式转换为'UnityEngine.CharacterMovement'。一个显式转换存在(是否缺少强制转换? 这是不是一个好的行为来投票了试图帮助而没有explenation用户。该帖已被编辑。 – 2014-10-22 22:02:17

+0

该组件是'CharacterMotor',不'CharacterMovement '。 – 2014-10-29 08:25:00