Пример #1
0
    void Start()
    {
        currentState = darkCubeState.normal;

        darkCubeFace = transform.Find("face");

        // Blinking
        blinkTimeDuration = 0.0f;
        blinkTimeMax      = 0.01f;
        blinkIndex        = 0;
        oldBlinkIndex     = 0;
        playBlinkForward  = true;
        blinkingPlayed    = false;

        // Leer
        leerTimeDuration = 0.0f;
        leerTimeMax      = 0.02f;
        leerIndex        = 0;
        oldLeerIndex     = 0;
        playLeerForward  = true;
        leerPlayed       = false;
        longLeerCount    = 40;
        startLeerHold    = false;

        // Laughing
        laughingTimeDuration = 0.0f;
        laughingTimeMax      = 0.02f;
        laughingIndex        = 0;
        oldlaughingIndex     = 0;
        playlaughingForward  = true;
        laughingPlayed       = false;
        longlaughingCount    = 20;
        startlaughingHold    = false;

        // Damaged
        damagedTimeInterval = 0.0f;
        damagedTimeMax      = 2.0f;

        // Normal
        normalTimeDuration = 0.0f;
        normalTimeMax      = 2.0f;
        normalTimeToBlink  = false;
        normalTimeToLeer   = false;

        blinking = new List <Texture>();
        leer     = new List <Texture>();
        laughing = new List <Texture>();

        loadTextures();
    }
Пример #2
0
    void Update()
    {
        oldState = currentState;

        if (darkCubeCollisionScript.startDamage)
        {
            if (currentState != darkCubeState.damaged)
            {
                currentState = darkCubeState.damaged;
            }
        }

        if (darkCubeCollisionScript.startLaugh)
        {
            if (currentState != darkCubeState.laughing)
            {
                currentState = darkCubeState.laughing;
            }
        }

        if (currentState != oldState)
        {
            setCurrentFace(normalFace);

            resetBlinkingAnimation();
            resetLeerAnimation();
            resetLaughingAnimation();

            normalTimeToBlink = false;
            normalTimeToLeer  = false;
        }

        // Call correct face animation based on the current state
        switch (currentState)
        {
        case darkCubeState.normal:
            runNormalState();
            break;

        case darkCubeState.laughing:
            if (laughingPlayed)
            {
                currentState = darkCubeState.normal;
            }

            playLaughingAnimation();
            break;

        case darkCubeState.damaged:
            setCurrentFace(damagedFace);

            damagedTimeInterval += Time.deltaTime;
            if (damagedTimeInterval >= damagedTimeMax)
            {
                currentState = darkCubeState.normal;
                setCurrentFace(normalFace);
                damagedTimeInterval = 0.0f;
                startDamage         = false;
            }
            break;

        case darkCubeState.defeated:
            break;

        default:
            Debug.Log("'" + currentState + "' is not a valid dark cube face state.");
            break;
        }
    }