尝试使用C#转换游戏对象统一的位置

时间:2019-10-29 20:19:34

标签: c# unity3d light

在尝试更改游戏对象的位置及其速度时,我需要一些帮助。我知道要翻译gameObject,但我不知道如何提高它翻译的速度。顺便说一下,我正在使用统一游戏引擎。

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

public class lightning : MonoBehaviour
{
    //This is lightning
    private GameObject name;

    // Start is called before the first frame update
    void Start()
    {
       name=GameObject.Find("car");
    }

    // Update is called once per frame
    void Update()
    {
     if (Input.Keydone("r")
       door.transform.Translate(-Vector3.right * Time.deltaTime);
    }
}

2 个答案:

答案 0 :(得分:0)

您可以使用的一种解决方法是覆盖整个屏幕的UI层上的黑色滤镜(最好是Image)。您可以相应地更改滤镜的不透明度,以达到屏幕变暗的感觉。

答案 1 :(得分:0)

听起来您在速度和加速度方面遇到问题。
我添加了速度变量和加速度变量,这两个变量可以使对象随时间推移而越来越快。

由于这是物理学,因此建议您在游戏对象上使用刚体 并控制其速度或施加力(力=质量*加速度) 因此,通过施加力可以使物体加速。

//This is lightning
private GameObject name;
private float speedFactor = 20;
private float accelearationFactor = 5;

// Start is called before the first frame update
void Start()
{
   name=GameObject.Find("car");
}

// Update is called once per frame
void Update()
{
 if (Input.Keydone("r") {
   door.transform.Translate(-Vector3.right * speedFactor * Time.deltaTime);
   speedFactor += accelearationFactor * Time.deltaTime;
 }
}