中易网

postqueuedcompletionstatus 线程安全吗

答案:2  悬赏:0  
解决时间 2021-04-28 01:50
postqueuedcompletionstatus 线程安全吗
最佳答案
postqueuedcompletionstatus 线程安全
在Unity3D中,因为游戏世界是3D世界,鼠标在屏幕上的点击并不能直接用于确定选中的是哪个物体。当然我们可以通过在被点击物体上添加脚本实现OnMouseDown()函数来处理点击事件。但是如果被点击物体是在运行过程中被动态生成的,添加脚本变得很麻烦。因此如果要在游戏中实现鼠标选择某一物体的效果,可以使用以下方法:
function Update () {
if(Input.GetButtonDown("Fire1")) {
//通过用户的点击中获取一条射线ray
var ray : Ray = Camera.main.ScreenPointToRay( Input.mousePosition );

//得到射线ray击中的所有目标
var array : Array = Physics.RaycastAll( ray );

var hit: RaycastHit;
var tf : Transform;

if(array.Count != 0){//若被击中目标数不为零
hit = array[0];//获得被击中的目标
tf = hit.transform;
//tf.gameObject;
全部回答
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据 比如一个 arraylist 类,在添加一个元素的时候,它可能会有两步来完成:1. 在 items[size] 的位置存放此元素;2. 增大 size 的值。 在单线程运行的情况下,如果 size = 0,添加一个元素后,此元素在位置 0,而且 size=1; 而如果是在多线程情况下,比如有两个线程,线程 a 先将元素1存放在位置 0。但是此时 cpu 调度线程a暂停,线程 b 得到运行的机会。线程b向此 arraylist 添加元素2,因为此时 size 仍然等于 0 (注意,我们假设的是添加一个元素是要两个步骤,而线程a仅仅完成了步骤1),所以线程b也将元素存放在位置0。然后线程a和线程b都继续运行,都增加 size 的值,结果size等于2。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
买一辆马6要多少钱?
姜虎东现在主持的节目叫什么名字?就有个小女
用AMD 760K 配什么显卡
怎么买nba比赛胜负输赢彩票
乐洋路/同保南路(路口)地址在哪,我要去那里
为什么汽车的反光镜上有个小圆镜?
任务栏 音量图标 不见。
qq空间,老是出现这个,请说一下,谢谢。
请大师帮忙算算日子
今天大盘很好,600702这股适合减仓吗?
你每天接触过最多的东西是什么?
装备被盗申请受理
关于动漫《潘朵拉之心》
思路英雄游戏在那里建设城防设施
原油精馏塔底为什么要吹入过热水蒸气
推荐资讯
为什么肌拉力角越大,力臂越大
推荐几本书来看,一个男孩走向成熟的人应该看
公寓房的贷款利率为何比住宅房高
江苏3区邪能幽灵能卖多少钱?
潘玮柏什么时候出新专辑啊?
古姿语地址在什么地方,想过去办事
麻烦的时候怎么办?但我又不知道为什么麻烦,
有那些感人的书,小学生可读
新员工第一天上班怎样做好自我介绍
我买了一个迷你音响!带冲电的!说明书写着电
做路由交换能赚钱吗?
现在结婚登记要多少岁才行
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?