using System.Collections; using System.Collections.Generic; using UnityEngine; public class Grapple : MonoBehaviour{ public GameObject selector; public float rotationSpeed; Rigidbody2D rb2d; GameObject player; void Start(){ rb2d = GetComponent(); player = GameObject.FindGameObjectWithTag("Player"); selector.SetActive(false); } void Update(){ selector.transform.Rotate(0, 0, rotationSpeed); } void OnMouseOver(){ if (Vector2.Distance(player.transform.position, transform.position) <= 10){ selector.SetActive(true); player.GetComponent().ableToGrapple = true; }else{ selector.SetActive(false); } } bool grappled; void OnMouseExit(){ if (!grappled){ selector.SetActive(false); if (!player.GetComponent().grappled){ player.GetComponent().ableToGrapple = false; } } } void OnMouseDown(){ if(Vector2.Distance(player.transform.position, transform.position) <= 10){ grappled = true; SpringJoint2D grapple = player.GetComponent(); player.GetComponent().grappled = true; player.GetComponent().isTrigger = true; LineRenderer line = player.GetComponent(); line.SetPosition(1, transform.position); line.enabled = true; grapple.connectedBody = rb2d; grapple.distance = Vector2.Distance(player.transform.position, transform.position) - 1f; grapple.enabled = true; } } void OnMouseUp(){ grappled = false; SpringJoint2D grapple = player.GetComponent(); LineRenderer line = player.GetComponent(); player.GetComponent().grappled = false; player.GetComponent().isTrigger = false; line.enabled = false; grapple.enabled = false; selector.SetActive(false); player.GetComponent().ableToGrapple = false; } }