如何改变CharacterMotor在Unity
我想改变团结球员的速度,但我不能从另一个脚本访问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?)
我试过出头,但我我感到困扰的是,我搜索的每个地方都为我提供了一种不起作用的解决方案。任何人都可以帮我吗?
现在,因为它说你必须重视CharacterMovement脚本Player对象。
您的建议可能正确也可能不正确,但这并不能解决问题中显示的编译错误。 – 2014-10-22 09:59:12
看起来它不是一个类型转换错误。它一定是这样的。 不能将类型'UnityEngine.Component'隐式转换为'UnityEngine.CharacterMovement'。一个显式转换存在(是否缺少强制转换? 这是不是一个好的行为来投票了试图帮助而没有explenation用户。该帖已被编辑。 – 2014-10-22 22:02:17
该组件是'CharacterMotor',不'CharacterMovement '。 – 2014-10-29 08:25:00
我有同样的问题。原来,这是因为标准的CharacterController脚本是用javascript编写的,你不能从C#脚本中引用CharacterMotor类。
幸好有人通过转换CharacterMotor,FSInputController和PlatformInputController到C#的麻烦已经消失了。
你得到了什么错误?你必须更具体。 – 2014-10-20 16:00:43
你的球员被标记为“球员”。代码寻找标记为“播放器”的对象。如果错误是玩家空引用,那么你没有一个玩家对象标记为玩家。如果错误在第2行,那么没有CharacterMotor组件(脚本)附加到播放器。 – 2014-10-20 16:13:12
我只是把整个错误。该对象被标记为播放器并且它具有该组件。 – 2014-10-20 18:43:37