using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; public class MouseFol : MonoBehaviour { private Inputs Input; private InputAction Shoot; private InputAction Aim; private InputAction Mouse; private SpriteRenderer Rend; private GameObject hand; public Animator PL_Ani; public BoxCollider2D PL_Col; public PlayerMovement PL_Script; public Transform PL_Trans; public Transform GR; public float rot; private void Awake() { Input = new Inputs(); Rend = gameObject.GetComponent(); hand = GameObject.Find("Hand"); } private void OnEnable() { Shoot = Input.Movement.attack; Aim = Input.Movement.Aim; Mouse = Input.Movement.Mouse_Pos; Shoot.Enable(); Aim.Enable(); Mouse.Enable(); } private void OnDisable() { Shoot.Disable(); Aim.Disable(); Mouse.Disable(); } private void Update() { Aim.performed += _ => tpStand(); Aim.canceled += _ => deTpStand(); Vector2 campoint = Camera.main.ScreenToWorldPoint(Mouse.ReadValue()); rot = (Mathf.Atan2((transform.position.y - campoint.y), (transform.position.x - campoint.x)) * Mathf.Rad2Deg) + 180; transform.rotation = Quaternion.AngleAxis(rot, Vector3.forward); if (Aim.IsPressed()) { Rend.color = new Color(256, 256, 256, 256); PL_Col.offset = new Vector2(0f, 1.25f); PL_Col.size = new Vector2(3f, 9.5f); PL_Script.Overlap = new Vector2(3, 1); GR.localPosition = new Vector3(0f, -3f, 0); hand.SetActive(true); if (rot > 90 && rot < 270) { Rend.flipY = true; hand.transform.localPosition = new Vector3(hand.transform.localPosition.x, 0.25f, 0); if (hand.transform.childCount > 0) { Transform gun = hand.transform.GetChild(0); gun.GetComponent().flipY = true; } } else { Rend.flipY = false; hand.transform.localPosition = new Vector3(hand.transform.localPosition.x, -0.25f, 0); if (hand.transform.childCount > 0) { Transform gun = hand.transform.GetChild(0); gun.GetComponent().flipY = false; } } } else { Rend.color = new Color(256, 256, 256, 0); PL_Col.offset = new Vector2(-1.125f, 2.5f); PL_Col.size = new Vector2(13.75f, 5f); PL_Script.Overlap = new Vector2(6, 1); GR.localPosition = Vector3.zero; hand.SetActive(false); } } private void tpStand() { PL_Trans.position = PL_Trans.position + new Vector3(0, 3.5f, 0); } private void deTpStand() { PL_Trans.position = PL_Trans.position - new Vector3(0, 3.5f, 0); } }