繁体   English   中英

将播放器旋转更改为相机旋转

[英]Changing player rotation to a camera rotation

我是团结的新手,目前正在开发类似门户的游戏。

我完成了整个隐形传送脚本,并且可以正常工作,但是问题来了,我没有实现播放器摄像头校正,实际上我不知道该怎么做。 其概念是,当您通过门户跳跃时,应将玩家(或玩家摄像机)的旋转更改为来自您的门户/门户摄像机的旋转,以使最终效果更加“真实”。

我已经尝试了player.transform.rotation = portal.transform.rotation传送脚本中的某些行,例如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:我有一个脚本可以在播放器移动时准确地移动它们,它确实可以工作,但是也存在一些问题,例如相机可能离门户太远,只能开始渲染盒子的绿色外侧,而我也没有知道如何解决它,所以目前我没有使用此脚本)
  • 我正在使用的玩家移动是来自统一标准资产(如果有问题的话)
  • 玩家的身体僵硬,但传送门却没有; 不知道我是否应该将此组件附加到他们
  • 传送脚本附加到两个门户上-'otherPortal'变量从检查器中移出,就像在橙色门户中,'otherPortal'变量是蓝色门户一样,反之亦然

您所做的是正确的(将玩家旋转设置为门户。您可以在设置位置后在onTriggerEnter进行操作,然后看起来像

player.transform.rotation = otherPortal.transform.rotation

如果这样做,播放器将具有相同的旋转角度。 您已经拥有使照相机跟随播放器的功能,因此可能不需要设置照相机旋转角度。 我不知道您的相机如何操作,所以我不确定。 如果摄像机的方向不正确,则执行Camera.main.transform.rotation = otherPortal.transform.rotation

剩下的可能是您的播放器(和照相机)没有朝向右轴。 在您的视频上,我可以看到门户面向x轴(Unity编辑器中的红色轴)。 检查前进时,播放器的红色轴是否向前。

您的播放器很有可能具有z轴(蓝色)朝前,(按照惯例)更正确,并且适​​合Unity使用的名称(z轴也称为前向轴)

我建议创建门户对象(以及其他所有对象,包括播放器),以使前向轴为蓝色。 可能需要编辑对象。 在任何情况下,请检查玩家前进轴是否与传送门相同,否则无法设置旋转角度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM