Я не уверен, какое поведение вы подразумеваете под "не работает", но, возможно, это потому, что вы декларируете camoriginposition
на каждом Update()
, что определенно было бы нежелательным поведением. Всякий раз, когда вы пытаетесь сохранить исходную позицию вашей камеры в переменной local , она исчезнет, когда закончится область действия Update()
, и будет снова инициализирована новым вызовом Update()
.
You должны отделить camoriginposition
от Update()
, например:
private Vector3 camoriginposition;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
...
}
И, похоже, есть еще одна проблема. Вы сохраняете camoriginposition
при каждом щелчке мыши, но с вашим описанием, кажется, что он должен быть сохранен, когда луч на самом деле поражает игровой объект.
Вы должны переместиться camoriginposition = Camera.main.transform.position;
в
if (rb = hit.transform.GetComponent<Rigidbody>())
блок.