游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:554

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 576|回复: 8

[脚本] unity的js中随机数无法使用

[复制链接]  [移动端链接]
5熟悉之中
799/1000
排名
3659
昨日变化
1

39

主题

197

帖子

799

积分

Rank: 5Rank: 5

UID
216835
好友
2
蛮牛币
990
威望
0
注册时间
2017-4-9
在线时间
185 小时
最后登录
2018-9-16
发表于 2017-11-12 07:46:36 | 显示全部楼层 |阅读模式
5蛮牛币
报错方法ArgumentException: RandomRangeInt can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
UnityEngine.Random.Range

我的代码
#pragma strict
var sj:int = Random.Range(0,1);
function Start () {

}
function Update () {
if(sj==0){
Application.LoadLevel("A");
}
if(sj==1){
Application.LoadLevel("B");
}
}
求指教,哪里错了
正确的又是什么



回复

使用道具 举报

6蛮牛粉丝
1151/1500
排名
12224
昨日变化
2

3

主题

788

帖子

1151

积分

Rank: 6Rank: 6Rank: 6

UID
252894
好友
0
蛮牛币
35036
威望
0
注册时间
2017-11-6
在线时间
276 小时
最后登录
2017-12-28
发表于 2017-11-12 07:46:37 | 显示全部楼层
RandomRangeInt can only be called from the main thread.  只能在主线程中使用

回复

使用道具 举报

5熟悉之中
799/1000
排名
3659
昨日变化
1

39

主题

197

帖子

799

积分

Rank: 5Rank: 5

UID
216835
好友
2
蛮牛币
990
威望
0
注册时间
2017-4-9
在线时间
185 小时
最后登录
2018-9-16
 楼主| 发表于 2017-11-12 07:49:22 | 显示全部楼层
RandomRangeInt can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function

点评

大概意思就是:Random.Range(0,1)这个方法只能在主线程里调用,别用在构造器和字段初始化上,你可以把这个函数调用放在Awake函数或者Start函数里。  发表于 2017-11-13 03:54
[发帖际遇]: 一个袋子砸在了 a52856A 头上,a52856A 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

7日久生情
2671/5000
排名
917
昨日变化
5

48

主题

723

帖子

2671

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
69941
好友
1
蛮牛币
8064
威望
0
注册时间
2015-1-20
在线时间
822 小时
最后登录
2018-9-20
发表于 2017-11-13 03:51:12 | 显示全部楼层
var sj:int = Random.Range(0,1);这一行是变量的声明,这儿别调用Random.Range,声明就给一个默认值
把Random.Range方法放在Start()里面啊。

回复

使用道具 举报

排名
868
昨日变化
3

16

主题

1126

帖子

3139

积分

Rank: 9Rank: 9Rank: 9

UID
68430
好友
13
蛮牛币
11242
威望
0
注册时间
2015-1-14
在线时间
839 小时
最后登录
2018-9-20
发表于 2017-11-13 10:19:06 | 显示全部楼层
楼上说的对~~

评分

参与人数 1鲜花 +2 收起 理由
a52856A + 2 很给力!

查看全部评分


回复

使用道具 举报

5熟悉之中
799/1000
排名
3659
昨日变化
1

39

主题

197

帖子

799

积分

Rank: 5Rank: 5

UID
216835
好友
2
蛮牛币
990
威望
0
注册时间
2017-4-9
在线时间
185 小时
最后登录
2018-9-16
 楼主| 发表于 2017-11-13 19:49:57 | 显示全部楼层
煮粥侠 发表于 2017-11-13 03:51
var sj:int = Random.Range(0,1);这一行是变量的声明,这儿别调用Random.Range,声明就给一个默认值
把Rando ...

嗯,然后我用了
sj = Random.Range(0,1);
之后用return sj;返回值后才有用
[发帖际遇]: a52856A 被钱袋砸中进医院,看病花了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

4四处流浪
304/500
排名
10266
昨日变化
6

2

主题

128

帖子

304

积分

Rank: 4

UID
252298
好友
1
蛮牛币
318
威望
0
注册时间
2017-11-3
在线时间
78 小时
最后登录
2018-9-18
发表于 2017-11-14 14:23:30 | 显示全部楼层
出来扎到,小看一下,蹭蹭经验,

回复

使用道具 举报

5熟悉之中
799/1000
排名
3659
昨日变化
1

39

主题

197

帖子

799

积分

Rank: 5Rank: 5

UID
216835
好友
2
蛮牛币
990
威望
0
注册时间
2017-4-9
在线时间
185 小时
最后登录
2018-9-16
 楼主| 发表于 2017-11-14 19:09:50 | 显示全部楼层
q873438526 发表于 2017-11-14 14:23
出来扎到,小看一下,蹭蹭经验,

我也来蹭经验

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表