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?

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.