void MoveOnPlanet() { //m_angleOnPlanet += m_moveSpeed * Time.deltaTime; m_position = NextPosition3d(m_angleOnPlanet, m_planet.transform.position, m_planet.GetRadius()); this.gameObject.transform.up = (transform.position - m_planet.transform.position).normalized; float modifier = Mathf.Clamp(Mathf.Sin(Time.time * m_sineAmp) + 1, 1, 1.5f); m_position += (modifier) * gameObject.transform.up * m_spriteRenderer.sprite.bounds.max.y / 2; this.gameObject.transform.position = m_position; }