纸上来的终觉浅,自己做一下就知道了

本来想自己写的,但这哥们写的不错,就引用他的了

http://www.cnblogs.com/mzdbskipop/archive/2013/06/15/3137637.html

(2012-07-08 13:40:50)

首先

部分函数尽量不可在update使用,否则极其消耗资源

如果想知道update()和lateupdate()的区别,请看

http://blog.csdn.net/avi9111/article/details/70429578

理论上所有在update里写的代码,都可以搬到lateupdate里


其次
1.在一个脚本内访问其他对象:
想得到对象:可以用下述函数得到对象,或者直接定义一个变量让外部手动传入(可以的话尽量如此)。

①通过名字访问对象(消耗资源较多),注意对象名字分为带层次和不带层次。以A为例,"A"为可带父级,"/A"为不可含父级,"C/B/A"为C可带父级,"/C/B/A"为C不可带父级(未验证):

GameObject.Find("对象名字");

②通过标签访问对象,在访问数量多个,却单一类别的对象时(如敌人)很有用,但注意事先给对象打上标签:

GameObject.FindWithTag ("标签名");      //通过标签访问单个对象,返回GameObject或null

③通过标签访问多个对象

GameObject.FindGameObjectsWithTag("标签名"); //通过标签访问多个对象,返回GameObject[]或null

③得到的对象一般新建GO类对象来接收。如果是对象组,则可以:
  GameObject[] go = GameObject.FindGameObjectsWithTag("标签名");
 
2.在一个脚本内访问其他组件:
  脚本等组件都是类,对应的实例一般是依托于游戏对象的。因此访问特定的组件实例必须先得到其依附的游戏对象,可以通过上述说的函数或者在脚本中定义外部变量两种方式得到某个游戏对象(外部变量传入对象方式时,传入类型设置为GameObject,才好找组件)。得到了对象后,很多组件就可以直接访问,比如Transform。
  //在已经获取游戏对象BB实例情况下,A脚本访问BB对象上的脚本B的成员函数bb与变量bbb
  B b=(B)BB.Getcomponent("B脚本的名字");
  b.bb();或b.bbb;
 
注意!!!为了防错,所有找GO对象,传入G0对象的代码都要做防空报错处理。
 
3.在一个脚本内访问其所附加物体及其子物体上附加的所有MonoBehaviour子类脚本(包括自身在内)的同名函数:
   使用消息广播函数:void BroadcastMessage (methodName : String, parameter : object = null,
options : SendMessageOptions = SendMessageOptions.RequireReceiver) 
   例如:BroadcastMessage("ApplyDamage", 5.0F);
         //收到消息的0参数ApplyDamage函数会自动忽略参数5.0F
         //SendMessageOptions.RequireReceiver方式会在没有任何组件接收消息时打印出错误
 
4.在一个脚本内访问其所附加物体的子物体信息:(层次关系控制)
    GO的层次关系通过Transform组件的层次关系来体现,访问GO的子物体也常通过Transform组件来完成。
①子对象个数

this.transform.childCount //得到GO的Transform组件的子Transform的个数,也即子物体个数。

②获取子对象

transform.GetChild(从0开始的index); //得到该GO的第index+1个子物体的Transform组件。

③依据②中得到的子物体Transform组件可以进一步获取子物体游戏对象的信息:
transform.GetChild(index).gameObject;        //得到子物体GameObject类
transform.GetChild(index).gameObject.name;   //得到子物体名字
transform.GetChild(i).gameObject.SetActiveRecursively(true);//控制子物体是否显示达到切换武器等功能


其他
   碰撞后常要用Destroy(this.gameObject)消除火箭弹等,但这个函数会消除目标物体及其所有子物体,我们能需要保持烟尾等子物体效果不消除时,可以先用this.transform.DetachChildren();解除所有子物体与目标物体的父子关系(也是通过Transform组件控制父子关系)。
   某些情况下需要解除特定子物体父子关系,可以通过访问子物体的this.transform.parent=null来实现(先用GetChild(i)遍历子物体,由名字得到目标子物体)。

真_u3d程序员,基本脚本语法篇相关推荐

  1. (转)在路上—Tinyfool的程序员生涯(职业生涯篇一)

    通知:北京beta技术沙龙第13期<开源拼音软件SunPinyin> 时间:6月4日晚7点 地点:奇遇花园 演讲者:SunPinyin主要开发者孙勇 @yongsun 详情请点击 缘起 这 ...

  2. 金三银四求职季,程序员面试必备——编程语言篇

    每年的三四月都是准毕业生最焦灼最忙碌的季节,考研的结果基本都已确定,公务员考试也基本落下帷幕,春招将会陆续进行,很多同学也要开始决定未来工作的方向.每年的三四月份也都是互联网人的跳槽高峰期,所以三四月 ...

  3. 金三银四求职季,程序员面试必备——数据库篇

    我们身处一个技术变革的时代,随着分布式.云计算.大数据等技术的飞速发展,各种数据库百花齐放.它们在具体功能和使用场景上各有千秋,在实现细节上也不尽相同,但是在工作原理上又有着诸多共通性和相似性. 跳槽 ...

  4. 在路上—Tinyfool的程序员生涯(大学篇)

    缘起 这两天,有人让我做为一个牛人写点回忆录. 这件事情吊诡在于: 其实我写过回忆录,只是那是很早以前,写在<Tinyfool 的开发日记(静态已不更新)>里,叫做<我这10来年 ( ...

  5. 程序员入门:读完这篇你就算是入门了

    程序员入门:读完这篇你就算是入门了 先说结论, 程序员入门的最低标准如下图 基本掌握一门程序开发语言 会调试 能看懂最基本的异常(Exception), 并处理异常 会用搜索引擎查找问题,并可以读懂查 ...

  6. android程序员周记,程序员实习周记100篇

    程序员实习周记100篇 有效防止雷同!简单修改即可使用! 姓名:XXX 学号:20190920008 专业:M] 指导老师: 实习时间:20XX-XX-XX-20XX-XX-XX 2019年XX月XX ...

  7. 金三银四求职季,程序员面试必备——数据分析篇

    这个年代里,"用数据说话"已经像是一种过气的口号.各行各业不同角色和身份的人们都已懂得"用数据说话"的重要性,甚至日常生活中也需要用数据看清事实,科学吃瓜.所以 ...

  8. 黑马程序员 C++ 基础语法入门 学习记录

    基础语法入门 文章目录 一.初识C++ 1.1 新建项目 1.2 编写项目 1.3 运行程序 1.4 注释 1.5 变量 1.6 常量 1.7 关键字 1.8 标识符命名规则 二.数据类型 2.1 整 ...

  9. 辅助?外挂?浅聊程序员与脚本工程师的相爱相杀

    今天我将跟大家讲解一下游戏中游戏中辅助.脚本.外挂的区别是什么?为什么内存外挂是违法的? 相信一提到辅助,大家都会想到自己最喜欢的游戏,从最早的传奇,劲舞团,到现在的DNF,LOL.外挂跟辅助从来都没 ...

最新文章

  1. Linux08--Shell程序设计03 shell script
  2. android eclipse中导入framework.jar以及使用其隐藏类的方法
  3. 用模板写单链表 尹成
  4. android 中resources管理
  5. javascript深入浅出——学习笔记(六种数据类型和隐式转换)
  6. 禁止ultraiso开机自动加载镜像
  7. 尽点力,虽然也不一定有用
  8. php的基本语法与字符串与增删改查
  9. 微电影|小白创作微电影的辛酸
  10. 恢复linux硬盘数据,Linux下的硬盘数据如何恢复?
  11. linux-rootkit
  12. zeppelin入门使用
  13. 深度剖析Linux与Windows系统的区别
  14. 2021冬-不靠谱的老板-visa信用卡白paio两台服务器
  15. 论文复刻:排污权机制是否提高了企业全要素生产率(附代码、数据、原文献)
  16. AutoCAD二次开发基础(三):船体型线绘制
  17. Precision(精准率、查准率)和Recall(召回率、查全率)的应用场景
  18. 解决springboot自动重启问题
  19. svn版本更迭的原理
  20. 出现已安装了存在签名冲突的同名数据包的原因及解决办法

热门文章

  1. 6:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转
  2. java.commen包的一些用法StringUtils.equals()
  3. Android OnDeviceAppPrediction 优化
  4. 怎样安装win服务器系统,win服务器系统安装教程
  5. 基础知识之————直方图
  6. C语言基本语法——循环篇(三种常见的循环)
  7. Spring Cloud Contract实践
  8. tensorflow应用系列3:使用tensorflow完成多项式回归
  9. 一个WEB应用的开发流程
  10. xducs学习经验分享