转载自 http://www.manew.com/blog-123323-3438.html

关于场景内物体添加脚本等等的 最麻烦了,而且经常容易丢失 。

现在给新手一个比较好的方法来自动添加脚本。

第一步:在场景内创建一个空物体。给空物体命名为 GameObjectController (也可自行命名)。

创建 GameObjectController 的空物体是为了在空物体上添加一个脚本。这个脚本负责给场景内的脚本自动添加其它脚本的。或者用来管理场景脚本和物体。

紧接着 第二步 :给刚刚创建的空物体GameObjectController 添加一个脚本

紧接着,第三步:编辑脚本。

using UnityEngine;

public class AddAiScript : MonoBehaviour {

public SteeringForWander wander;//SteeringForWander是你要添加的脚本,wander是定义的名称

public SteeringForPursuit pursuit;

private void Awake()

{

//在Awake里面添加脚本,首先获取到要添加脚本的物体标签,然后在AddCompoent函数里添加刚刚的脚本

wander = GameObject.FindWithTag("enemy").AddComponent();

}

//此脚本挂载空物体上即可

//写此脚本的目的是为了更好的游戏优化,提高预制体的利用

}

当然,自动添加脚本可以对游戏进行简单的优化。和处理。 详细的已经在代码里注释了。

然而。如果场景里有多个物体需要添加大量的相同的脚本。我们该怎么办呢?

可以通过设置数组,遍历场景内所有需要添加脚本的物体,通过依次遍历添加脚本即可。

下面附上方法。是上面方法的扩充:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class AddAiScript : MonoBehaviour {

//给多个物体添加相同的脚本

public GameObject[] enemys;//需要添加脚本的物体的数组

public SteeringForWander wander;//SteeringForWander是你要添加的脚本,wander是定义的名称

public SteeringForPursuit pursuit;

private void Awake()

{

//获取场景中所有标签为enemy的物体

enemys = GameObject.FindGameObjectsWithTag("Player");

foreach (GameObject enemy in enemys)//遍历物体并添加脚本

{

Debug.Log(enemy.name);

wander = enemy.AddComponent();//添加脚本

}

}

}

通过这种方法可以很轻松的将指定的脚本附加到指定的物体上去。而且最重要的物体上面甚至不需要任何脚本就可以进行脚本的绑定。

下面看一下效果

运行之前 只有自己手动挂上的2个脚本

运行之后

运行之后 自己就挂上了很多个脚本。(有的脚本没有自动勾选,是楼主代码里控制的)。

再看一下 GameObjectController 里面的参数吧

成功过去到所有场景内标签为enemy 的物体。并添加了脚本

(由于脚本没有用数组定义,所以脚本只显示第一个挂在的物体名称 。 而实际运行效果则是场景内所有物体均 挂上了)

unity3d 挂载脚本_Unity3D 自动添加脚本到物体上(指定脚本挂在指定位置上)相关推荐

  1. linux自动安装Java环境脚本,Linux 自动添加JAVA环境脚本

    Linux 自动添加JAVA环境脚本 1. 删除原有的JAVA环境变量配置 ###  --------------delete old config --------------------  ### ...

  2. 自动清理mysql的lock进程的脚本_自动清理MySQL的Lock进程的脚本

    自动清理MySQL的Lock进程的脚本 作者:小涵 | 来源:互联网 | 2018-07-13 21:01 阅读: 915 最近数据库服务器在某一时段进程数忽然暴增,导致数据库服务器死掉,根据日志查询 ...

  3. Unity在创建.cs脚本时自动添加脚本描述等注释

    @# Unity编辑器扩展 需求: 立项之后需要每位参与项目的程序在创建.cs脚本时添加功能描述.创建时间.创建者等多种类型的脚本说明. 思路: UnityEditor在对资源进行操作时需要调用Ass ...

  4. centos 指定文件路径 脚本_centos自动删除三天前文件的脚本和自动进入指定目录运行命令...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. python贴吧发帖脚本-Python实现自动添加脚本头信息的示例代码

    前言 每个人写脚本时的格式都会有所不同,有的会注明脚本本身的一些信息,有的则开门见山,这在小团队里其实没什么,基本别人做什么你也都知道,但如果放到大的团队就比较麻烦了,因为随着人数的增多,脚本成指数增 ...

  6. 为什么脚本执行一行就不动了_在Linux中通过expect工具实现脚本的自动交互

    expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 1 安装expect工具 expect是建立在tcl基础上的一个自动化交互套 ...

  7. PyCharm自动添加作者注释

    文章目录 模板设置 个人模板 企业模板 Linux模板 预定义变量 自定义变量 可重用模板 参考文献 模板设置 File → Settings → Editor → File and Code Tem ...

  8. python 为html页面增加背景_Python 给html css自动添加注释

    Python 给html css自动添加注释(2020年11月8日) 背景 大二上学期专业开设了网页设计课程,专门学习html和css,有时候也经常有同学找我来帮忙看看他们写的代码,并且改改,我就忽然 ...

  9. unity3d 挂载脚本_Unity3D 全局脚本

    我们知道Unity3D在是可以创建游戏场景的,在每个游戏场景中又可以创建游戏对象,把每个场景的游戏对象融合在一起就是一款3D游戏.游戏场景之间属于同等级的关系,为了让游戏场景之前交互我们需要有一个凌驾 ...

最新文章

  1. ib_logfile 在数据库中有何作用?
  2. 低配版AI车神?网友用单个CNN在「极品飞车9」里飙车
  3. 差分能量分析介绍(四)
  4. c++ 编译添加dll_matconvnet安装、编译、配置
  5. pypthon3精要(11)-try,except,else异常处理
  6. Java技术知识点的一些总结
  7. dremwere怎样让多个图片并列排放_国标双壁波纹管直径200、300、400、500、600、800图片展示...
  8. vue 设置背景图地址_vue-生成自动铺满的背景图
  9. 【Swing 3】布局管理器与简单的聊天界面
  10. 天线座和连接器SMA、U.FL、IPX、IPEX
  11. Cknife流量分析
  12. 计算机专业复试有英语口语吗,计算机考研复试英语口语技巧
  13. CorelDRAW X3 金箔织绣材质特效——金箔绣球(1)
  14. 一篇文章带你认识数学建模中的二维插值
  15. java模拟器修改游戏分辨率_海马玩模拟器修改分辨率DPI和隐藏虚拟按键的方法...
  16. iftop命令命令详解
  17. 拿什么来保障程序员的工作?
  18. 计网——17差错检测和纠正技术
  19. 求1到100之间的奇数之和、偶数之积
  20. 这100款APP违法违规,好几十款都在用!

热门文章

  1. CSS 浮动布局放弃float,拥抱flex(详解)
  2. C/C++ 资源汇总
  3. 变频电源滤波电容的作用是怎样的
  4. 用html,css,js来绘制中国地图
  5. element-ui el-table表格出现抖动闪动问题的解决
  6. 关于自动化运维需要什么系统及常用工具
  7. 粘贴txt到excel,行数不一致
  8. 用MFC上位机开发入行经历
  9. 用SpringCloud的时候胡乱写配置的兄弟们,事故加班一定很多!
  10. 2018年5月软考网络工程师上午真题知识点总结