Beispiel #1
0
    IEnumerator Vibrate(float factor)
    {
        int i = (int)(factor * 10);

        while (i-- > 0)
        {
            transform.position = factor / 2 * (RD.NextPositionf(1, 1, 1) - new Vector3(0.5f, 0.5f, 0.5f)) + transform.position;
            yield return(new WaitForSeconds(0.01f));
        }
    }
Beispiel #2
0
    private IEnumerator DoExplode()
    {
        // 震动一波摄像头
        mainCameraCMP.DoVibrate(transform.position);
        // 伤敌80,自损15
        health.DoAttack(15);

        // 爆炸部分
        int totalExplotions = 5;

        while (totalExplotions-- > 0)
        {
            Vector2 varing = RD.NextPositionf(1, 1);
            Vector3 pos    = transform.position + new Vector3(varing.x - 0.5f, -transform.localScale.y / 2 + 0.2f, varing.y - 0.5f);
            Instantiate(explotionPrefab, pos, Quaternion.identity);
            yield return(new WaitForSeconds(0.1f));
        }
    }
Beispiel #3
0
    IEnumerator DiedAnim()
    {
        GameObject.Find("CamPos").GetComponent <CameraController>().DoVibrate(transform.position);
        // do dieing ~~
        int num = 10;

        while (num-- > 0)
        {
            GameObject instance = Instantiate(explotionPrefab, this.transform);
            Vector3    deltaPos = RD.NextPositionf(1, 1, 1) - Vector3.one * 0.5f;
            instance.transform.position = instance.transform.position + deltaPos;
            yield return(new WaitForSeconds(0.2f));
        }
        yield return(new WaitForSeconds(1));

        // spawn Giant
        GameObject giant = Instantiate(giantPrefab, new Vector3(transform.position.x, 5, transform.position.z), Quaternion.identity);

        yield return(new WaitForSeconds(6));

        Destroy(transform.parent.gameObject);
    }