平滑相机遵循基于体素的球体

时间:2016-09-15 05:31:17

标签: unity3d camera

我是Unity的新手,昨天在Unity3d的学习页面上滚动球示例之后就完成了。

为了练习我所学到的东西,我想尝试用自己的艺术重建类似的东西,让游戏与众不同。我一直在玩Voxel Art,我正在使用MagicaVoxel创建我的组合。我创造了墙壁,地面等......一切都很好。

然后是玩家对象,球体。我用magicaVoxel创建了尽可能靠近球体的一个并且它很好地滚动。但是,当使用脚本让摄像机跟随对象时会遇到问题。

如果我不约束Y轴,那么我将会弹跳,就x和z轴而言,我会得到一种平坦的轮胎效果。基本上相机没有顺利地跟随它反弹,停止去等......

我已经尝试使对撞机比球体更大,甚至使用对撞机的位置与对象本身。我也尝试将代码放在Update / FixedUpdate / LateUpdate中。修复或解决此类问题的正确方法是什么?以下是我的脚本:

相机控制器:

public class CamController : MonoBehaviour {

public GameObject player;
private Vector3 offset;

void Start ()
{
    // Get the distance between the player ball and camera.
    offset = this.transform.position - player.transform.position;
}  

void LateUpdate ()
{       
    this.transform.position = player.transform.position + offset;
}
}

玩家控制器:

public class PlayerController : MonoBehaviour {

public float _speed;

void FixedUpdate()
{
    // Get input from keyboard.
    float _hoz = Input.GetAxis("Horizontal");
    float _ver = Input.GetAxis("Vertical");

    // Create a vector3 based on input from keyboard.
    Vector3 _move = new Vector3(_hoz, 0.0f, _ver);

    // Apply force to the voxel ball
    this.GetComponent<Rigidbody>().AddForce(_move * _speed);
}
}

感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用Unity自己的SmoothFollow脚本来顺利跟踪相机。

以下是获取脚本的步骤: 1)资产 - &gt;导入包 - &gt;脚本。 2)在出现的对话框中选择所有脚本,或者只需顺利跟随,然后单击“导入”按钮。 3)现在这个脚本在您的项目中,您可以将它附加到相机。

希望这会对你有帮助......

最佳,  Hardik。