void Fall() { bool transport = false; if (Physics2D.Raycast(currentPos, lastMoveDir, .05f, fallLayer)) { transport = Physics2D.Raycast(currentPos, lastMoveDir, .05f, fallLayer).collider.GetComponent <TransplantObject>(); } if (transform.localScale.x >= 1) { Cache.fadeToBlack.FadeInScreen(); } float scale = Mathf.Lerp(transform.localScale.x, 0, 3 * Time.deltaTime); if (scale > .1f) { transform.localScale = new Vector3(scale, scale, 1); } else { if (transport) { TransplantObject fallThrough = Physics2D.Raycast(currentPos, lastMoveDir, .05f, fallLayer).collider.GetComponent <TransplantObject>(); fallThrough.HoldPlayer(); fallThrough.MoveObject(gameObject); } else { RecoverPlayer(); } } }
void Fall() { bool transport = false; if (Physics2D.Raycast(currentPos, lastMoveDir, .05f, player.fallLayer)) { transport = Physics2D.Raycast(currentPos, lastMoveDir, .05f, player.fallLayer).collider.GetComponent <TransplantObject>(); } float scale = Mathf.Lerp(transform.localScale.x, 0, 2 * Time.deltaTime); if (scale > .1f) { transform.localScale = new Vector3(scale, scale, 1); } else { if (transport) { TransplantObject fallThrough = Physics2D.Raycast(currentPos, lastMoveDir, .05f, player.fallLayer).collider.GetComponent <TransplantObject>(); fallThrough.MoveObject(gameObject); } else { ResetTile(); } } }