• Unity3d脚本编程_


    UnityEngine.Component引入了新的成员,如下:

                                                            新引入的成员                            作用                                
    字段                    gameObject                                                                该组件所在的游戏对象
    字段            tag  游戏对象的标签
    字段         transform 添加到该游戏对象上的Transform组件

    公共方法有,

    • 1、BroadcastMessage:  调用该组件所在的游戏对象以及子对象身上所有Monobehaviour中定义的叫做methodName的方法,其中methodName是BroadcastMessage的一个参数;
    • 2、CompareTag:返回该游戏对象是否被标签标记
    • 3、GetComponent:若对象身上有对应类型的组件,则返回一个对应的该类型的组件,否则为null
    • 4、GetComponentInChildren:同上,限定条件为对象本身和其子对象
    • 5、GetComponentInParent:同3,只不过条件为父对象
    • 6、GetComponents:同3,或者所有该类型的组件,返回处理
    • 7、GetComponentsInChildren:同6,只不过对象是子对象及其本身
    • 8、GetComponentsInParent:同6,对象是本身和父对象
    • 9、SendMessage:调用该组件所在的游戏对象身上所有Monobehaviour中定义的叫做methodName的方法,其中methodName是BroadcastMessage的一个参数;
    • 10、SendMessageUpwards:调用该组件所在的游戏对象以及基类身上所有Monobehaviour中定义的叫做methodName的方法,其中methodName是BroadcastMessage的一个参数;

    扩充下,BroadcastMessage的API:

    举个栗子:在摄像机下建几个子对象,然后身上分别挂相同脚本(便于区分)

            

    然后,脚本如下:挂在脚本后传入不同值,以便区分;

    总结: 
    目标对象及其子孙对象上如果有接收方法,就会被执行 
    方法可以接收参数,也可以不接收参数 
    设置RequireReceiver,目标对象上必须有指定的接收方法,否则会报错 

    BroadcastMessage方法有两个重载版本,可以直接通过方法名调用,或者给与传递值调用含有参数的方法;

    注意点:另若脚本里有方法名相同,一个带有参数,另一个不带参数,那么当调用含参数的方法时,总无法调用成功。不知道是不是限制......

  • 相关阅读:
    【CF1194F】Crossword Expert(数学 期望)
    关于Miller-Rabin与Pollard-Rho算法的理解(素性测试与质因数分解)
    分布式架构理解(云时代架构文章读后感10)
    程序员一个充满可能的行业(云时代架构文章读后感09)
    互联网架构安全意识(云时代架构文章读后感08)
    消费金融大数据风控架构与实践(云时代架构文章读后感07)
    余额宝技术架构理解(云时代架构文章读后感06)
    弹性架构(云时代架构文章读后感05)
    Maven理解(云时代架构文章读后感04)
    对https的一些理解(云时代架构文章读后感03)
  • 原文地址:https://www.cnblogs.com/allyh/p/9356096.html
Copyright © 2020-2023  润新知