【问题标题】:How can i rotate object smooth without stop?我怎样才能不停地旋转物体?
【发布时间】:2017-07-21 21:58:36
【问题描述】:

这是我现在使用的脚本:

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

 public class SpinObject : MonoBehaviour {



     // Use this for initialization
     void Start () {


     }

     // Update is called once per frame
     void Update ()
     {
         StartCoroutine(ContinuousRotation());
     }

     IEnumerator ContinuousRotation()
     {
         while (true)
         {
             transform.Rotate(Vector3.forward, 10);
             yield return new WaitForSeconds(5f);
         }
     }
 }

它正在旋转对象,但问题是无论我在运行游戏时设置什么时间,旋转速度都是相同的。我试过: yield return new WaitForSeconds(1f);然后是 5f 原来是 0.01f 但速度永远不会改变。

第二个问题是旋转使物体有些闪烁而不是闪烁,但对眼睛有些干扰,它并不是真正旋转平滑。也许问题出在速度上?

【问题讨论】:

    标签: c# unity3d rotation unity5


    【解决方案1】:

    与其跳过障碍来延迟事件,不如使用Time.timeTime.deltaTime

    例如:

    public class SpinObject : MonoBehaviour {
        float timeSinceLastRotation;
        float timeUntilNextRotation = 0.01f; // 0.01 seconds
    
        void Update () {
            if (timeSinceLastRotation + timeUntilNextRotation > Time.time) {
                transform.Rotate(Vector3.forward, 10);
                timeSinceLastRotation = Time.time
            }
        }
    }
    

    但是,这不是处理平滑旋转的理想方式,因为这会导致对象每 0.01 秒捕捉到下一个 10 度。相反,您应该使用Time.deltaTime,它返回自上一帧以来经过的时间。

    看起来像这样:

    public class SpinObject : MonoBehaviour {
        float rotationMultiplier = 1.0f;
    
        void Update () {
            transform.Rotate(Vector3.forward, Time.deltaTime * rotationMultiplier);
        }
    }
    

    这会导致对象旋转1 degree per second * rotationMultiplier 增加rotationMultiplier10.0f 可以达到每秒平滑10度。

    编辑 -

    我想添加来自 Unity Scripting API 的关于 Time.deltaTime 的修改摘录

    当您与 Time.deltaTime 相乘时,您实质上是在表达:我想要 以每秒 10 [度] 而不是每秒 10 [度] 移动此对象 框架。

    【讨论】:

      猜你喜欢
      • 2021-04-26
      • 2021-09-23
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 2014-06-05
      相关资源
      最近更新 更多