- Home /
Converting Javascript to C#
I found a pinball tutorial that is written in javascript that I'm trying to translate to C#. I've gotten most of it translated but ran into some issues converting the hingeJoint.limit.min and max to what the script requests. My script instead sends the object flying all over the screen like a sparrow on crack cocaine.
Here is the Javascript version " #pragma strict
//Parameters
var restPosition : float = 0F;
var pressedPosition : float = 45F;
var flipperStrength : float = 10F;
var flipperDamper : float = 1F;
var inputButtonName : String = "LeftPaddle";
function Awake ()
{
hingeJoint.useSpring = true;
}
// Update is called once per frame
function Update ()
{
var spring : JointSpring = new JointSpring();
spring.spring = flipperStrength;
spring.damper = flipperDamper;
if (Input.GetButton(inputButtonName))
spring.targetPosition = pressedPosition;
else
spring.targetPosition = restPosition;
hingeJoint.spring = spring;
hingeJoint.useLimits = true;
hingeJoint.limits.min = restPosition;
hingeJoint.limits.max = pressedPosition;
}
////////////////////////////////////////////////////////////////////////////////////////////
And here is what I've managed to translate:
using UnityEngine;
using System.Collections;
public class PaddleController : MonoBehaviour {
public float restPosition = 0f;
public float pressedPosition = 45F;
public float flipperStrength = 10f;
public float flipperDamper = 1f;
public string inputButtonName = "LeftPaddle";
private JointLimits limits;
void Start ()
{
hingeJoint.useSpring = true;
limits = hingeJoint.limits;
}
void Update ()
{
var spring = new JointSpring();
spring.spring = flipperStrength;
spring.damper = flipperDamper;
if (Input.GetButton(inputButtonName)) spring.targetPosition = pressedPosition;
else spring.targetPosition = spring.spring;
hingeJoint.spring = spring;
hingeJoint.useLimits = true;
limits.min = restPosition;
limits.max = pressedPosition;
hingeJoint.limits = limits;
}
}
Can anyone help me figure out how to properly translate this?
Thanks
I think hingeJoint is inherited, its not declared anywhere. Sort of like typing transform.
Answer by gribbly · Mar 27, 2013 at 07:23 PM
There are some free js to C# converters in the asset store. They're not perfect, but they do work (I think they'd be good for a relatively simple script like this).
I would try that.
Your answer
Follow this Question
Related Questions
Directly Rotate a Hinge? 1 Answer
How can i change HingeJoint's axis from code? 0 Answers
Spring Joint Worm set-up 0 Answers
Weird behaviour with hinge joint 0 Answers
Can anyone convert this for loop (which is in Java) into c# i 0 Answers