Я новичок в Unity и в настоящее время работаю над игрой, подобной порталу.
Я выполнил весь сценарий телепортации, и он работает, но проблема в том, что я не реализовал плееркоррекция камеры и на самом деле у меня нет никаких идей, как это сделать.Концепция заключается в том, что когда вы прыгаете через портал, вращение игрока (или камеры игрока) должно быть изменено на вращение портала / камеры портала, которое вы получили, чтобы окончательный эффект был более «реалистичным».
Я пробовал некоторые строки в сценарии телепортации, например player.transform.rotation = portal.transform.rotation
, но в итоге это не сработало, и теперь я ничего не получаю, удаляя предыдущие сценарии и пытаясь писать его снова и снова.
Я буду рад, если кто-нибудь может подсказать мне, как начать кодировать его.Должен ли я сделать это в onTriggerEnter
(когда вы перепрыгиваете через портал) или в onTriggerExit
?Должен ли скрипт быть прикреплен к плееру или порталу?Должен ли я собирать вращение только с камеры или со всего игрового объекта (портала / игрока)?Я также публикую пару экранов (с видео, как это работает в настоящее время, а также весь сценарий телепортации. Если я что-то пропустил, просто спросите меня, и я опубликую это здесь.
https://imgur.com/a/pbqYnLD - экраны с инспектором порталов
https://streamable.com/b14hk - видео, как это работает
скрипт телепортации:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Teleportation : MonoBehaviour {
[SerializeField] private GameObject otherPortal;
[SerializeField] private GameObject player;
void OnTriggerEnter(Collider col) {
if(col.tag == "Player") {
col.transform.position = new Vector3(otherPortal.transform.position.x+1, otherPortal.transform.position.y+1, otherPortal.transform.position.z+1);
Debug.Log("wszedłem w portal");
}
}
void Update() {
}
}
некоторые сведения о том, как это кодируется прямо сейчас:Порталы
- в настоящее время находятся в игре за «коробкой», я их нигде не создавал, просто меняя положение на lpm (синий портал) и ppm (оранжевый портал)
- порталы торчатк стенам, как и в оригинальной игре, к порталам
- прикреплена камера, и сейчас камеры статичны. (offtop: у меня есть скрипт для перемещения их точно во время движения игрока, и он вполне работаетно также есть некоторые проблемы, например, камера может зайти слишком далеко от портала и начать рендеринг только этой зеленой внешней стороны окна, и я также не знаю, как это исправить, поэтому в настоящее время я не использовал этот скриптt)
- движение игрока, которое я использую, состоит в том, что из стандартных активов единицы (если это как-то имеет значение)
- игрок имеет твердое тело, но порталы не делают;не уверен, стоит ли мне прикреплять к ним этот компонент * Скрипт телепортации
- присоединен к обоим порталам - переменная otherPortal перемещена из инспектора, как в оранжевом портале переменная otherPortal - синий портал, аДругой способ