zoukankan      html  css  js  c++  java
  • Rigidbody.position/rotation更新测试

    Rigidbody.position/rotation主要提供在下一个物理步之前更新物理位置,一般用于SweepTest这样的接口

    那么测试一下会不会修改掉transform.position的值

    测试结果:并不会立即改变transform.position,而会在下一个物理步执行时改变。如果手动改变transform.position/rotation不受影响

    测试脚本:

    using UnityEngine;
    
    public class RigidbodyStepTest : MonoBehaviour
    {
        public Rigidbody rigidbodyComponent;
    
    
        void OnEnable()
        {
            rigidbodyComponent.position = Vector3.zero;
            Debug.Log("OnEnable: " + transform.position + " frame count: " + Time.frameCount);
        }
    
        void FixedUpdate()
        {
            Debug.Log("FixedUpdate: " + transform.position + " frame count: " + Time.frameCount);
        }
    
        void Update()
        {
            Debug.Log("Update: " + transform.position + " frame count: " + Time.frameCount);
        }
    }

    结果:

    由于Unity物理的更新在FixedUpdate之后,而FixedUpdate调用在Update之前,故Update时值归0了

  • 相关阅读:
    03server
    Storm介绍(一)
    storm总结
    Spring源码分析(七)扩展接口BeanPostProcessors源码分析
    技术大牛养成指南
    02装配bean
    02Activity
    maven构建项目
    IDEA使用
    从GIt上导出Maven项目
  • 原文地址:https://www.cnblogs.com/hont/p/5217800.html
Copyright © 2011-2022 走看看