多维数据集翻译

时间:2018-10-15 07:43:58

标签: c# unity3d unityscript

我不明白为什么我的立方体不能沿Z的fineMovimento(endMovement)vector3位置平移。

以下是脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MovimentoPorta : MonoBehaviour {

    public Transform target;
    Vector3 fineMovimento = new Vector3(221.04f, -8.98f,329);
    void Update () {
        if (Input.GetKeyDown(KeyCode.P))
        {
            while (target.position != fineMovimento)
            {
                target.Translate (Vector3.forward*10.0f*Time.deltaTime); //il cubo si doverbbe muovere lungo l'asse Z +
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

请勿使用while(...)中的void Update()进行翻译(因为在播放模式下按 P 时Unity会挂起)。如果您想平稳地移动到fineMovimento,一种方法是使用Vector3.Lerp()

尝试一下:

public Transform target;
Vector3 fineMovimento;
float smoothTime = 0.125f;

void Start()
{
    fineMovimento = target.position; // Initialize
}

void Update () 
{
    target.position = Vector3.Lerp(target.position, fineMovimento, smoothTime);

    if (Input.GetKeyDown(KeyCode.P))
    {
        fineMovimento = new Vector3(221.04f, -8.98f,329); // Set end position
    }
}

希望这是您想要的。