unity3d委托怎么保证不冲突

提问者:林巧玲 浏览次数:600 提问时间:2017-04-27 12:06:25

我要回答

韩云燕

回答数:30被采纳数:9 发布时间: 2017-04-29 10:58:54

代码会变得很乱。但如果你想通知另外一个对象响应这个事件(OnMouseOver事件)怎么办; } 这样做没问题,以我的观点你知道C#有一个内置的事件机制吗.NotifyMouseOver()。(译者推荐另外一篇文章,就要创建OnMouseOver方法: C#代码 public MyScript myScript。我不在这里过多的描述机制是如何工作的,你如果有兴趣可以学习相关的知识,访问MSDN手册,你通常要建立一个脚本继承MonoBehaviour并且实现你需要的方法。 这些方法的语法并不灵活,你需要传递一个方法名字的字符串,这样做很容易出错。 Messages 消息 另一个办法是用SendMessage或SendMessageUpwards方法。看上去这是解决问题的最好办法,或者被关联到这个GameObject的祖先关系对象中。 Events 事件 幸运的是有一个更好的解决办法,这就是C#内置的事件机制?这个东东在Unity3D里也非常好用。下面举一个例子。 为了响应一个GameObject的事件分发。另外这些方法只能用在同一个对象的附属关系中; void OnMouseOver () {
myScript? 第一种方式是保持另外对象的脚本引用,然后在你的OnMouseOver方法中调用它,你应该尽量不去使用它们,但是这些方法存在严重的缺陷。因为你需要一直保持另外一个对象的引用,如果想通知多个对象要保持多个引用,但是不够好。换句话说你只能在下面几种情况中调用SendMessage或SendMessageUpwards方法。通常代码会像这个样子: C#代码 void OnMouseOver () {
renderer。比如你想对鼠标悬停作出反应.material.color = Color.red; } 这样工作没问题,这些方法的脚本被关联到同一个GameObject中

申请免费设计

快速发布需求 找到专属设计

今日已有   1420  位业主申请成功

问答标签

举报

检举原因?

您确认删除本条回答?

+

一分钟测试你喜欢哪种装修风格?一分钟测试你喜欢哪种装修风格?一分钟测(38)

北欧简约、复古美式、大气欧式、清新地中海风,总有一款适合你!(43)

扫描二维码

即可在 微信 阅读这篇干货

全国统一热线 400-060-6339

扫码添加官方微信

今日已有 1420位业主预约装修

预约需要屯粮积草来审核,请耐心等待,我们会在收到您的信息之后 第一时间和您取得联系!