我已经将这个标准资产脚本应用到我的相机进行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)
答案 0 :(得分:0)
我不确定我是否理解正确。
如果您想设置相机的最高速度,Mathf.SmoothDamp()可以设置maxSpeed。
var maxSpeed : float = 5.0f;
Mathf.SmoothDamp(transform.position.x, target.position.x, velocity.x, smoothTime, maxSpeed);