Esempio n. 1
0
 // Use this for initialization
 void Start()
 {
     currentPistonState = pistonState.charge;
     chargedPosition    = transform.TransformPoint(-Vector3.forward);
     launchPosition     = transform.TransformPoint(Vector3.forward * maxDistance);
     if (!activable)
     {
         Invoke("Initiate", delayedTime);
     }
 }
Esempio n. 2
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (!canStart)
        {
            return;
        }

        //Debug.Log(currentPistonState);
        switch (currentPistonState)
        {
        case pistonState.charge:
            transform.position = Vector3.Lerp(transform.position, chargedPosition, chargeVelocity * Time.deltaTime);
            if (Vector3.Distance(transform.position, chargedPosition) < 0.5f)
            {
                currentPistonState = pistonState.ready;
                //Debug.Log(currentPistonState);
            }
            break;

        case pistonState.ready:
            if (!isReady)
            {
                isReady = true;
                Invoke("ReadyCooldown", 1f);
            }
            break;

        case pistonState.launch:
            transform.Translate(Vector3.forward * launchPower * Time.deltaTime);
            //transform.position = Vector3.Lerp(transform.position, launchPosition, launchPower);
            if (Vector3.Distance(transform.position, launchPosition) < 0.5f)
            {
                currentPistonState = pistonState.charge;
                //Debug.Log(currentPistonState);
            }
            break;

        default:
            break;
        }
    }
Esempio n. 3
0
 private void ReadyCooldown()
 {
     isReady            = false;
     currentPistonState = pistonState.launch;
     //Debug.Log(currentPistonState);
 }