Esempio n. 1
0
 protected void Reset()
 {
     m_chargeNormal = Color.white;
     m_chargeStarted = Color.cyan;
     m_chargeReadyToRelease = Color.yellow;
     m_chargeFull = Color.red;
     // not efficient, but useful if you forget to set your reference in the inspector
     m_chargeUp = GameObject.FindObjectOfType(typeof(ChargeUp)) as ChargeUp;
 }
Esempio n. 2
0
    void Update()
    {
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;
        int        layerMask = 1 << LayerMask.NameToLayer("InterfacePlane");
        bool       hit       = Physics.Raycast(ray, out hitInfo, 100.0f, layerMask);

        if (hit)
        {
            pivot.transform.LookAt(hitInfo.point);
        }

        if (Input.GetMouseButtonDown(0))
        {
            fireball = Instantiate(fireballPrefab) as GameObject;
            fireball.transform.parent        = emitter;
            fireball.transform.localPosition = Vector3.zero;
            charging        = true;
            chargingStarted = Time.time;
        }

        if (charging)
        {
            ChargeUp fireballCharge = fireball.GetComponent <ChargeUp>();
            if (Input.GetMouseButtonUp(0))
            {
                Vector3 pivotPos   = pivot.position;
                Vector3 emitterPos = emitter.position;
                Vector3 direction  = (emitterPos - pivotPos).normalized;
                fireball.transform.parent = null;
                fireballCharge.direction  = direction;
                fireball.rigidbody.AddForce(direction * 20.0f, ForceMode.VelocityChange);
                charging = false;
            }
            else
            {
                float diffTime    = Time.time - chargingStarted;
                float chargeLevel = Mathf.Min(diffTime / 3.0f, 1.0f);
                fireballCharge.chargeLevel = chargeLevel;
            }
        }
    }
 protected void Reset()
 {
     // not efficient, but useful if you forget to set your reference in the inspector
     m_chargeUp = GameObject.FindObjectOfType(typeof(ChargeUp)) as ChargeUp;
 }