private void Update() { rayPos = this.transform.position + new Vector3(0.3f * rayDir.x, 0.3f * rayDir.y, 0); lr.enabled = isActivate; BlobA.SetActive(isActivate); BlobB.SetActive(isActivate); if (player.dead == true || player.isTransitioning == true) { StartCoroutine(Reset(player.isTransitioning)); } if (isMove == true && isActivate == true) { velocity = MoveSpeed * dir; rb.velocity = velocity; RaycastHit2D hit = Physics2D.Raycast(transform.position + (Vector3)rayDir * 0.01f, velocity.normalized, hitDist, ~((1 << 10) | (1 << 2) | (1 << 11) | (1 << 1) | (1 << 9))); if (hit.collider != null && hit.collider.isTrigger == false) { dir = -dir; } } else { velocity = rb.velocity; rb.velocity = Vector2.zero; } if (isActivate == true) { t += Time.deltaTime; float scale = (Mathf.Sin(40 * t) * 0.075f + 0.6f); lr.widthMultiplier = (Mathf.Sin(40 * t) * 0.04f + 0.4f); BlobA.transform.localScale = new Vector3(scale, scale); BlobB.transform.localScale = new Vector3(scale, scale); bool dohit = false; lr.SetPosition(0, rayPos); Vector2 LimitPos = (Vector2)transform.position + rayDir * 100; RaycastHit2D hit = Physics2D.Raycast(transform.position + (Vector3)rayDir * 0.01f, rayDir, 200, ~((1 << 10) | (1 << 2) | (1 << 11) | (1 << 9))); if (hit.collider != null && hit.collider.isTrigger == false) { lr.SetPosition(1, hit.point); BlobA.transform.position = new Vector3(hit.point.x, hit.point.y, -9); dohit = true; if (hit.collider.gameObject.tag == "Player") { player.dead = true; StartCoroutine(Reset(false)); } } if (dohit == false) { lr.SetPosition(1, LimitPos); BlobA.transform.position = LimitPos; } BlobB.transform.position = rayPos; } }
private void Update() { rayPos = this.transform.position + new Vector3(0.3f * rayDir.x, 0.3f * rayDir.y, 0); lr.enabled = isActivate; BlobA.SetActive(isActivate); BlobB.SetActive(isActivate); if (isActivate) { t += Time.deltaTime; float scale = (Mathf.Sin(40 * t) * 0.075f + 0.6f); lr.widthMultiplier = (Mathf.Sin(40 * t) * 0.04f + 0.4f); BlobA.transform.localScale = new Vector3(scale, scale); BlobB.transform.localScale = new Vector3(scale, scale); bool dohit = false; lr.SetPosition(0, rayPos); Vector2 LimitPos = (Vector2)transform.position + rayDir * 100; RaycastHit2D hit = Physics2D.Raycast(transform.position + (Vector3)rayDir * 0.01f, rayDir, 200, ~((1 << 10) | (1 << 2) | (1 << 11) | (1 << 9))); if (hit.collider != null && hit.collider.isTrigger == false) { lr.SetPosition(1, hit.point); BlobA.transform.position = new Vector3(hit.point.x, hit.point.y, -9); dohit = true; if (hit.collider.gameObject.tag == "Player") { player.dead = true; } } if (dohit == false) { lr.SetPosition(1, LimitPos); BlobA.transform.position = LimitPos; } BlobB.transform.position = rayPos; } }