Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

How do I fix this script?

Discussion in 'Scripting' started by Treasureman, Feb 23, 2015.

  1. Treasureman

    Treasureman

    Joined:
    Jul 5, 2014
    Posts:
    563
    I have a code that makes my FPS Controller slow down when the input 'Aim' is held. Here's the code...
    Code (CSharp):
    1. var walkSpeed: float = 7; // regular speed
    2. var aimSpeed: float = 3.5; // aiming speed
    3. private var chMotor: CharacterMotor;
    4. function Start(){
    5.      chMotor = GetComponent(CharacterMotor);
    6.      var ch:CharacterController = GetComponent(CharacterController);
    7. }
    8. function Update(){
    9.      var speed = walkSpeed;
    10.      if (chMotor.grounded && Input.GetButton("Aim")){
    11.          speed = aimSpeed;
    12.       }
    13.       chMotor.movement.maxForwardSpeed.maxBackwardsSpeed.maxSidewaysSpeed = speed; // set max speed
    14. }
    But, whenever I put it in my scene, I get this error...

    MissingFieldException: System.Single.maxBackwardsSpeed
    Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.FindExtension (IEnumerable`1 candidates)
    Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.Create (SetOrGet gos)
    Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.CreateGetter ()
    Boo.Lang.Runtime.RuntimeServices.DoCreatePropGetDispatcher (System.Object target, System.Type type, System.String name)
    Boo.Lang.Runtime.RuntimeServices.CreatePropGetDispatcher (System.Object target, System.String name)
    Boo.Lang.Runtime.RuntimeServices+<GetProperty>c__AnonStorey17.<>m__C ()
    Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
    Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
    Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
    Boo.Lang.Runtime.RuntimeServices.GetProperty (System.Object target, System.String name)
    UnityScript.Lang.UnityRuntimeServices.GetProperty (System.Object target, System.String name)

    How do I fix it? Thanks!
     
    Last edited: Feb 23, 2015
  2. Suddoha

    Suddoha

    Joined:
    Nov 9, 2013
    Posts:
    2,824
    This line
    Code (JavaScript):
    1. chMotor.movement.maxForwardSpeed.maxBackwardsSpeed.maxSidewaysSpeed = speed; // set max speed
    2.  
    has to be changed to something like

    Code (JavaScript):
    1. chMotor.movement.maxForwardSpeed = speed;
    2. chMotor.movement.maxBackwardsSpeed = speed;
    3. chMotor.movement.maxSidewaysSpeed = speed;
    4.  
    You could also define a method which does it for you.
     
  3. Treasureman

    Treasureman

    Joined:
    Jul 5, 2014
    Posts:
    563
    I didn't try it yet since it's really late, but thanks still. Someone told me to add SidewaySpeed and BackwardsSpeed and that was it. Again, thanks!