Example #1
0
    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();
            }
        }
    }
Example #2
0
 // Use this for initialization
 void Start()
 {
     Intance = this;
     aus     = gameObject.GetComponent <AudioSource>();
 }