我如何制作一个摄像头,指向玩家要去的地方,并向后和向上,并指向向下?

问题描述 投票:0回答:1

它是一个实际滚动的球,所以我不能只是把一个子摄像机与一个偏移量,并呼吁它的一天,所以我创建了这个脚本。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class camera : MonoBehaviour
{
    public GameObject Player;
    public Vector3 lastpos;
    public Vector3 cameraxyz;
    public Vector3 camerarotationxyz;
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        Vector3 currentDirection = Player.transform.position - lastpos;
        transform.rotation = Quaternion.LookRotation(currentDirection-camerarotationxyz);
        transform.position = currentDirection + cameraxyz;
        Vector3 lastPos = Player.transform.position;
    }
}

把它连接到一个空的游戏对象上 让游戏对象成为球的子对象 然后让摄像机成为空游戏对象的子对象。

这一半的工作,空的游戏对象将总是旋转,以使它的Z轴与原点对齐,这意味着相机的偏移是错误的,它不会看球的地方,但会看向球。

我是这样设置层次结构的(我把脚本放在空的游戏对象上)。https:/i.stack.imgur.comsbiMt.png。

unity3d
1个回答
0
投票
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class camera : MonoBehaviour
{
    public GameObject Player;
    public Vector3 lastPos;
    public Vector3 cameraxyz;
    public Vector3 camerarotationxyz;
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        Vector3 currentDirection = Player.transform.position - lastPos;
        transform.rotation = Quaternion.LookRotation(currentDirection - new Vector3(0,currentDirection.y,0));
        Vector3 newPosition = currentDirection + cameraxyz;
        transform.position = newPosition;
        lastPos = Player.transform.position;
        transform.position = Player.transform.position;
    }
}

把Vector3从lastPos上移开,并把错误的地方大写,导致一个游戏对象有一个不正确的偏移和旋转,以阻止它跟踪y轴(因为我可以改变whay是向上的,并改变y是平行于重力使用一个外部脚本),我做了 (currentDirection - new Vector3(0,currentDirection.y,0) 新的Vector3是需要的,零也是需要的,因为float和int不能用来从Vector3中减去,那么我做了 transform.position = Player.transform.position; 这样,空的游戏对象就会正确地放在球上,然后让摄像机以正确的偏移移动,我让摄像机成为空的游戏对象的一个子对象。

© www.soinside.com 2019 - 2024. All rights reserved.