如何在Unity中更改CharacterMotor

时间:2014-10-20 15:47:59

标签: c# unity3d

我想以统一的方式改变播放器的速度,但我无法从另一个脚本访问CharacterMotor。我搜查了实习生,我发现了这个(对于C#):

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?)

我已经尝试过一些事情,但是我有点担心这样一个事实:我搜索的每个地方都提供了相同的解决方案。有谁可以帮助我?

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。事实证明这是因为标准的CharacterController脚本是用javascript编写的,你不能从C#脚本中引用CharacterMotor类。

幸运的是,有人已经将CharacterMotor,FSInputController和PlatformInputController转换为C#。

http://forum.unity3d.com/threads/charactermotor-fpsinputcontroller-platforminputcontroller-in-c.64378/

答案 1 :(得分:-1)

现在它说你必须将CharacterMovement脚本附加到Player对象。