【问题标题】:unity rotate object with slider in edit virtual在编辑虚拟中使用滑块统一旋转对象
【发布时间】:2020-11-29 16:28:42
【问题描述】:

如何编辑代码以使滑块适合我? 例如,当我将一个对象分配给我的右腿时,这些值被加载到滑块中,但我不能随它们一起移动。 列出错误: NullReferenceException:对象引用未设置为对象的实例 Slider2.Update () Slider2.cs:53 谢谢你的建议

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;

[ExecuteInEditMode]
[CustomEditor(typeof(Slider2))]
public class Slider2 : MonoBehaviour {


     [Header("Pravá noha - RightUpLeg")]
     public Transform pravanoha ;
      [Range(-360f,360f)]public float  pravanohaRX;//180.0f
      [Range(-360f,360f)]public float pravanohaRY ;  //180
      [Range(-360f,360f)]public float pravanohaRZ ;    //0.0f

        [Header("Pravé koleno - RightLeg")]
              public Transform pravekoleno ;
            [Range(-360f,360f)]public float pravekolenoRX ;   //=180.0f
            [Range(-360f,360f)]public float pravekolenoRY;   // 180.0f;
            [Range(-360f,360f)]public float pravekolenoRZ ;     //=0.0f
      
          


    // Use this for initialization
   public virtual void Start () {

}
    // Update is called once per frame
       public virtual void Update() {

 pravanohaRX= UnityEditor.TransformUtils.GetInspectorRotation(pravanoha.transform).x;
pravanohaRY= UnityEditor.TransformUtils.GetInspectorRotation(pravanoha.transform).y;
 pravanohaRZ= UnityEditor.TransformUtils.GetInspectorRotation(pravanoha.transform).z;

pravanoha.transform.localEulerAngles = new Vector3(  pravanohaRX, pravanohaRY, pravanohaRZ);   

    }

}

【问题讨论】:

  • 不管怎样,这根本不起作用,因为UnityEditor 顾名思义,它只存在于 Unity 编辑器本身中。当您尝试构建它时,它会抛出编译器错误,因为 UnityEditor 命名空间将被完全剥离。你的错误听起来像pravanoha没有被引用..注意顺便说一句,获得一个向量3次仅单独访问三个组件(x,y,z)是完全低效和冗余的..所有这些只是为了再次使用它最终作为一个向量..只需使用向量本身...
  • 然后 ... TransformUtil.GetInspectorRotation .. 它只是将 se 的东西返回为 pravanoha.transform.localEulerAngles ... 所以你的方法绝对什么都不做... Inspector 中显示的值已经 本地位置和旋转......所以你有点覆盖你在检查器中所做的一切......看起来很奇怪。您是否尝试过使用 GetInspectorRotation 完全跳过这 3 行?
  • 然后:使用[CustomEditor...] 删除这些标签它们在MonoBehavior 上没有意义,但仅在自定义Editor 类上......而不是使用ExecuteInEditModeUpdate我建议改用OnValidate
  • 它不起作用

标签: unity3d rotation slider updates virtual


【解决方案1】:

关键是当我分配一个对象时,旋转的值被读取给我,但滑块不起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2015-08-12
    • 1970-01-01
    相关资源
    最近更新 更多