Unity版本:5.1.1f1 做公司项目的时候,无意间发现了一个很奇葩的现象:场景A(纯UI,故没有光源)转场到场景B的时候,B中原有的光源似乎失效了,但在Hierarchy窗口中能够看到光源存在,调整光源的明度参数,效果也是有的,只是看起来仍然非常暗. 而直接加载B场景就没有任何问题. 上图说明问题.我制作了两个场景,A场景没有灯光,有一个跳转到B场景的按钮: B场景有光源,有一个跳转到A场景的按钮,还放了一个圆柱体用于表现材质问题: 这是直接加载B场景的效果: 这是从A场景跳转B场景的效果…
先说一下我遇到的问题,我弄了一个对象池管理多个对象,对象池绑定在一个GameObject上,每个对象在OnBecameInvisible时会进行回收(即移出屏幕就回收),但是当场景切换或停止运行程序时场景中如果还有待回收的对象,就会报错,报错显示的信息为,我的对象池GameObject已经被销毁了云云,因为回收的对象我会把他们作为绑定了对象池的GameObject的子级来方便管理. 所以唯一的可能就是脚本方法调用顺序不可控,即不同GameObject的OnBecameInvisible在其它Ga…
在做游戏开发时,场景中的三角面和顶点数影响着运行效率,尤其是在手机平台上,实时的知道场景中的各项指标,对性能优化来说至关重要,下面我们来实现一个小功能,来实时计算场景中的三角面和顶点数: 如果要知道场景中的三角面和顶点数,首先我们要得到场景中所有的物体,如下: GameObject[] ob = FindObjectsOfType(typeof(GameObject)) as GameObject[]; 其次,在我们得到的这些Gameobject中,有的含有MeshFilter 有的不含有,我们…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 //NextWeapon.js ---------------------------------------------------------- By Henr…
using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 背景音乐脚本 /// </summary> public class AudioBackground : MonoBehaviour { static AudioBackground StaticObject; private bool LastMusicOn = true; void St…
这是上学期的一次课程作业,难度不高但是也一并记录下来,偷懒地拿课程报告改改发上来. 课程要求:使用sketchUp建模,在Unity3D中实现场景漫游和场景互动. 知识点:建模.官方第一人称控制器.网格碰撞器.刚体.触发器.射线(触发)碰撞器. 实验题目 基于SketchUp和Unity 3D的虚拟场景漫游和场景互动(增强现实) 实验内容 实验要求 实验要求是实现虚拟场景漫游和增强显示效果. 模型实现 我们组的项目模型采用SketchUp的小作业房屋设计模型修改而来,最终通过两张房屋设计图分别设…
背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景.因为Loading场景包含的资源较少,所以加载速度快.在加载主场景的时候一般会在Loading界面中显示一个进度条来告知玩家当前加载的进度.在Unity中可以通过调用Application.LoadLevelAsync函数来异步加载游戏场景,通过查询AsyncOperation.progress的值来得到场景加载的进度. 尝试——遇到问题…
背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景.由于Loading场景包含的资源较少,所以加载速度快.在加载主场景时一般会在Loading界面中显示一个进度条来告知玩家当前加载的进度.在Unity中可以通过调用SceneManager.LoadLevelAsync来异步加载游戏场景,通过查询AsyncOperation.progress来得到场景加载的进度. 而SceneManager.…
首先创建两个场景: One,Two 再创建一个空游戏对象: GameObject,并添加AudioSource组件,把要播放的音乐拖放进去 给GameObject添加脚本AlwayAudio,代码如下: using UnityEngine; using System.Collections; public class AlwayAudio : MonoBehaviour { void Start () { DontDestroyOnLoad(this.gameObject); } } 保持Gam…
关于Unity3D中打AB(AssetBundle)资源包,默认是不连Shader一同打包进去的,所以得自行添加,添加方式比较简单,不需要往项目中添加Shader,只是点选一下就可以了,具体实现方式如下: 在Unity3D 的头部菜单栏下点Edit>Project Settings>Graphics 依次点选后,在Unity3D的右边编辑器Always Included Shaders 下把Size改大一些,比如当前默认是6,则需要添加多少个Shader,就加多少,比如要加三个系统默认的Sha…