Unity面试题加强版

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2024.12.13

(1)多线程程序同时运行多个线程,而在任一指定时刻只有一个协程在运行,并且这个正在运行的协同程序只在必要时才被挂起。

(2)除主线程之外的线程无法访问Unity3D的对象、组件、方法。

(3)Unity3d没有多线程的概念,不过unity也给我们提供了StartCoroutine(协同程序)和LoadLevelAsync(异步加载关卡)后台加载场景的方法。

(4)StartCoroutine为什么叫协同程序呢,所谓协同,就是当你在StartCoroutine的函数体里处理一段代码时,利用yield语句等待执行结果,这期间不影响主程序的继续执行,可以协同工作。而LoadLevelAsync则允许你在后台加载新资源和场景,所以再利用协同,你就可以前台用loading条或动画提示玩家游戏未卡死,同时后台协同处理加载的事宜

Unity的脚本语言基于Mono的.Net平台上运行,可以使用.NET库,这也为XML、数据库、正则表达式等问题提供了很好的解决方案。

Unity里的脚本都会经过编译,他们的运行速度也很快。这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上。

JavaScript:和网页中常用的JavaScript不一样,它编译后的运行速度很快,语法方面也会有不少区别。

C#

Boo:可以看做是Python语言的变种,又糅合了Ruby和C#的特性,它是静态类型语言

仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用

Awake-》OnEnable-》Start

OnEnable在同一周期中可以反复地发生

当物体是否可见切换之时。可以用于只需要在物体可见时才进行的计算。

Resource.Load

AssetBundle.Load

三个阶段,OnCollisionEnter/Stay/Exit函数

rigidbody.AddForce/AddForceAtPosition,都是rigidbody的成员函数

transform.Rotate

transform.RotateAround

PlayerPrefs.SetInt与PlayerPrefs.GetInt

Awake–>OnEnable–>Start–>Update–>FixedUpdate–>LateUpdate–>OnGUI–>Reset–>OnDisable–>OnDestroy

FixedUpdate,每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。

LateUpdate,,是在所有update结束后才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。

一般是组件上绑定的物体对象被删除了

在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。

反转动画,讲动画的速度调到-1,碰撞时,被碰撞物体与碰撞物体有collider组件,碰撞物体有刚体组件,或角色碰撞得包含角色组件OR改变animation.speed

publicclassPlayer:MonoBehaviour{

publicTransform_cameraTrans;

privateVector3_cameraOffset;

voidAwake(){

_cameraOffset=transform.position-_cameraTrans.position;

}

voidUpdate(){

_cameraTrans.position=transform.position-_cameraOffset;

吊机吊物体需要节点挂接和坐标系转换

获取:GetComponent

增加:AddComponent

删除:Destroy

A.动画放大B.动画转换C.动画的淡入为其他动画

A.加载关卡B.异步加载关卡C.加载动作

Debug.Log();

工程目录下的Assets/Editor文件夹下。

GUI.DragWindow();

localPosition:自身位置,相对于父级的变换的位置。Position:在世界坐标transform的位置

Mathf.Round四舍五入

Mathf.Clamp限制

Mathf.Lerp插值

privatefloattimer=0f;

privateinth=0;

privateintm=0;

privateints=0;

privatestringtimeStr=string.Empty;

timer+=Time.deltaTime;

if(timer>=1f){s++;timer=0;}

if(s>=60){m++;s=0;}

if(m>=60){h++;m=0;}

if(h>=99){h=0;}

voidOnGUI(){

timeStr=string.Format("{0:D2}:{1:D2}:{2:D2}",h,m,s);

GUI.Label(newRect(10,10,100,200),timeStr);

AddClip添加剪辑、Blend混合、Play播放、Stop停止、Sample采样

在场景中添加一个Plan,Camera,DirectionalLight,Cube。添加两个脚本scrollerScirpt(挂在Camera),CubeDragScript(挂在Cube上)。

1.鼠标滚轮实现缩放:将摄像机的镜头拉近或者拉远,调整摄像机的视角就可以实现,主要实现代码如下:

//鼠标滚轮的效果

if(Input.GetAxis("MouseScrollWheel")<0){

if(Camera.main.fieldOfView<=100)

Camera.main.fieldOfView+=2;

if(Camera.main.orthographicSize<=20)

Camera.main.orthographicSize+=0.5F;

//Zoomin

if(Input.GetAxis("MouseScrollWheel")>0){

if(Camera.main.fieldOfView>2)

Camera.main.fieldOfView-=2;

if(Camera.main.orthographicSize>=1)

Camera.main.orthographicSize-=0.5F;

2.鼠标实现在场景中拖动物体:

解决思路就是将世界坐标转换成屏幕坐标,然后计算物体与鼠标之间移动量,循环鼠标被按下操作,得到鼠标的当前位置,加上计算好的移动量,将新的坐标赋值给物理就行了。主要是开启一个协同程序(Corountine)来处理

主要代码如下:

//Usethisforinitialization

voidStart(){

StartCoroutine(OnMouseDown());

IEnumeratorOnMouseDown(){

//将物体由世界坐标系转换为屏幕坐标系

Vector3screenSpace=Camera.main.WorldToScreenPoint(transform.position);

//完成两个步骤1.由于鼠标的坐标系是2维,需要转换成3维的世界坐标系

//2.只有3维坐标情况下才能来计算鼠标位置与物理的距离,offset即是距离

//将鼠标屏幕坐标转为三维坐标,再算出物体位置与鼠标之间的距离

Vector3offset=transform.position-Camera.main.ScreenToWorldPoint(newVector3(Input.mousePosition.x,Input.mousePosition.y,screenSpace.z));

while(Input.GetMouseButton(0)){

//得到现在鼠标的2维坐标系位置

Vector3curScreenSpace=newVector3(Input.mousePosition.x,Input.mousePosition.y,screenSpace.z);

//将当前鼠标的2维位置转换成3维位置,再加上鼠标的移动量

Vector3curPosition=Camera.main.ScreenToWorldPoint(curScreenSpace)+offset;

//curPosition就是物体应该的移动向量赋给transform的position属性

transform.position=curPosition;

yieldreturnnewWaitForFixedUpdate();//这个很重要,循环执行

1、主要是在UICamera脚本中用射线判断点击的物体并通过SendMessage调用OnClick()OnPress()等函数,可以说NGUI的按钮是通过发消息这个方式调用的。具体方法名称是OnClick()

2、voidAwake(){

//获取需要监听的按钮对象

GameObjectbutton=GameObject.Find("UIRoot/Button3");

//设置这个按钮的监听,指向本类的ButtonClick方法中。

UIEventListener.Get(button).onClick=OnButton3Click;

privatevoidOnButton3Click(GameObjectbutton){

Debug.Log("我是按钮3被点击了");

1、使用预制物体对象Prefab

2、使用对象池技术,不使用时关闭,使用时打开

能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器

【Physics.OverlapSphere相交球检测碰撞,碰撞检测需要包围盒】

MonoBehaviour.OnLevelWasLoaded

iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出。让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等“方法:

a、MoveTo物体移动;

Transform父类是Component

给子控件设置上下两个锚点为10

设置子控件锚点为中心

Strings="你是坏蛋";

s.Replace("坏蛋","**");

Awake()

OnEnable()

Start()

FixedUpdate()

OnTriggerXXX(Colliderother)

OnCollisionXXX(CollisioncollisionInfo)

Update()

LateUpdate()

OnGUI()

OnDisable()

OnDestroy()

resource一般用来放置一些需要动态加载的资源,打包程序的时候会将Resource目录下的全部文件都加密压缩打进包内,这样再想使用assetbundle方式打小包的话就不行了

publicfloatSpeed=1;

transform.RotateAround(newVector3(0,1,2),Vector3.up,Speed);

A.可被用于将TextAssets自动缓存到本地磁盘

B.可被用于将Resource自动缓存到本地磁盘

C.可被用于将AssetsBundles自动缓存到本地磁盘

D.可被用于将任意的Unity资源文件自动缓存到本地磁盘

A:MonoBehaviour.OnSceneWasLoaded

B:MonoBehaviour.OnSceneEnter

C:MonoBehaviour.OnLevelWasLoaded

D:MonoBehaviour.OnLevelEnter

A.当MonoBehavior类型应用后,每帧调用一次

B.常被用于处理RigidBody的更新

C.在所有Update函数执行后才能被调用

D.常被用于实现跟随相机效果,且目标物体的位置已经在Update函数中被更新

A.GetComponent().DoSomething()

B.GetComponent

THE END
1.摩托车撞人轻伤赔偿标准是多少钱北京昌运律师事务所律师 执业认证 平台保障 咨询我 评分5.0分服务:5.5万人专家导读 摩托车撞人致轻伤的赔偿标准不固定,得综合好多方面来定。通常包含医疗费、误工费、护理费、交通费、住宿费、住院伙食补助费以及必要的营养费等。医疗费要看医疗机构开的医药费、住院费等收款凭证,再结合病历和诊断证明等证据。误工https://m.64365.com/zs/3608611.aspx
2.摩托车全责撞人赔偿标准问题描述: 摩托车全责撞人赔偿标准承诺:保障您的权益,解决您的疑惑,我们的律师为您提供专业服务,5分钟内响应 立即咨询 2位律师解答 未面谈及查看证据材料,律师回答仅供参考。 平台特邀律师推荐 已帮助322073 人· 响应时间 平均5分钟内 咨询我 摩托车全责撞人时,赔偿标准涵盖人身损害、财产损失及精神损害。依照《https://www.findlaw.cn/wenda/q_47078898.html
3.人被摩托车撞伤后赔付怎么计算的若双方就赔偿事宜无法达成一致,受害人可向法院提起诉讼,法院会根据相关证据和法律规定来判定赔偿金额。同时,若存在酒驾、毒驾等严重违法情形,可能会面临更严厉的法律制裁。 以上是关于人被摩托车撞伤后赔付怎么计算的的相关回答,遇到相似问题不要慌,点击咨询快速找到专业、合适的律师,深度沟通法律需求,快速获得解答!https://www.66law.cn/laws/3193623.aspx
4.帮助中心点击“专家团”进入 专家团列表页,如下图所示:可以查看专家的在线状态,根据每位专家的擅长领域极其基本情况,提问者可以选择合适的专家进行提问,用户必须登录后方可向专家提问,点击“向他提问”即可进入提问页。 二、输入提问的问题 如下图所示,在提问的表单页,输入问题的标题和问题内容,标题要简洁明了,内容要详细https://www.tongyi.com/index.php/helpp/search
5.www.scmc技术上,需要确保自动驾驶系统安全稳定,能够处理复杂场景,同时考虑乘客体验;成本上,需要大规模量产来降低成本,并与车厂合作;政策上,需要获得不同阶段许可,满足相应要求。对任何一家提供无人驾驶解决方案的公司来说,这些都是需要克服的挑战。 总策划|杜传贵林海利http://www.scmc-xa.com/xxxr/520844.shtml
6.现在马上回答。骑摩托车头部受到撞击,撞到左边,但右边起了肿起现在马上回答。骑摩托车头部受到撞击,撞到左边,但右边起了肿起来了,眼睛里面有些血丝。拜托,速度,谢谢啊!! 温馨提示:因无法面诊,医生建议仅供参考 乔平 主治医师 内科 极速问诊 一级甲等 四川省乐至县良安中心医院 问题分析:你好,这个建议尽快检查做ct检查脑,可能是有问题的可能很大的哦。不要延误病情。 https://3g.club.xywy.com/htm/911/455245.htm
7.1000个笑死人的脑筋急转弯及答案一辆客车发生了事故,所有的人都受伤了,为什么小明却没事? 答案: 因为他不在车上 有个地方能进不能出,请问这是什么地方? 答案: 坟墓 鸡鹅百米赛跑,鸡比鹅跑得快,为什么却后到终点站? 答案: 鸡跑错了方向 上课铃声东响了,却没有一个同学在教室里,怎么回事? http://www.360doc.com/content/23/0508/11/74527663_1079737355.shtml
8.庄园形堂今天答案最新小鸡答案支付宝今天最新汇总蚂蚁庄园小课堂今天答案最新分享(持续更新),小鸡答案即支付宝中的蚂蚁庄园小课堂活动,参与该活动的玩家每天可以通过回答问题来领取小鸡饲料。那么庄园小课堂今天答案是什么样的呢?接下来就让我们一起了解一下蚂蚁庄园小课堂今天答案最新汇总吧。 庄园小课堂今天答案最新 https://www.duote.com/tech/myzy/326712.html
9.梨花声音变现诱导消费,言行不一,七天体验无理由退款的承诺不予消费保在线投诉维权平台 审核通过 2022-02-09 10:25:09网先生/女士 发布成功 2022-02-09 10:25:07一切形式的刷单返佣、充值提现都是诈骗。消费保平台处理投诉不收取任何费用、同时消费保工作人员不会在评论区留下任何联系方式联系投诉人,请不要随意相信通过微信及QQ联系的陌生人,更不要给陌生人汇款,谨防诈骗!https://m.xfb315.com/complaints/details/95112986.html
10.脑筋急转弯5000题分享脑筋急转弯5000题目及答案房间里着火了,小明怎么也拉不开门,请问他后来是怎么出去的? 答案: 推开门 放大镜什么都可以放大,但有一样东西不能放大,是什么? 答案:角度 飞机从天上掉下来,为什么没有一个受伤的? 答案:全都死了 飞机撞在大树上怎样会坏了? 答案:是纸飞机 风平浪静的城市是哪里? 答案:宁波 盖楼要从第几层开始盖? 答案https://m.ali213.net/news/gl2203/805497.html
11.中国法院网[主持人]: 各位网友好,欢迎关注由最高人民法院网络办、中国法院网联合举办的“两会大法官访谈”系列网络直播。从3月5日开始,部分高院院长和副院长将陆续走入中国法院网直播间与网友在线交流。 [17:17:29] [主持人]: 嘉宾已经来到法院网直播室。 [17:33:43] [主持人]: 张院长,您好!欢迎您作客中国法院网。https://www.chinacourt.org/chat/chat/2009/03/id/7231.shtml
12.file.wboit.com/fgqq17342608一,女人与拘牲交片完整片 ,女生让男生插曲40分钟 二,看完下面会流水水的作文500字,女厅长下面水真多 三,人与善XUANWEN在线播放,夹住去上学不可以掉下来作文 四,好男人视频在线观看高清直播,男人放进女人阳道动态图 五,18款夜间禁用软件下载网页,中国XXXXXL17免费 六,两个奶头被吃得又翘又硬动态图,免https://file.wboit.com/fgqq17342608
13.quinovare.com/xxxr84821217<!DOCTYPE/608283.html“新时代,需要的是复合型特殊教育教师。”杭州师范大学特殊教育专业负责人、教授马伟娜表示,“复合型”是在融合教育、教康结合等特殊教育发展趋势下,对新时代高素质专业化特殊教育教师培养的重要要求。 自2014年起,杭州师范大学特殊教育专业围绕高质量复合型特殊教育教师培养,以“特殊教育、融合教育、教育康复、教师基本http://quinovare.com/xxxr84821217%3C!DOCTYPE/608283.html
14.我老公撞死一老太太,马上报110和120,垫付了医药费和丧葬费,家属不责不责的先别说,你和受害家属换个位置,你肯不肯嘛 https://www.zhihu.com/question/453937928/answer/2925120676?utm_id=0