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); } }
void Start() { defaultPos = transform.localPosition; state = fallState.normal; transform.GetComponent <Rigidbody2D>().isKinematic = true; // バグ回避 if (createTime < fallTime) { createTime = fallTime * 2; } StartCoroutine(Floating()); }