public void SetFingerPos(Vector2 pos) { if (first) { first = false; lastPos = pos; initPos = pos; SetPos(pos); } else { //根据手指位置调整 var diff = pos - initPos; var dir = pos - lastPos; lastPos = pos; //手指在中心半径范围内 50半径 相反运动 var mag = diff.magnitude; var external = this.con.ExternalRadius * LeftController.GetRate(); //手指在圆环外面 跟随手指移动 if (mag > external) { //initPos += dir; var fingerDir = pos - initPos; var distOff = fingerDir.normalized * external; initPos = pos - distOff; SetPos(initPos); } } }