Я пытаюсь заставить мой плеер плавать вверх и вниз, но останавливаюсь, когда удерживаю нажатой кнопку мыши. Отпустив левую кнопку мыши, я хочу, чтобы игрок продолжал плавать с той же позиции. Пока мой код может делать все это, за исключением того, что игрок продолжает плавать с позиции, на которой он был остановлен. Вместо этого игрок останавливается, но затем продолжает плавать с того места, где он был бы, если бы я не остановил его с самого начала.
public float amplitude = 0.5f;
public float frequency = 1f;
void Start()
{
rigidbody = GetComponent<Rigidbody2D>();
// Store the starting position & rotation of the object
posOffset = transform.position;
isClick = false;
}
void Update()
{
if (Input.GetMouseButton(0))
{
isClick = true;
}
if (Input.GetMouseButtonUp(0))
{
isClick = false;
}
if (isClick)
{
rigidbody.constraints = RigidbodyConstraints2D.FreezePositionY;
curPos = GetComponent<Rigidbody2D>().position;
}
if (!isClick)
{
tempPos = posOffset;
tempPos.y = Mathf.Sin(Time.fixedTime * Mathf.PI * frequency) * amplitude;
transform.position = tempPos;
}
}