- Home /
How to have a 3D anchor point that limits how far you can go?
I created a grapple script where if you press a button the hook launches however I want to know if there is a possible way for that when the hook does attach to an object, it creates an anchor point so that the player cant move a certain distance away from it without it pulling the player back.
public KeyCode leftHook;
public KeyCode rightHook;
public KeyCode leftGas;
public KeyCode rightGas;
public GameObject hookLeft;
public GameObject hookLeftHolder;
public GameObject hookRight;
public GameObject hookRightHolder;
public float hookTravelSpeed;
public float playerTravelSpeed;
public float maxDistance;
private float currentDistance;
public bool firedLeft;
public bool hookedLeft;
public bool firedRight;
public bool hookedRight;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(leftHook) && !firedLeft)
{
firedLeft = true;
}
if (Input.GetKeyDown(rightHook) && !firedRight)
{
firedRight = true;
}
if (firedLeft)
{
hookLeft.transform.Translate(Vector3.forward * Time.deltaTime * hookTravelSpeed);
currentDistance = Vector3.Distance(transform.position, hookLeft.transform.position);
if(currentDistance >= maxDistance)
{
ReturnHookLeft();
}
}
if (firedRight)
{
hookRight.transform.Translate(Vector3.forward * Time.deltaTime * hookTravelSpeed);
currentDistance = Vector3.Distance(transform.position, hookRight.transform.position);
if (currentDistance >= maxDistance)
{
ReturnHookRight();
}
}
if (hookedLeft)
{
// Creates the anchor point
}
if (hookedRight)
{
// Creates the anchor point
}
}
void ReturnHookLeft()
{
hookLeft.transform.position = hookLeftHolder.transform.position;
firedLeft = false;
hookedLeft = false;
}
void ReturnHookRight()
{
hookRight.transform.position = hookRightHolder.transform.position;
firedRight = false;
hookedRight = false;
}
Answer by Jordash · Nov 01, 2018 at 01:58 AM
A Configurable Joint sounds like what you're looking for.
Thanks just a quick question. If I had the anchor disabled would the player still stick to the anchor or not. Just making sure.
If the grapple anchor is a world position (not a moving object) then the joint anchor is just a set of coordinates so you can't really enable or disable the anchor itself.
In my experience if you wanted the joint to be toggled it is easier to create a new joint each time, they don't seem to be designed to be disabled.
Your answer
Follow this Question
Related Questions
Grappling hook springjoint 0 Answers
Grappling Hook with Spring Joint 1 Answer
How to anchor Image UI's 1 Answer
Gun not smoothly following player,How to make gun smoothly follow player 1 Answer