/* * void OnBecameInvisible() * { * Debug.Log("Off Scren"); * GetComponent<FMODUnity.StudioEventEmitter>().Stop(); * } * * void OnBecameVisible() * { * Debug.Log("On Scren"); * GetComponent<FMODUnity.StudioEventEmitter>().SetParameter("Female_Fly", this.Gender); * GetComponent<FMODUnity.StudioEventEmitter>().Play(); * } */ public void Caught() { GetComponent <NodeMovement>().setState(NodeMovement.MoveState.caught); GetComponent <NodeMovement>().dropFood(); FlyState = FlyStates.Caught; }
// Use this for initialization void Start() { FoodManager.OnPickUpFood += SomeFoodPickedUp; FlyState = FlyStates.Free; Gender = Random.Range(0, 1); Gender = 0; }
IEnumerator KDTFly() { kdtHandle.gameObject.SetActive(true); float maxSpeed = Random.Range(flyMinSpeed, flyMaxSpeed); float currentSpeed = maxSpeed; //Position float x = Random.Range(flyInitialXRange * -1, flyInitialXRange); kdtHandle.position = new Vector3(x, flyInitialY, 0f); //Rotation kdtHandle.localEulerAngles = new Vector3(0f, 0f, 0f); float yRot = Random.Range(flyMinYRotation, flyMaxYRotation); kdt.localEulerAngles = new Vector3(0, yRot, 0); //Face matFace.mainTextureOffset = new Vector2(0f, 0); //Shield kdtShield.SetActive(false); //Animation kdtAnimator.SetInteger("Animation", 8); bool blink = Random.Range(0f, 100f) <= chancesToBlink; float blinkY = Random.Range(blinkMinY, blinkMaxY); FlyStates state = FlyStates.FLYING_1; yield return(null); float elapsedTime = 0f; while (kdt.position.y < flyFinalY) { kdtHandle.Translate(0f, maxSpeed * Time.deltaTime, 0f, Space.World); yield return(null); switch (state) { case FlyStates.FLYING_1: kdtHandle.Translate(0f, maxSpeed * Time.deltaTime, 0f, Space.World); if (blink && kdtHandle.position.y >= blinkY) { state = FlyStates.STOPPING; //matFace.mainTextureOffset = new Vector2(-0.34f, -0.3f); elapsedTime = 0f; } break; case FlyStates.STOPPING: if (elapsedTime < blinkStoppingTime) { elapsedTime += Time.deltaTime; currentSpeed = maxSpeed * Mathf.Cos((elapsedTime / blinkStoppingTime) * (Mathf.PI / 2)); kdtHandle.Translate(0f, currentSpeed * Time.deltaTime, 0f, Space.World); } else { kdtAnimator.SetInteger("Animation", 9); state = FlyStates.BLINK; } break; case FlyStates.BLINK: yield return(new WaitForSeconds(0.25f)); matFace.mainTextureOffset = new Vector2(-0.34f, -0.3f); yield return(new WaitForSeconds(blinkTime)); matFace.mainTextureOffset = new Vector2(0f, 0f); yield return(new WaitForSeconds(0.25f)); state = FlyStates.STARTING; kdtAnimator.SetInteger("Animation", 8); elapsedTime = 0f; break; case FlyStates.STARTING: if (elapsedTime < blinkStartingTime) { elapsedTime += Time.deltaTime; currentSpeed = maxSpeed * Mathf.Sin((elapsedTime / blinkStartingTime) * (Mathf.PI / 2)); kdtHandle.Translate(0f, currentSpeed * Time.deltaTime, 0f, Space.World); } else { state = FlyStates.FLYING_2; } break; case FlyStates.FLYING_2: kdtHandle.Translate(0f, maxSpeed * Time.deltaTime, 0f, Space.World); break; default: break; } yield return(null); } kdtHandle.gameObject.SetActive(false); showTimeEnabled = true; }
public void AtTable() { GetComponent <NodeMovement>().setState(NodeMovement.MoveState.caught); FlyState = FlyStates.AtTable; }