Unity 如何通过反射给gameObject添加组件

C#版本

public static Component AddComponent(GameObject go, string assembly, string classname)
{
    var asmb = System.Reflection.Assembly.Load(assembly);
    var t = asmb.GetType(assembly + "." + classname);
    if(null != t)
        return go.AddComponent(t);
    else
        return null;
}

lua版本

function AddComponent(go, classname)
    local com = go:GetComponent(classname)
    if com then return com end
    local t = System.Type.GetType(classname)
    if t then
        return go:AddComponent(t)
    end
    return nil
end

补充:添加组件和删除组件代码unity

代码添加组件

gameObject.AddComponent ("FoobarScript");//最好使用类型方式,提交效率如typeof(Rigidbody)

注意没有RemoveComponent()方法。如果你想去掉一个组件,可以使用Object.Destroy。

添加组件和删除组件代码

IEnumerator   Start () {
    this.gameObject.AddComponent(typeof(Rigidbody));
    yield return new WaitForSeconds(0.5F);
    Destroy(this.rigidbody);
  }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • unity实现物体延时出现

    本文实例为大家分享了unity实现物体延时出现的具体代码,供大家参考,具体内容如下 新建一个cube和plane,隐藏cube,脚本挂在plane上. 1. update计时器实现 using System.Collections; using System.Collections.Generic; using UnityEngine; //一个隐藏的物体等待t秒后显示,updata计时器实现 public class activeShow : MonoBehaviour { public Ga

  • Unity 按钮添加OnClick事件操作

    1.在Hierarchy面板右键UI>Button 2.创建一个空物体 3.创建一个脚本 ButtonClick.cs,定义一个Click方法(必须为Public) 4.把脚本挂在到空物体上 5.将空物体拖到如下图 None(Object) 位置 6.在右侧选择 ButtonClick>Click 方法 7.如下 补充:Unity三种添加Click事件 我就废话不多说了,大家还是直接看代码吧~ public Button btn; void Start () { // 一.btn.onClic

  • 如何保存Unity中的Log日志

    代码中的debug日志保存本地 using System.Collections; using UnityEngine; using System.IO; public class SaveLog : MonoBehaviour { private float length; Queue queue; private void Awake() { DontDestroyOnLoad(this); LogToFile("Version of the runtime: " + Applic

  • Unity C#执行bat脚本的操作

    我们先封装一下接口,如下,把EdtUtil.cs放置在Assets/Editor目录中 // EdtUtil.cs using System; using UnityEditor; using UnityEngine; using System.Collections.Generic; using System.IO; using System.Threading; using System.Text; class EdtUtil { public static System.Diagnosti

  • Unity PC版Log的具体位置介绍

    在某个版本更新后,Unity Log不在位于Data文件夹中 具体位置: C:\Users\xxx用户\AppData\LocalLow\xx公司\xx项目 补充:UnityWebPlayer 的log日志的本地路径 在unity网页端的开发中,常常用到UnityWebPlayer的技术进行制作.在Unity中我们可以通过引擎自带的日志输出工具进行调试. 网页端在哪里查看log日志呢? 就在本地的此路径下 C:\Users\Administrator\AppData\Local\Temp\Uni

  • unity android设备上查看log输出方式

    使用[adb] logcat [option] - [filter-spec] - 命令. 1. -s 指定过滤器 adb logcat -s Unity ActivityManager PackageManager dalvikvm DEBUG 2. 如果出现error: more than one device/emulator,需要adb -s deviceName指定设备 adb devices 得到设备名 MyAndroid adb -s MyAndroid logcat -s Uni

  • Unity 实现删除missing脚本组件

    通过Resources.FindObjectsOfTypeAll查找所有GameObject,然后通过.hideFlags == HideFlags.None判断是否为存在于Hierarchy面板.(此为编辑器脚本) 详细代码: /******************************************************************************* * 版本声明:v1.0.0 * 类 名 称:DeleteMissingScripts * 创建日期:8/10

  • Unity 如何通过反射给gameObject添加组件

    C#版本 public static Component AddComponent(GameObject go, string assembly, string classname) { var asmb = System.Reflection.Assembly.Load(assembly); var t = asmb.GetType(assembly + "." + classname); if(null != t) return go.AddComponent(t); else r

  • Android使用addView动态添加组件的方法

    在项目开发中,我们经常需要进行动态添加组件,其中可添加的部分有两项:布局和组件 其中,添加的布局主要有RelativeLayout型(相对布局)的和LinearLayout(线性布局) 添加的组件主要有文本显示框,编辑框,按钮等组件. 下面,就让我们来进行实现: 首先我们创建一个新的项目,删除MainActivity.class中没有的代码,仅留下protected void onCreate(Bundle savedInstanceState)函数往布局文件中添加一个新的组件: 1. addV

  • Android开发中button按钮的使用及动态添加组件方法示例

    本文实例讲述了Android开发中button按钮的使用及动态添加组件方法.分享给大家供大家参考,具体如下: MainActivity.java package com.example.lab2; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.view.View; import andro

  • Vue form表单动态添加组件实战案例

    今天我们来给大家介绍下在Vue开发中我们经常会碰到的一种需求场景,就是在form中我们需要动态的增加组件模块,效果如下: 这种效果实现其实就是对 v-for 指令的一种使用,组件不是必须的,只是为了将这部门的代码我们单独的拎出来,便于查看,好了,话不多说,我们来看下具体怎么来实现. 案例效果的实现 1.创建组件 首先我们创建一个单独的组件,同时在 template 中定义我们的表单元素,此处使用的是 element UI 来实现效果. 2.import组件 我们需要在父组件中引入创建的组件,并通

  • 易语言添加组件的方法

    大家在使用易语言的时候,会发现自己没有教程里的那么多组件,仅有一些常用的,怎么办呢? 第一步先打开易语言. 第二步,随便点个模式进去. 3.点击"工具" 4.单机"支持库配置" 5.随后把能选的全选上,这样就好了 6.让我们拖几个组件试试吧 7.简单编写了几个代码. 8.单机"运行" 9.可以用,完成. 总结:以上的关于易语言添加组件的内容大家可以跟着学习下,感谢你的阅读和对我们的支持.

  • Angular通过指令动态添加组件问题

    之前自己写的公共组件,都是会先引入,需要调起的时候再通过service控制公共组件状态.值.回调函数什么的.但是有一些场景不适合这种方式,还是动态添加组件更加好.通过写过的一个小组件来总结下. 创建组件 场景:鼠标移动到图标上时,展示解释性的说明文字.那就需要创建一个普通的tooltip组件.如下: <aside class="hover-tip-wrapper"> <span>{{tipText}}</span> </aside> im

  • Vue.js添加组件操作示例

    本文实例讲述了Vue.js添加组件操作.分享给大家供大家参考,具体如下: <!DOCTYPE HTML> <html> <head> <title>vue.js hello world</title> <script src="../vue.js"></script> </head> <body> <div id="example"> <my

  • Unity中使用反射机制调用函数

    Unity中使用反射机制调用函数,供大家参考,具体内容如下 我们在进行开发时有时会碰到使用反射机制来处理事件消息,下面就是一种使用反射机制处理消息的方法 示例代码 共有两个脚本,其中一个模拟消息处理类,一个模拟使用类 using System.Reflection; using UnityEngine; using UnityEngine.UI; public class ReflectionTest : MonoBehaviour { public Button bt0; public But

  • Spring容器添加组件方式实现

    本博客介绍SpringBoot项目中将组件添加到Spring容器中的方法,SpringBoot项目有一个很明显的优点,就是不需要再编写xml配置文件,只需要用SpringBoot的注解就可以实现类似功能,不过其实SpringBoot项目还是支持引入xml配置文件的,所以本博客介绍一下两种使用方式 ok,介绍一下SpringBoot项目的@ImportResource注解,这个注解的作用就是引入一些xml资源,加载到Spring容器里 建个TestBean类 public class TestSe

  • Unity 实现给物体动态添加事件

    介绍一个方法给物体动态的添加事件(点击 拖拽等) using System.Events; using System.EventSystems; //_go is the gameobject which need add event //_go 是物体,因为EventTrigger是unity中的一个组件,我们要用添加组件的方式来给物体添加事件触发组件 //_type is the EventTriggerType(point , drag , clickdown...... //_type

随机推荐