Пример #1
0
    void Update()
    {
        if (randingFlag || state == fallState.fall)
        {
            timer += Time.deltaTime;

            if (timer > fallTime / 2 && state == fallState.normal)
            {
                state = fallState.reach;
                if (!shakeFlag)
                {
                    StartCoroutine(Shake());
                    shakeFlag = true;
                }
            }
            else if (timer > fallTime && state == fallState.reach)
            {
                timer    = 0;
                state    = fallState.fall;
                fallFlag = true;
                transform.GetComponent <Rigidbody2D>().isKinematic = false;

                gameObject.layer = LayerMask.NameToLayer("FallBlock");
            }
        }

        if (timer > createTime && state == fallState.fall)
        {
            timer = 0;
            GameObject fallBlock = Instantiate(Resources.Load <GameObject>(blockPrefab));
            fallBlock.transform.SetParent(transform.root.transform);
            fallBlock.transform.localPosition = defaultPos;
            Destroy(gameObject);
        }
    }
Пример #2
0
    void Start()
    {
        defaultPos = transform.localPosition;
        state      = fallState.normal;
        transform.GetComponent <Rigidbody2D>().isKinematic = true;

        // バグ回避
        if (createTime < fallTime)
        {
            createTime = fallTime * 2;
        }

        StartCoroutine(Floating());
    }