SmoothFollow2D调整

时间:2014-04-21 00:16:30

标签: unity3d

我已经将这个标准资产脚本应用到我的相机进行2D游戏,它实际上做得很好但是因为我的背景纹理被放置在一个四边形中,“跟随”玩家而不是相机以更高的移动速度相机在播放器后面太远或太多,并且不在视线范围内。

由于我从未在JS中编程,我想问你如何调整此代码以阻止脚本在速度结束时移动相机(例如)5f。

我试图以这种方式改变它:

var target : Transform;
var smoothTime = 0.3;
private var thisTransform : Transform;
private var velocity : Vector2;



function Start()
{
   thisTransform = transform;
}



function Update()

{

   if(velocity.x > 5f) //in C# I'd do it this way, but apparently

   velocity.x = 5f; //this is not stopping the camera from getting out of game-sight


   thisTransform.position.x = Mathf.SmoothDamp( thisTransform.position.x,
   target.position.x, velocity.x, smoothTime);
   thisTransform.position.y = Mathf.SmoothDamp( thisTransform.position.y,
   target.position.y, velocity.y, smoothTime);

}

这可能是因为我实际上是将参考作为参数传递(velocity.x称为参考http://docs.unity3d.com/Documentation/ScriptReference/Mathf.SmoothDamp.html

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确。

如果您想设置相机的最高速度,Mathf.SmoothDamp()可以设置maxSpeed。

var maxSpeed : float = 5.0f;
Mathf.SmoothDamp(transform.position.x, target.position.x, velocity.x, smoothTime, maxSpeed);