unity3d 挂载脚本_Unity3D 自动添加脚本到物体上(指定脚本挂在指定位置上)
转载自 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 自动添加脚本到物体上(指定脚本挂在指定位置上)相关推荐
- linux自动安装Java环境脚本,Linux 自动添加JAVA环境脚本
Linux 自动添加JAVA环境脚本 1. 删除原有的JAVA环境变量配置 ### --------------delete old config -------------------- ### ...
- 自动清理mysql的lock进程的脚本_自动清理MySQL的Lock进程的脚本
自动清理MySQL的Lock进程的脚本 作者:小涵 | 来源:互联网 | 2018-07-13 21:01 阅读: 915 最近数据库服务器在某一时段进程数忽然暴增,导致数据库服务器死掉,根据日志查询 ...
- Unity在创建.cs脚本时自动添加脚本描述等注释
@# Unity编辑器扩展 需求: 立项之后需要每位参与项目的程序在创建.cs脚本时添加功能描述.创建时间.创建者等多种类型的脚本说明. 思路: UnityEditor在对资源进行操作时需要调用Ass ...
- centos 指定文件路径 脚本_centos自动删除三天前文件的脚本和自动进入指定目录运行命令...
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- python贴吧发帖脚本-Python实现自动添加脚本头信息的示例代码
前言 每个人写脚本时的格式都会有所不同,有的会注明脚本本身的一些信息,有的则开门见山,这在小团队里其实没什么,基本别人做什么你也都知道,但如果放到大的团队就比较麻烦了,因为随着人数的增多,脚本成指数增 ...
- 为什么脚本执行一行就不动了_在Linux中通过expect工具实现脚本的自动交互
expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 1 安装expect工具 expect是建立在tcl基础上的一个自动化交互套 ...
- PyCharm自动添加作者注释
文章目录 模板设置 个人模板 企业模板 Linux模板 预定义变量 自定义变量 可重用模板 参考文献 模板设置 File → Settings → Editor → File and Code Tem ...
- python 为html页面增加背景_Python 给html css自动添加注释
Python 给html css自动添加注释(2020年11月8日) 背景 大二上学期专业开设了网页设计课程,专门学习html和css,有时候也经常有同学找我来帮忙看看他们写的代码,并且改改,我就忽然 ...
- unity3d 挂载脚本_Unity3D 全局脚本
我们知道Unity3D在是可以创建游戏场景的,在每个游戏场景中又可以创建游戏对象,把每个场景的游戏对象融合在一起就是一款3D游戏.游戏场景之间属于同等级的关系,为了让游戏场景之前交互我们需要有一个凌驾 ...
最新文章
- ib_logfile 在数据库中有何作用?
- 低配版AI车神?网友用单个CNN在「极品飞车9」里飙车
- 差分能量分析介绍(四)
- c++ 编译添加dll_matconvnet安装、编译、配置
- pypthon3精要(11)-try,except,else异常处理
- Java技术知识点的一些总结
- dremwere怎样让多个图片并列排放_国标双壁波纹管直径200、300、400、500、600、800图片展示...
- vue 设置背景图地址_vue-生成自动铺满的背景图
- 【Swing 3】布局管理器与简单的聊天界面
- 天线座和连接器SMA、U.FL、IPX、IPEX
- Cknife流量分析
- 计算机专业复试有英语口语吗,计算机考研复试英语口语技巧
- CorelDRAW X3 金箔织绣材质特效——金箔绣球(1)
- 一篇文章带你认识数学建模中的二维插值
- java模拟器修改游戏分辨率_海马玩模拟器修改分辨率DPI和隐藏虚拟按键的方法...
- iftop命令命令详解
- 拿什么来保障程序员的工作?
- 计网——17差错检测和纠正技术
- 求1到100之间的奇数之和、偶数之积
- 这100款APP违法违规,好几十款都在用!