Как позволить камере следовать за катящимся шаром с фотоном в единстве

Я создал многопользовательскую игру с Photon in Unity. Игрок - это катящийся мяч, я хочу установить камеру для каждого игрока, но он не может быть дочерним по отношению к мячу, иначе он будет вращаться. Без фотона он работал со сценарием на камере, но теперь с мультиплеером камера не следует за катящимся мячом. Как я могу это исправить?


person user5049500    schedule 25.06.2015    source источник
comment
Вместо этого, чтобы упростить задачу, вы можете разделить мяч на два объекта. Пустой родительский объект, который вы перемещаете в контрольную позицию, вы присоединяете к нему свой объект камеры / камеры, затем вы добавляете дочерний объект к этому родительскому объекту, который является «моделью» игрока, вы должны вращать этот объект. Таким образом, движение связано как с моделью, так и с камерой, но вращение привязано только к модели.   -  person mGuv    schedule 25.06.2015
comment
Я хочу, чтобы камера была не на плеере, а на расстоянии + -10   -  person user5049500    schedule 25.06.2015
comment
Если камера прикреплена как собственный объект, вы можете расположить ее где угодно, и она останется относительно игрока.   -  person mGuv    schedule 25.06.2015
comment
Спасибо за помощь, теперь все работает.   -  person user5049500    schedule 25.06.2015


Ответы (2)


Вам нужно создать сценарий и добавить его в свою камеру.

public GameObject player = GameObject.Find("Player");

this.transform.position = new Vector3(player.transform.position.x, player.transform.position.y, transform.position.z);

Таким образом, ваш плеер всегда находится в центре вашей камеры.

person Yaşarcan Kasal    schedule 25.06.2015
comment
Я пробовал код, но он просто помещает камеру на мяч (это хорошо), но когда я двигаю мяч, камера не следует. - person user5049500; 25.06.2015
comment
Вы должны поместить его в функцию void Update. - person Yaşarcan Kasal; 26.06.2015
comment
Я сделал это, думаю, что-то с фотоном. Но теперь все в порядке, я воспользовался советом mGuv. Благодаря - person user5049500; 26.06.2015

Вы должны добавить этот фрагмент кода.

GameObject player;
Vector3 cameraOffset;

void Start()
{
    player = GameObject.Find("Player");
    cameraOffset = new Vector3(0f, 0f, 0f)
}

void Update()
{
    transform.position = new Vector3(player.transform.position.x + cameraOffset.x, player.transform.position.y + cameraOffset.y, player.transform.position.z + cameraOffset.z);
}

и прикрепите его к сценарию вашей камеры. Я поставил смещение как (0,0,0), но вы должны установить смещение, чтобы ваша камера не попадала внутрь GameObject вашего игрока, но величина соответствует вашим критериям.

person RJD    schedule 26.06.2015