Unity中的单独相机和播放器移动

时间:2017-10-26 16:13:20

标签: c# unity3d camera

我目前正在尝试编写一个让玩家聚焦的相机脚本,可以移动到与玩家自己的动作无关。 您可以使用正确的xBox控制器控制相机。 相机应该在X轴上在播放器周围的轨道上正常移动,但是如果你将相机向上或向下移动(比如20°向上),它应该是0°,如果你放开了它,它应该再次聚焦玩家操纵杆和这两个角度之间的插值。

在我的脚本中,相机可以向上和向下查看(但程度尚未锁定,因此您可以将其在Y轴上移动360°+),但它会重置为0°。另外,x轴不像我想要的那样表现,因为它能够围绕播放器旋转但只有180°然后停止,如果你让控制器走了它也会设置它的值(我不想要对于x轴)。

相机是空游戏对象的子对象。该脚本附加到空游戏对象。

我试图解决这个问题〜3天以后我会非常感激任何小建议。 在此先感谢&这是我的剧本:

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

public class CameraFollowPlayer : MonoBehaviour
{

    public GameObject target;
    public GameObject cameraRig;
    public float rotateSpeedX = 90.0f;
    public float rotateSpeedY = 5f;

    float cameraAngle;

    float startCameraAngle;

    Vector3 offset;
    Vector3 currentOffset;

    public float minRotationY;
    public float maxRotationY;

    bool isCameraMoving;

    void Start()
    {
        offset = transform.position - target.transform.position;

        cameraAngle = transform.localEulerAngles.z;
        startCameraAngle = cameraAngle;
        currentOffset = offset;

    }

    void Update()
    {

        transform.position = target.transform.position + currentOffset; // Folgt dem Spieler

        float hor = Input.GetAxis("RightJoystickX") * rotateSpeedX; // Input rechter Joystick
        float ver = Input.GetAxis("RightJoystickY") * rotateSpeedY;



        if (!Mathf.Approximately (hor, 0)) {
            transform.RotateAround (target.transform.position, Vector3.up, hor);
            currentOffset = transform.position - target.transform.position;

        }   

        if (!Mathf.Approximately (ver, 0)) {

            cameraAngle += 110f * Time.deltaTime;

            transform.RotateAround (target.transform.position, Vector3.up, hor);
            currentOffset = transform.position - target.transform.position;
            print(ver);

        }

        else if (ver <= 0.8f) {
            //cameraAngle = Mathf.Lerp(cameraAngle, startCameraAngle, 1f - 0.1f * Time.deltaTime);
            cameraAngle = startCameraAngle;
        }

        transform.localEulerAngles = new Vector3(0, hor, cameraAngle);


    }




}

1 个答案:

答案 0 :(得分:0)

如果sb用Google搜索了这个并发现我的问题,这对我有用:

max_execution_time - 10240
log_errors_max_len - 1024
max_file_uploads - 500
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 4096M
post_max_size - 1000M
sql.safe_mode - Off
upload_max_filesize - 1000M
ldap.max_links - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
odbc.max_links - Unlimited
odbc.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - no value
session.gc_maxlifetime - 7200
wincache.maxfilesize - 2048
wincache.ttlmax - 1200