unity3d 禁用脚本_unity3d 脚本禁用 - CSDN
  • 其实这个问题很简单,我认为可行的方法只有一种,就是获取脚本文件,然后把enable属性设置为true或者false就行了(ps:脚本文件可以堪称一个控件)。  c#:GameObject.Find("ObjectName").GetComponent().enabled=...

      这个问题已经是我第三次在网上查资料了,同样的问题应该重复查询说明使用频率很高,就有理由应该记住。其实这个问题很简单,我认为可行的方法只有一种,就是获取脚本文件,然后把enable属性设置为true或者false就行了(ps:脚本文件可以堪称一个控件)。
      c#:

    GameObject.Find("ObjectName").GetComponent<scriptName>().enabled=true/false;

      javascript:
      

    GameObject.Find("ObjectName").GetComponent(scriptname).enabled=true/false;
    展开全文
  • 禁用脚本的目的就是为了让该脚本“不执行”,而启用的目的就是为了让该脚本”执行“。以上是我原来的想法,其实这样的理解有偏差。准确地说,即使脚本为禁用状态,别的脚本也能够成功地调用 被禁用的脚本的成员...


    本文章由攀大小熊猫编写,转载请注明出处。

    文章链接:http://blog.csdn.net/a237653639/article/details/45766101

    作者: 攀大小熊猫    邮箱: 237653639@qq.com  


    先总结,再证明。

    总结:

    禁用脚本的目的就是为了让该脚本“不执行”,而启用的目的就是为了让该脚本”执行“。以上是我原来的想法,其实这样的理解有偏差。准确地说,即使脚本为禁用状态,别的脚本也能够成功地调用 被禁用的脚本的成员(后面将给以证明


    那么,您可能会发问,那我禁用脚本有什么意义呢?

    其实意义就是,脚本为启用状态时,unity会自动调用该脚本的类继承自MonoBehaviour的方法,反之,脚本为禁用状态时,unity就不会调用这些方法。但绝不影响其他脚本对该脚本内成员的调用


    证明:

       即使脚本为禁用状态,别的脚本也能够成功地调用 被禁用的脚本的成员

    步骤1,先创建一个cube,然后在其上挂一个Test脚本。然后在MainCamera上挂一个Test2脚本。

       我们将禁用Test脚本,Test2将调用Test内的成员。

      如下图:

    cube:

    camera:


    Test脚本的内容为:

    Test2的内容为:

    注意,我们已经把Test脚本设为了禁用。

    现在,我们看到了运行结果,如下图。cube.GetComponent<Test>().Print()这句话调用成功,但是Test中的继承自MonoBehaviour的Update方法并没有被调用。


    现在解释脚本前面的复选框消失的原因:

    首先,复选框消失的原因我先复制粘贴下雨松大神的解释:

    凡事脚本没有勾选项的,都是因为你的脚本没有Start方法。。如果你想让勾选框显示出来,

    把如下方法加入即可,不信你可以试试。嘿嘿。有人测试了一下, 

    加上 Update LateUpdate FixedUpdate OnGUI 也都可以让勾选框出来。。。但是Awake不行。。

    通过雨松大神的解释,以下是我进一步的想法。

    通过上面的总结,我们已经知道了:脚本为启用状态时,

    unity会自动调用该脚本的类继承自MonoBehaviour的方法,

    反之,脚本为禁用状态时,unity就不会调用这些方法。

    我的想法:

    如果你的脚本里面没有继承自MonoBehaviour的方法,意思就是就不需要unity来调用了(根本没有,从何调用)。

    这样的话,你的脚本不管是禁用或是启用就都跟Unity没有半毛钱的关系了,

    所以Unity才会不给你显示复选框,因为没有必要嘛对吧。而一旦有比如Start这类继承(其实是覆写)了

    MonoBehaviour的方法,这时就该Unity出马了!所以复选框就会重新显示出来,

    由你来控制是否允许Unity来调用Start等方法。那么Awake呢? 

    们查阅Unity的官方文档上可以知道(Awake is called once, just like the constructor.),

    如果重新启用一个脚本,那么该脚本内的Awake方法不会被调用,而Start等方法会重新起作用(调用)。

    而Awake只在其脚本附加的对象一开始被创建时调用一次(不管该脚本是启用还是禁用

    都会被调用一次),以后不再调用。所以”Awake不行“(不能使复选框重新出现),哈哈。

    the end^_^

    展开全文
  • unity3D禁用脚本

    2019-04-11 19:45:19
    如果想直接使用enabled来禁用脚本或者组件,必须继承至MonoBehaviour camera.enabled = false; C#: GetComponent().enabled = true; 如果不是继承MonoBehaviour的做法: (gameObject.GetComponent(“MyScript”) as...

    如果想直接使用enabled来禁用脚本或者组件,必须继承至MonoBehaviour

     camera.enabled = false;
    

    C#:
    GetComponent().enabled = true;

    如果不是继承MonoBehaviour的做法:
    (gameObject.GetComponent(“MyScript”) as MonoBehaviour).enabled = false;

    **一个致力于unity游戏,模型,等资源的淘宝店铺,里面有unity3d成品游戏,场景资源,模型资源等,一切资源都特别优惠,店铺链接:【unity3D素材包/unity3d中世纪村庄包Medieval Village Pack】https://m.tb.cn/h.eaENjDH?sm=2b946c 点击链接,再选择浏览器咑閞;或復·制这段描述¥kIKkbAV3c3C¥后到?淘♂寳♀?
    店铺链接:
    【峰回路转设计之巅】,復·制这段描述¥Rdl0bARAdpZ¥后咑閞?手机淘宝?或者用浏览器咑閞https://m.tb.cn/h.eZyY9BV?sm=f141d2查看

    展开全文
  • unity3d 禁用脚本

    2014-04-08 03:37:21
    如果想直接使用enabled来禁用脚本或者组件,必须继承至MonoBehaviour 1 camera.enabled = false; JS脚本里: 1 GetComponent(MyScript).enabled = false; ...

    如果想直接使用enabled来禁用脚本或者组件,必须继承至MonoBehaviour

    1 camera.enabled = false;

    JS脚本里:

    1 GetComponent(MyScript).enabled = false;

    C#:

    1 GetComponent<MyScript>().enabled = true;

    如果不是继承MonoBehaviour的做法:

    1 (gameObject.GetComponent("MyScript"as MonoBehaviour).enabled = false;
    展开全文
  • unity3d开发游戏真是一个好东西,但是不会写脚本真是一件悲哀的事情。脚本写出来了,可是脚本中那么多方法是怎么执行的呢?接下来咱们一起讨论一下MonoBehaviour的生命周期life cycle,帮你更好的进行开发
  • 网上已经有很多文章讲解过Unity3d脚本DLL 解密,基本方法原理都差不多,就是通过HOOK或者调试下断mono_image_open_from_data_with_name这个函数拿到解密后的DLL。这些方法都需要比较专业的知识(Hook或者过反调试),...
  • Unity3D脚本基础 Unity3D中的引用类型 UnityEngine.Object类 在Unity3D脚本系统中,Unity使用命名空间UnityEngine来盛放Unity3D定义的类型; 其中UnityEngine.Object类是最基本的类,是在Unity3D中所有对象的基类...
  • 主要思路是,给每一个脚本设置一个指向这个脚本的某个实例的全局变量,这样你就可以随时访问那个实例,而不必在检查器中一行一行搜索脚本。以下是它的运作方式: 在我的主要的DialogueSystem.cs脚本里,我把变量...
  • unity3d 性能 脚本优化

    2013-02-25 17:23:03
    这一页给出了一些在iOS系统上增强脚本性能的一般方法。   减少固定增量时间 将固定增量时间值设定在0.04-0.067区间(即,每秒15-25帧)。您可以通过Edit->Project Settings->Time来改变这个值。这样做降低...
  • 脚本的生命周期,就是挂载到的游戏物体“从出生到死亡”所经历的一些事件,这些生命周期事件是 Unity 引擎事先定义好的一些特定方法,在游戏的运行过程中,由引擎自动调用,系统调用这些事件的顺序,和我们代码里面...
  • 生命周期中的所有方法都是Unity 系统自己回调的,不需要手动调用。 //--脚本绑定事件 在编辑器模式下,把脚本拖拽到一个游戏对象上,即为绑定。 Unity 并没有提供脚本的绑定事件,但是我们可以通过生命周期中的...
  • 高级 Unity 手机脚本 设备属性 您可以访问一系列特定设备的属性:     SystemInfo.deviceUniqueIdentifier 唯一的设备标识。 SystemInfo.deviceName 用户指定的设备名称。 SystemInfo.deviceModel ...
  • 常用脚本事件: Update:每帧调用一次 Start:在第一次Update执行前调用 Awake:脚本实例在创建时调用 FixedUpdate:每个固定物理时间间隔调用一次 LateUpdate:每帧调用一次,在Update之后 MonoBehaviour类...
  • [C#] 纯文本查看 复制代码 ? 1 gameObject.renderer.enabled = false 或 [C#] 纯文本查看 复制代码 ? 1 gameObject.active = ...隐藏子对象
  • ExportAssetBundles.rar // C# Example // Builds an asset bundle from the selected objects in the project view. // Once compiled go to "Menu" -&gt; "...// t...
  • ... ...已有好些天没写什么了,今天想起来该写点东西了。这次我所介绍的内容主要是为了配合我前面所写的角色运动控制有关的文章,那就是动画。这是一个很复杂的概念,今天,我就把我所理解的有关动
  •  Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的。在脚本对象内部不同志的函数被特定的事件调用。最常用的列在下面:  Update:这个函数在渲染一帧之前被调用,这里是大部分游戏行为代码被执行的...
  • Unity3D脚本的基本架构

    2015-09-28 23:37:42
    LateUpdate():如果启用,会在每一帧中被调用。在所有Update函数被调用之后才执行。有利于程序的有序执行。(例如:跟随摄像机就应该...OnPreCull是在剔除这个过程之前被调用的,此消息被发送到所有附加了脚本的摄像
1 2 3 4 5 ... 20
收藏数 2,001
精华内容 800
关键字:

unity3d 禁用脚本