Unity3d
(≯^ω^≮)喵毛
这个作者很懒,什么都没留下…
展开
-
游戏界面设计GUI
区别NGUI:Unity的插件,由外部公司开发的。(因开发人员离开Unity,继续开发NGUI,所以NGUI现在仍在更新)UGUI:Unity吸收NGUI的开发公司,为Unity新增原生的UGUI。什么是GUIGUI是指那些显示在屏幕上给予用户提示的界面,这些界面不会与游戏内容产生互动或者影响。GUI用的是屏幕坐标系,都是2D效果。主要API所有代码都要写在OnGUI()方...原创 2019-11-05 19:49:06 · 2877 阅读 · 0 评论 -
Unity3D 修改物体的区域 Area Mask
区域环境对象可以设置不同的区域。导航只能在选中的区域内规划路线。修改方法原理: 使用异或运算【^】创建一个方法,把要开关的区域传入,采用异或运算方式,就可以开关传入的区域//设置区域void SetArea(int areaMask) { //新区域 = 旧区域 ^ 某个区域 nav.areaMask = nav.areaMask ^ areaMa...原创 2019-11-03 17:05:08 · 2372 阅读 · 0 评论 -
Unity3D AI导航 Navigation
设置步骤:调出Navigation面板:Window -> AI -> Navigation选择所有环境物体(静止物体),勾选【Navigation Static】,如果是不连接的对象勾选【Navigation OffMesh】设置环境物体(静止物体)是否能通过,山体、墙设置【Not Walkable】,平面设置【Walkable】其他数据都调整完成后,可以点击【bac...原创 2019-11-03 17:04:48 · 3126 阅读 · 0 评论 -
Unity3D AI导航 Area用法
Area用法物体如果选择了区域,那么导航的路径只会选择区域内的路径。越下层的区域,导航路径会优先选择。实验步骤:新建五个地板对象,做成三座桥新建导航区域设置静态对象,给三座桥设置对应的区域创建3个颜色的贴图,这样方便我们理解区域的效果创建3个对象,并分别给3个对象3个不同的导航区域、不同的题图颜色在桥对面放置一个“cube”对象,作为桥对面...原创 2019-11-03 16:57:49 · 1421 阅读 · 0 评论 -
Unity 协同 StartCoroutine()
协同作用触发执行一段代码,中间等待一定时间后再继续执行。步骤:【创建】一个方法,要求方法返回:IEnumerator类型将代码段放入方法中在需要等待的位置,【插入】返回值:yield return new WaitForSeconds(等待时间);使用【协同函数】调用方法:StartCoroutine(方法);代码实例public class SynergyTest : Mon...原创 2019-11-03 16:57:26 · 702 阅读 · 0 评论 -
Unity 加载资源 Resources.Load<T>()
加载资源概念从脚本加载需要的文件,再对文件资源进行操作。正常都是通过拖拽文件到组件界面加载文件资源。加载资源条件必须把文件放在Assets -> Resources文件夹下,可以自建一个Rescources文件夹。加载使用加载资源(返回一个泛型对象):var 变量= Resources.Load<T>("Resources文件夹下的文件路径");加载资源就相当于...原创 2019-11-03 16:57:17 · 1707 阅读 · 0 评论 -
Unity 音频、背景音乐 Audi组件
音频格式【aiff】(短音效)(原声文件)【wav】(短音效)【MP3】(长音乐)【ogg】(长音乐)(原声文件)音频组件 Audio 播放音乐【Audio Source】 音频资源组件【Audio Listener】 音频接收组件摄像机一般添加背景音乐,还有需要音频收听组件【Audio Listener】接收声音【mute】静音【Play On Awake】自动播放...原创 2019-11-03 16:57:07 · 444 阅读 · 0 评论 -
Unity Application.LoadLevel() 已过时
解决办法:使用EditorSceneManager方法:https://blog.csdn.net/shenqiankk/article/details/100137502原创 2019-11-03 16:56:51 · 3278 阅读 · 0 评论 -
Unity 多场景切换 EditorSceneManager.LoadScene()
方法:加载场景引用包:using UnityEditor.SceneManagement;通过场景名或场景索引加载场景:EditorSceneManager.LoadScene(索引值/场景名称);异步加载场景:EditorSceneManager.LoadSceneAsync(索引值/场景名称);步骤:unity工具对场景切换的预览时有小bug:切换场景的物体没有光照效果,不过发布后...原创 2019-11-03 16:56:30 · 6336 阅读 · 0 评论 -
Unity 按键取值 Input
GetMouseButoon(接收鼠标按键)GetKey(接收键盘按键)GetButton设置标准输入原创 2019-11-03 16:56:19 · 1532 阅读 · 0 评论 -
Unity 预存储 PlayerPrefs
PlayerPrefs以【键值对】的形式存储数据,数据会一直【存放在注册表】中,直到跟着游戏卸载一起删除。存储数据:PlayerPrefs.SetString("name", "蒋进忠"); 存储字符串PlayerPrefs.SetFloat("num", "89.99f"); 存储浮点数PlayerPrefs.Setint("age", "22"); 存储整数读取数据:str...原创 2019-11-03 16:55:39 · 151 阅读 · 0 评论 -
Unity3D AI导航手动设置连接线
NavMeshAgent属性isOnOffMeshLink:表示是否处于链接线上属性currentOffMeshLinkData:获取当前所在链接的数据,返回OffMeshLink类型的对象方法stop():停止向导方法resume():继续向导方法CompleteOffMeshLink():完成当前链接线OffMeshLinkData属性startPos:起始位置属性endPos...原创 2019-10-31 20:31:49 · 649 阅读 · 0 评论 -
Unity3D 射击游戏练习实例
知识点:刚体组件(rigidbody),受力和碰撞的组件触发器(Trigger),开启后物体碰撞效果取消,但仍会返回碰撞消息复制物体对象:var box = Instantiate(对象);设置对象坐标位置:box.transform.position = new Vector3(三维坐标点);绘制光标:绘制是从左上角为原点开始绘制,为了在准心射击,坐标点做些偏移。Cursor.Se...原创 2019-08-28 16:32:00 · 15381 阅读 · 0 评论 -
Unity3D 物体逻辑分组/分层 Layer
选择当前对象的逻辑分层(逻辑分组)自建逻辑层(逻辑组)选择逻辑层1<<逻辑层编号 1<<9 编号为9的逻辑层LayerMask.GetMask("逻辑层名称"); LayerMask.GetMask("A"); 名称为A的逻辑层...原创 2019-08-27 21:05:37 · 2355 阅读 · 0 评论 -
Unity3D 捕获物体碰撞消息 Trigger
碰撞3种状态:Enter,两个物体碰撞接触的第一帧Stay,撞击物体变形、弹开的过程Exit,碰撞物体分离的第一帧触发器【Is Trigger】 是否开启触发器(作用力效果),开启后物体失去碰撞效果,但仍会发送碰撞消息。【Size】 物体碰撞作用的体积碰撞消息调用触发器【未开启】时,使用Collision方法接受碰撞消息:参数对象为被撞击物体OnCollisionEnter...原创 2019-08-27 21:03:44 · 2453 阅读 · 1 评论 -
Unity3D 物体碰撞、物理碰撞材质
碰撞条件:两个物体都要有Box Collider组件有一个物体对象拥有物理引擎的【Rigidbody】物理材质创建物理材质文件:【Dynamic Friction】 动摩擦系数【Static Friction】 静摩擦系数【Bounciness】 弹力系数【Friction Combine】 摩擦系数组合(两个物体摩擦系数的选择,有:平均值、最大值、最小值、差值)【B...原创 2019-08-27 21:03:06 · 2026 阅读 · 0 评论 -
Unity3D 物理引擎、物体施加力 Rigidbody
物理引擎组件Rigidbody(刚体,物体的重力效果 和 物体的实体效果)Mass,质量Drag,摩擦系数Angular Drag,角摩擦系数User Gravity,是否开启重力效果Is Kinematic,不会在力的作用下,产生重力效果Interpolate,Collision Detection,Constraints,做位置和旋转上的约束(锁定)加力: 只有对象...原创 2019-08-27 21:02:43 · 5971 阅读 · 0 评论 -
Unity3D 粒子系统
Unity内置粒子系统1.右键目录,导入粒子系统2.如果没有,进入Asset Store,搜索particles,选择免费的粒子包,下载导入即可原创 2019-08-27 21:00:59 · 860 阅读 · 0 评论 -
Unity3D 地形设置
步骤:1.创建Terrain对象2.画笔【创建新的Terrain对象】【拉升或降低地形的高度】左键 拉升地形,Shift+左键 降低地形【画纹理】可以添加外界的纹理包【设置地形高度】【平滑地形】【未知】3.树模型,可以添加外界的树模型包4.花草模型,可以添加外界的花草模型包...原创 2019-08-27 21:00:27 · 3240 阅读 · 0 评论 -
Unity3D 移动和旋转 Translate和Rotate
移动按方向移动:transform.Translate(Vector3.方向 * Input.GetAxis("标准输入") * 速度 * Time.deltaTime);按轴移动:float translation = Input.GetAxis("标准输入") * 速度 * Time.deltaTime;transform.Translate((translation, 0, 0);...原创 2019-08-24 17:11:33 · 2086 阅读 · 0 评论 -
Unity3d 报错:The namespace 'global namespace' already contains a definition for 'CubeMove'
说明【项目资源】目录中游【重复名称】的脚本【被调用】。解决办法: 在项目目录中找到重复名称的文件,删掉就可以。原创 2019-08-24 20:19:53 · 11816 阅读 · 1 评论 -
Unity3d 添加、获取、删除对象组件
获取组件对象.GetComponent<T>();添加组件对象.AddComponent<T>();删除组件Destroy(组件,延迟销毁时间);代码实例原创 2019-08-24 20:23:54 · 1792 阅读 · 0 评论 -
Unity3d 动态操作对象
创建GameObject.GamePrimitive(PrimitiveType.对象类型);参数(枚举类型)是:PrimitiveType.对象类型返回一个【GameObject对象】销毁GameObject.Destory(对象,延迟销毁时间)预设与克隆预设对象:创建GameObject对象把拼凑好的对象装入hero中把hero转入新建好的文件中,就可以生产一个...原创 2019-08-24 20:26:39 · 462 阅读 · 0 评论 -
Unity 脚本引用
方法一:创建逻辑空间引用方法二:拖拽脚本引用原创 2019-08-24 20:30:21 · 1342 阅读 · 0 评论 -
Unity 渲染概念
物体对象的组成所有的物体都是有【三角形网格】组成,越光滑的面,用到的三角形越多。三角形越多,物体越精细,但运算量也越大Material 渲染效果对每个三角形网格使用图片渲染,从而达到对物体的渲染...原创 2019-08-24 20:32:06 · 966 阅读 · 0 评论 -
Unity 面板介绍
Scene 场景作用: 开发阶段,可以查看当前场景的效果左上角工具:拖动场景,移动场景(快捷键:Q)移动物体/摄像机(快捷键:W)旋转物体/摄像机(快捷键:E)改变物体大小(快捷键:R)??(快捷键:T)??(快捷键:Y)Game 预览作用: 览当前项目的实际效果Hierarchy 物体对象表作用: 存储、创建物体对象内置对象:Cube 立方体(正方体)Sp...原创 2019-08-24 20:34:41 · 2708 阅读 · 0 评论 -
Unity3D 射线、鼠标点击消除 Ray
鼠标点击选中物体鼠标是摄像机二维平面上的一个点,通过射线可以延伸至三维空间选择物体。先给摄像机添加射线组件:Effects -> Line Renderer设置射线的初始位置(0)和结束位置(1),结束位置正常是有代码设置设置射线宽度 Width添加脚本编写脚本public class RayTest : MonoBehaviour{ LineRendere...原创 2019-08-27 20:55:53 · 2188 阅读 · 0 评论 -
Unity3D 渲染操作
步骤:第一步:先创建【纹理文件夹“Textures”】和【渲染文件夹“Material”】,并且存放纹理图片【创建】渲染对象第二步:【选择】shader处理方式,Legacy Shaders -> Diffuse【拖拽】纹理图片第三步:【拖拽】渲染对象,给物体对象一个渲染方式...原创 2019-08-27 20:56:20 · 5625 阅读 · 0 评论 -
Unity3D VS调试
先运行Unity,再运行VS代码进行调试。原创 2019-08-27 20:56:40 · 625 阅读 · 0 评论 -
Unity3D 光照、光源
渲染光照,对GPU消耗非常大平行光 Directional类似太阳光,从不同位置都是一个角度照射。点光 Point类似蜡烛光,有一个点发散出来。聚光 Spot聚光灯,带有方向性发散的光源。本质也是点光,但是聚光只朝某个方向发散光源。范围光(区域光)Area区域内的平行光,主要用于某些平行光被遮挡无法涉及的区域。只有烘焙之后,范围光才能预览到。光源强度 Intensity实时...原创 2019-08-27 20:57:50 · 874 阅读 · 0 评论 -
Unity3D 设置烘焙场景
何为烘焙?烘焙是将光源效果存储成贴图,这样游戏运行时静止物体的光源渲染就是贴图渲染,不需要涉及GPU的运算,从而节约大量GPU资源。实时计算物体的光源效果,需要大量的GPU运算,所以烘焙可以节约静止物体的运算资源,集中运算资源在移动物体上。设置步骤:1.创建范围光(仅在烘焙状态下起效果)2.选择物体,设置为静态3.新版本的Unity烘焙都是自动存储,只要打开lighting界面,查...原创 2019-08-27 20:58:24 · 5803 阅读 · 0 评论 -
Unity3D 人称设置(第一人称视角、第三人称视角)
设置第一人称视角1.把物体的坐标和摄像机的坐标设置成一样的,这样摄像机就在物体内部,就是第一人称的视角。2.把摄像机拖拽进物体对象内,摄像机变成物体的子对象,这样摄像机就能跟着物体一起移动。设置第三人称视角方式一:(设置子对象)1.将摄像机拖拽到合适的角度上2.把摄像机拖拽进物体对象,摄像机成为物体的子对象,这样摄像机就可以跟着物体一起移动方式二:(脚本设置)创建摄像机...原创 2019-08-27 20:58:57 · 30764 阅读 · 1 评论 -
Unity3D 导入模型
步骤:原创 2019-08-27 20:59:23 · 9569 阅读 · 0 评论 -
Unity3D 动画操作
方式一:Animatoranimation.SetBool("状态转换的参数", true/false)方式二:Animationanimation.Play("动作片段") 直接播放动画,【没有动作过渡效果】,多用于怪物、敌人,玩家不太关注的物体可以使用paly()animation.CrossFade("动作片段") 动画切换时,【自带过渡处理】,人物动作细腻,多用于主角、配角,玩...原创 2019-08-27 20:59:53 · 2449 阅读 · 3 评论 -
Unity 如何使用
新建项目Unity 项目目录表调节目录展示大小创建物体对象目录添加文件脚本运行设置打开脚本编写对象绑定脚本测试运行发布程序...原创 2019-08-23 18:27:30 · 735 阅读 · 0 评论