示例#1
0
 private void EggThrow()
 {
     _currentEgg.transform.parent = null;
     _eB = null;
     RigidBodySettings(true);
     _eggRigi.AddForce(_currentEgg.transform.forward * _force, ForceMode.Impulse); //YEET
     _force      = 0;
     _currentEgg = null;
     _noEgg      = true;
 }
示例#2
0
    void Update()
    {
        if (_noEgg) //SET UP THE EGG
        {
            _noEgg      = false;
            _currentEgg = Instantiate(Egg, _arm.transform.position, Quaternion.identity, _arm);
            _eggRigi    = _currentEgg.GetComponent <Rigidbody>();
            RigidBodySettings(false);
            _eB = _currentEgg.GetComponent <EggBroken>();
        }

        if (_currentEgg != null)
        {
            _currentEgg.transform.forward = _arm.forward;
        }


        if (Input.GetMouseButtonDown(0))
        {
            _force = MinThrowForce;
        }

        if (Input.GetMouseButton(0) && _force < MaxThrowForce)
        {
            _force           += Time.deltaTime * ForceDelta;
            _throwMeter.value = (_force / (MaxThrowForce - MinThrowForce)) - MinThrowForce / MaxThrowForce;

            _eB.CanBrake = (_throwMeter.value > 0.5) ? true : false;

            if (_throwMeter.value > 0.5f)
            {
                float ranInAcc = Random.Range(-InAccuraccyModifier, InAccuraccyModifier);

                Vector3 inAcc = new Vector3(0, ranInAcc, 0);
                _arm.localEulerAngles += inAcc;
            }
            else
            {
                _arm.localEulerAngles = new Vector3(_arm.localEulerAngles.x, 0, _arm.localEulerAngles.z);
            }
        }
        else if (Input.GetMouseButton(0) && _force >= MaxThrowForce)
        {
            _force = MaxThrowForce;
        }

        if (Input.GetMouseButtonUp(0))
        {
            EggThrow();
        }


        //pickup eggs
        Ray ray = new Ray();

        ray.direction = Camera.main.transform.forward;
        ray.origin    = Camera.main.transform.position;
        RaycastHit hit;

        if (Input.GetKeyDown("e"))
        {
            if (Physics.Raycast(ray, out hit))
            {
                if (hit.transform.gameObject != null)
                {
                    if (hit.transform.tag == "EggBasket")
                    {
                        EggBasketScript eggBasket = hit.transform.GetComponent <EggBasketScript>();

                        if (eggBasket.CurrentEggsInBasket > 0)
                        {
                            eggBasket.TakeEggsFromBasket(ref EggsInInventory);
                        }
                    }
                }
            }
        }
    }