Code Block References
Eng & Kor
PlayerBehaviour Class - Key Functions
void Start()
{
m_camera = Camera.main;
m_PlayerSprite = GetComponent<SpriteRenderer>();
if (m_PlayerSprite != null)
{
SetPlayerBoundaryCameraPerspective();
SetPlayerPositionCameraPerspective();
}
}
void SetPlayerBoundaryCameraPerspective()
{
float playerHalfSizeY = m_PlayerSprite.bounds.size.y * 0.5f;
float cameraPosY = m_camera.transform.position.y;
m_boundary.min = cameraPosY - m_camera.orthographicSize + playerHalfSizeY;
m_boundary.max = cameraPosY + m_camera.orthographicSize - playerHalfSizeY;
}
void SetPlayerPositionCameraPerspective()
{
float playerSizeX = m_PlayerSprite.bounds.size.x;
float cameraPosX = m_camera.transform.position.x;
float startX = cameraPosX - m_camera.orthographicSize * m_camera.aspect + playerSizeX;
float startY = (m_boundary.min + m_boundary.max) * 0.5f;
transform.position = new Vector3(startX, startY, 0f);
m_fixedPlayerPosX = startX;
}
void ClampPlayerYPosition()
{
float clampedY = Mathf.Clamp(transform.position.y, m_boundary.min, m_boundary.max);
transform.position = new Vector2(m_fixedPlayerPosX, clampedY);
}