Я создал многопользовательскую игру с Photon in Unity. Игрок - это катящийся мяч, я хочу установить камеру для каждого игрока, но он не может быть дочерним по отношению к мячу, иначе он будет вращаться. Без фотона он работал со сценарием на камере, но теперь с мультиплеером камера не следует за катящимся мячом. Как я могу это исправить?
Как позволить камере следовать за катящимся шаром с фотоном в единстве
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
Я пробовал код, но он просто помещает камеру на мяч (это хорошо), но когда я двигаю мяч, камера не следует.
- person user5049500; 25.06.2015
Вы должны поместить его в функцию void Update.
- person Yaşarcan Kasal; 26.06.2015
Я сделал это, думаю, что-то с фотоном. Но теперь все в порядке, я воспользовался советом 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