- Home /
Question by
shidonflor · Jun 20, 2020 at 01:10 PM ·
physicsaimgrappling gun
Need auto aim
I need an auto aim feature for my grappling hook, it aims at the spot closest to your aim. Unity 2020.2 alpha
My grappling gun code looks like this: using UnityEngine;
public class GrapplingGun : MonoBehaviour {
private LineRenderer lr;
private Vector3 grapplePoint;
public LayerMask whatIsGrappleable;
public Transform gunTip, camera, player;
private float maxDistance = 100f;
private SpringJoint joint;
void Awake() {
lr = GetComponent<LineRenderer>();
}
void Update() {
if (Input.GetMouseButtonDown(0)) {
StartGrapple();
}
else if (Input.GetMouseButtonUp(0)) {
StopGrapple();
}
}
//Called after Update
void LateUpdate() {
DrawRope();
}
/// <summary>
/// Call whenever we want to start a grapple
/// </summary>
void StartGrapple() {
RaycastHit hit;
if (Physics.Raycast(camera.position, camera.forward, out hit, maxDistance, whatIsGrappleable)) {
grapplePoint = hit.point;
joint = player.gameObject.AddComponent<SpringJoint>();
joint.autoConfigureConnectedAnchor = false;
joint.connectedAnchor = grapplePoint;
float distanceFromPoint = Vector3.Distance(player.position, grapplePoint);
//The distance grapple will try to keep from grapple point.
joint.maxDistance = distanceFromPoint * 0.8f;
joint.minDistance = distanceFromPoint * 0.25f;
//Adjust these values to fit your game.
joint.spring = 4.5f;
joint.damper = 7f;
joint.massScale = 4.5f;
lr.positionCount = 2;
currentGrapplePosition = gunTip.position;
}
}
/// <summary>
/// Call whenever we want to stop a grapple
/// </summary>
void StopGrapple() {
lr.positionCount = 0;
Destroy(joint);
}
private Vector3 currentGrapplePosition;
void DrawRope() {
//If not grappling, don't draw rope
if (!joint) return;
currentGrapplePosition = Vector3.Lerp(currentGrapplePosition, grapplePoint, Time.deltaTime * 8f);
lr.SetPosition(0, gunTip.position);
lr.SetPosition(1, currentGrapplePosition);
}
public bool IsGrappling() {
return joint != null;
}
public Vector3 GetGrapplePoint() {
return grapplePoint;
}
}
Comment
the man didn't even bother to change the code from github lol (except for deleting some spaces, but lets be honest that's not something to brag about) he legit just yoinked it
Your answer
Follow this Question
Related Questions
How do i make a simple grappling hook? 0 Answers
Need help moving player object towards an instantiated ball 1 Answer
Smooth grappling hook movement 0 Answers
Adding bounce when hitting object from below 1 Answer
Grappling Hook 0 Answers