public void Pick_Throw() { if (Input.GetKeyDown(KeyCode.B)) { if (!Grabbled) { //grab Physics2D.queriesStartInColliders = false; hit = Physics2D.Raycast(transform.position, Vector2.right * transform.localScale.x, distance);//激光射线 if (hit.collider != null && hit.collider.tag == "guns") { Grabbled = true; } } else if (!Physics2D.OverlapPoint(holdPoint.position, notGrabbled)) { //throw Grabbled = false; if (hit.collider.gameObject.GetComponent <Rigidbody2D>() != null) { hit.collider.gameObject.GetComponent <Rigidbody2D>().velocity = new Vector2(transform.localScale.x, 1 * throwforce); } } } if (Grabbled) { float direction = Input.GetAxisRaw("Horizontal"); // 值为 0,-1,1 hit.collider.gameObject.transform.position = holdPoint.position; //武器方向调整 if (direction != 0) { hit.collider.gameObject.transform.localScale = new Vector3(direction / 20, hit.collider.gameObject.transform.localScale.y, hit.collider.gameObject.transform.localScale.z); } //射击与后坐力 if (Input.GetMouseButton(0) && Time.time > nextFire) { nextFire = Time.time + fireRate; if (rb.transform.localScale.x > 0) { holdPoint.position = new Vector3(rb.position.x + 0.5f, rb.position.y - 0.5f, 0); } else if (rb.transform.localScale.x < 0) { holdPoint.position = new Vector3(rb.position.x - 0.5f, rb.position.y - 0.5f, 0); } fire(); Audio_Control.PlaySound("GunShot4"); } else if (!Input.GetMouseButton(0)) { oldHoldingPoint(); } } }
// Use this for initialization void Start() { Intance = this; aus = gameObject.GetComponent <AudioSource>(); }