UNITY:这个问题很棘手

wenbo228228 2015-01-24 04:55:04
我在a脚本中写:
static public int value=0;

然后b中写:

void Die()
{
a.value++;
}

Die()这个函数是在b所依附的物体死亡时调用的,我的问题是当多个NPC每个都带有b脚本在同时死亡时(比如被手雷炸死),
a脚本中的value只会加1,请问怎么才能:比如3个NPC同时死亡,value加3呢
...全文
80 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你再检查一下是不是其他问题造成没有加1的?我把a.value++写在OnDestroy中然后输出了一下,并没有你说的问题。而且据我所知Unity其实是单线程的,应该不会出现你说的这种情况。
  • 打赏
  • 举报
回复
是依次调用的,如果你自己没有创建额外的线程,Unity是不存在多线程问题的。除了协同函数,一个函数都是会执行到底才会进入其他函数的,不存在同步问题。 你可以看Unity文档里写的说明,写的很清楚: http://docs.unity3d.com/Manual/ExecutionOrder.html
wenbo228228 2015-01-25
  • 打赏
  • 举报
回复
引用 1 楼 candycat1992 的回复:
你再检查一下是不是其他问题造成没有加1的?我把a.value++写在OnDestroy中然后输出了一下,并没有你说的问题。而且据我所知Unity其实是单线程的,应该不会出现你说的这种情况。
额,是的,确实每个a.value++都发挥作用了, 你说Unity单线程是不是意味着每个OnDestroy函数都是按顺序调用的而不是同时调用的?

3,405

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 设计模式
社区管理员
  • 设计模式
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧