Hinge joint won't work
Hi, I was going to make a simple 3D pinball game and I use Hinge Joint for both of the flippers, left and right and use InputName as the keys (a and d). In the projects settings, I set the LFlipper to a and DFlipper to d and input the name I have assigned to the flipper objects. I use this script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FlipperController : MonoBehaviour {
public float restPosition = 0;
public float pressedPosition = 45f;
public float hitStrength = 10000f;
public float flipperDampper = 150f;
HingeJoint hinge;
public string inputName;
void Start () {
hinge = GetComponent<HingeJoint>();
hinge.useSpring = true;
}
void Update () {
JointSpring spring = new JointSpring();
spring.spring = hitStrength;
spring.damper = flipperDampper;
// If the buttons (Input) are pressed
// Input.GetKey (KeyCode.A) && Input.GetKey (KeyCode.D)
if (Input.GetAxis (inputName) == 1) {
spring.targetPosition = pressedPosition;
} else {
// If the buttons are not press
spring.targetPosition = restPosition;
}
hinge.spring = spring;
hinge.useMotor = true;
}
}
and set the left flipper min limit to -45, max 0 and right min 0, max limit to 45. It does not seem to work. I am not sure what has caused this. I am using Unity 5.
Answer by stuleelight · Oct 03, 2018 at 05:19 PM
I had this same problem with almost the same exact code. I fixed it by making sure the attached hingeJoint's arrow is point directly up. Also, if your getting an "Axis not defined" error you have to name which object is being used in the attached script, in the public string inputName.
Your answer
Follow this Question
Related Questions
2D ball rolling animation 0 Answers
Usiing Vector3 to build a pinball table bumper 0 Answers
Ball going through and sticking to flippers in a pinball game 1 Answer
Pinball flippers, phantom flippers help! 0 Answers
pinball flipper bug 1 Answer