我想在开始时保存cursor
的初始位置,在移动cursor
并释放鼠标按钮后,它应该返回到其原始位置(使用10f * Time.deltaTime
),但这不起作用
[SerializeField] private Transform cursor;
private Vector3 OriginalPosition;
void Start()
{
OriginalPosition = cursor.transform.position;
Debug.Log(OriginalPosition);
}
void OnMouseUp()
{
Debug.Log("MouseUp");
cursor.transform.position = Vector3.MoveTowards(cursor.position, OriginalPosition, 10f * Time.deltaTime);
}
1条答案
按热度按时间jm81lzqq1#
问题是,您假设调用MoveForward将使游戏对象一直回到原始位置,但这不会发生,您实际上是在对光标说“当我释放鼠标按钮时,计算我的当前位置和原始位置之间的方向,并且以每秒10个单位的速度移动它在1帧中的量”。你需要做的是在N帧的时间内进行MoveToward操作,为了实现这一点,你需要使用一个协程,所以遵循类似的代码
希望这对