【问题标题】:Unityscript Make object move slowlyunityscript 让物体缓慢移动
【发布时间】:2014-09-27 16:20:54
【问题描述】:

所以我不知道为什么这不起作用。我问过我的老师,但他一点帮助也没有。在我的游戏中,我有一个物体,当它被触发时,会导致墙壁垂直缩回。但是,无论我如何摆弄它,对象都会自动捕捉到另一个位置,与它原来的位置无关。 (我可以使用不同的脚本来重新设置对象)。我向它添加了两个功能,因此它不会立即移动到新位置,而是会慢慢移动,但它似乎根本不起作用。

var door: GameObject;
var torch: GameObject;
var flame: GameObject;

function OnMouseDown(){
for(var count: int = 0; count < 10; count++)
    {
    door.transform.position = Vector3(0,0.1,0);
    torch.transform.position = Vector3(0,0.1,0);
    flame.transform.position = Vector3(0,0.1,0);
    yield WaitForSeconds(1.0);
    }
// move door out of way
}

【问题讨论】:

    标签: unity3d unityscript


    【解决方案1】:
     Vector3 dest=new Vector3(0,1,0); //set your destination position here , i set (0,1,0) set whatever
    public float smooth=2.0;
    
    function OnMouseDown(){
    door.transform.position = Vector3.Lerp (door.transform.position, , Time.deltaTime * smooth);
    torch.transform.position = Vector3.Lerp (torch.transform.position, , Time.deltaTime * smooth);
    flame.transform.position = Vector3.Lerp (flame.transform.position, , Time.deltaTime * smooth);
    }
    

    【讨论】:

      【解决方案2】:

      要缓慢移动对象,您可以使用Vector3.Lerp 从当前位置插入到目标位置。

      Vector3.Lerp(Vector3 from, Vector3 to, float t);
      
      transform.position = Vector3.Lerp(currentPosition, targetPosition, 0.1f);
      

      【讨论】:

      • 如何将值输入到该脚本中,究竟是什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      相关资源
      最近更新 更多