小编lik*_*uku的帖子

unity 条件字段自定义编辑器

我的目标:我有一个脚本

public class MyScript: MonoBehaviour
{
   public bool A;
   public bool B;
}
Run Code Online (Sandbox Code Playgroud)

仅当 A 为 TRUE 时,我才需要 B 可见

我对脚本进行了扩展,并在标题中添加了 UnityEditor

[CustomEditor(typeof(MyScript))]
public class MyEditor : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        MyScript tool = (MyScript) target;

        tool.A = GUILayout.Toggle(tool.A, "Flag");

        if(tool.A)
        {
            tool.B= EditorGUILayout.Toggle(tool.B, "Flag");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但一切都没有真正改变。我做错了什么?

unity-game-engine unity3d-editor unity-editor

3
推荐指数
1
解决办法
1万
查看次数

添加函数到原型

我尝试在JS中实现Vector3类并编写

function Vector(x,y,z) {
  this.x=x;
  this.y=y;
  this.z=z;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止看起来还不错,但后来我想添加Vector.prototype这个功能addVector:

Vector.prototype.addVector(addx,addy,addz) = function(addx,addy,addz) {
  x+=addx; y+=addy; z+=addz;
};
Run Code Online (Sandbox Code Playgroud)

但后来我收到一个错误:

NaN行的ReferenceError:未定义addx

我是JS的新手,我想知道我到底是在做什么.

javascript prototype

1
推荐指数
1
解决办法
96
查看次数

如何检查项目中是否安装了包

我正在创建一个在场景中查找文本字段的模块。如果安装了 TextMeshPro,它将查找它,如果没有,则查找常规文本字段/文本网格

问题是:我怎样才能条件(伪代码)

if(textMeshProExists)
    Look for A
else
    Look for B
Run Code Online (Sandbox Code Playgroud)

unity-game-engine

1
推荐指数
1
解决办法
3286
查看次数

将Coroutine函数添加到Transform

我正在创建一个扩展Transform的统一脚本

using UnityEngine;
using System.Collections;
using UnityEditor;

public static class TransformExtension
{
    //lots of functions

     public static IEnumerator tester(this Transform test)
    {
        Debug.Log("hello");
        yield return null;
    }


    public static void tester2(this Transform test)
    {
        Debug.Log("hello2");
    } 
}
Run Code Online (Sandbox Code Playgroud)

当我调用

transform.tester();
transform.tester2();
Run Code Online (Sandbox Code Playgroud)

只记录"hello2".

当我试着

StartCoroutine(transform.tester());
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"错误CS0103:当前上下文中不存在名称'tester'"

"Transform"不包含'StartCoroutine'的定义,并且没有可访问的扩展方法'StartCoroutine'接受类型'Transform'的第一个参数(你是否缺少using指令或汇编引用?)

当我试着

transform.StartCoroutine(transform.tester());
Run Code Online (Sandbox Code Playgroud)

我有:

"错误CS1061:'转换'不包含'StartCoroutine'的定义,并且没有可访问的扩展方法'StartCoroutine'接受类型'Transform'的第一个参数(你是否缺少using指令或汇编引用?)"

extension-methods transform unity-game-engine

0
推荐指数
1
解决办法
143
查看次数