阻止我的相机关闭

时间:2014-06-06 13:15:52

标签: unity3d unityscript

这是我的脚本(用JavaScript编写),可以创建相机移动。我无法弄清楚如何制作它以便我可以让它不要太靠近物体(目标)。这可能是一件简单的事情,但我是Unity的一个菜鸟。

如果无法通过修改现有代码来获取它,您能否提出另一种方法来获得所需的动作?

#pragma strict
var target : Transform;
var localOffset = Vector3(0,0,0);
var finalPos : Vector3;
var currentPos : Vector3;
var speed = 0.01;
private var startTime: float;
private var journeyLength: float;

function Start() {
    startTime = Time.time;
}

function Update () {
    currentPos = transform.position;
    finalPos = target.position + (target.up * localOffset.z);
    finalPos = target.position + (target.forward * localOffset.x);
    transform.LookAt(target.position);

    journeyLength = Vector3.Distance(transform.position, finalPos);
    var distCovered = (Time.time - startTime) * speed;
    var fracJourney = distCovered / journeyLength;

    transform.position = Vector3.Lerp(transform.position, finalPos, fracJourney);
}

2 个答案:

答案 0 :(得分:1)

如果您替换了代码,则代码中存在一个小错误:

finalPos = target.position + (target.up * localOffset.z);
finalPos = target.position + (target.forward * localOffset.x);

使用:

finalPos = target.position + (target.up * localOffset.z);
finalPos += (target.forward * localOffset.x);

你会得到你想要的吗?

答案 1 :(得分:1)

我会使用Vector3.Distance

function Update() 
{

...

if (Vector3.Distance(target.position, transform.position) > 10) // Change '10' to any distance that you want as a minimum
{
    transform.position = Vector3.Lerp(transform.position, finalPos, fracJourney);
}

希望这会有所帮助:)