- Home /
how to call setVelocity method Character Motor script from other script?
Hello!
I'm using the Firt Person Controller that comes with unity, and y want to implement a jetpack, but it was not possible for me to have a reference of the CharacterMotor reference in order to call methods from it to change the velocity...
i think my problem is that my script is in C#, and CharacterMotor is written in Javascript... but I have no idea how this could be a problem...
this is my script, very simple:
 using UnityEngine;
 using System.Collections;
 
 [RequireComponent(typeof(CharacterMotor))]
 
 public class JetPack : MonoBehaviour
 {
     CharacterMotor motor;
     
     void Awake()
     {
         motor = GetComponent<CharacterMotor>();
     }
     
     // Update is called once per frame
     void Update()
     {
         //this do not work :(
         //object grounded = motor.IsGrounded();
         //if(grounded)
         //    Debug.Log("AAA");
         
         if(Input.GetButtonDown("Fire2"))
             motor.SetVelocity(Vector3.up);
     }
     
     
     //this works
     void OnJump()
     {
         Debug.Log("OnJump");
     }
     
     //this works
     void OnLand()
     {
         Debug.Log("OnLand");
     }
 }
 
but when i try to compile, it shows this error:
 JetPack.cs(31,31): Error CS0584: Internal compiler error: $SubtractNewPlatformVelocity$3 (CS0584) (Assembly-CSharp)
 
 JetPack.cs(31,31): Error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement (CS0201) (Assembly-CSharp)
on this line
 motor.SetVelocity(Vector3.up);
what can i do?
Answer by sparkzbarca · Nov 15, 2012 at 06:47 AM
yea your problem is the
object grounded = motor.isgrounded();
isgrounded i'm certain returns a bool
object is not a bool its an object (i thought the type was GameObject but whatever) its confused because your trying to make a game object equal to a bool thats why the second error.
The first error seems to be a general could not compile, the second error is why.
bool grounded = motor.isgrounded();
mark as answered happy coding.
i tried using bool before... but it says that object is not a bool, taht's why i am using an object :(
Your answer
 
 
             Follow this Question
Related Questions
Multiple Cars not working 1 Answer
How do I access mega-fiers classes/components in javascript? 2 Answers
Distribute terrain in zones 3 Answers
call C# dll class in plugins from JavaScript 0 Answers
Converting C#? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                