unity, 慎用DontDestroyOnLoad】的更多相关文章

如果想让一个节点切换场景时不销毁,可以为它添加如下脚本: using UnityEngine;using System.Collections; public class dontDestroyOnLoad : MonoBehaviour { void Start () {        //ref: http://answers.unity3d.com/questions/13130/scene-to-scene-variables.html        //ref: http://stac…
1.  前言 这是我在开发过程中使用的一点总结,目前使用的东西包含基础登录功能,存档功能,成就系统,以及DLC安装功能.Steamwork不仅仅有这些功能还有游戏内交易,排行榜,数据传输等功能,这些功能我并未亲身体验过于是不包含在本文档当中.文章详细使用在<Steamwork.Net使用>这里不想看前面可以直接跳过 2.  版本 我使用的版本为Steamworks.NET_15.0.1请大家注意版本不同 3.  Steamwork.Net 官方下载地址 https://github.com/r…
UI Kit 快速入门 首先我们来进行 UI Kit 的快速入门 制作一个界面的,步骤如下: 准备 生成代码 逻辑编写 运行 1. 准备 先创建一个场景 TestUIHomePanel. 删除 Hierarchy 其他的 GameObject. 搜索 UIRoot.prefab,拖入 Hierarchy. 在 UIRoot / Design GameObject 下创建 Panel ( 右击 Design -> UI -> Panel ). 将该 Panel 改名为 UIHomePanel.…
Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态加载,可以指定路径和来源的. 其实场景里所有静态的对象也有这么一个加载过程,只是Unity3D后台替你自动完成了. 详细说一下细节概念:AssetBundle运行时加载:来自文件就用CreateFromFile(注意这种…
//切换场景时怎么能让音乐不停? /////////////////////////////////////////////////////////////////// //切换场景时怎么防止某个物体销毁? //代码 void Awake() { DontDestroyOnLoad(transform.gameObject); } //这个游戏对象不要是子物体 //C# 中的 float为小数要带 f 符号如 //代码 float movev = 0.3f; // ///////////////…
自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录声音.场景切换.武器弹药等. 关于碰撞 先插一句.上一篇记录了Unity3…
避开unity的坑(转摘) 以下总结一部分来自经验之谈,一部分来自其他人的分享.总的来讲,unity开发原型和效果.验证想法,确实是无比便利.可能一个月就把核心玩法做得差不多.强大的编辑器功能让我们也有很大的可扩展空间来协助我们开发工具.可是编辑器是把双刃剑.如果提前看清楚有什么坑在前面,或者其他人踩过什么坑.我想这会对项目风险的把控会有很大帮助. 避开unity的坑 1.制作抽象的prefab来做关卡编辑 尽可能制作抽象的prefab来做关卡编辑,该prefab应该足够抽象简单(只有一个Gam…
借鉴自:http://www.cnblogs.com/CodeCabin/p/unity_global_manager.html 实现复杂一些的全局控制,如切换游戏关卡等操作,更常用的方式是使用单例类. 单例类的实现又分为两种: 继承自MonoBehaviour的单例类 纯C#的单例类 前者的优点是: 可以在Inspector中显示,便于赋值和查看变量等: 可以利用MonoBehaviour的接口: 可以使用Coroutine. 等等. 缺点也很多,主流的观点是能不继承MonoBehaviour…
最近在做unity shader forge和marmoset的优化,TA那边遇到了一个阴影显示的问题,具体如下:   在Forward Rendering状态下,静态场景使用了是shader forge生成的blendlayer类的shader,使用lightmap烘培贴图后,动态角色走到静态物体附近时,方向光在角色上的投影,无法投射到使用shader forge材质的物体上,但其他材质和使用marmoset的材质可以正常接收.查询了一些网站解决方案后,最终确定是custom shader 写…
转自:星辰的<Unity3D占用内存太大的解决方法> 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态加载,可以指定路径和来源的. 其实场景里所有静…
In the first scene or maybe the Main Menu scene of your game Create an Empty Gameobject. Call it whatever you like, for reference, I would call it as GO_LoadingScreen. Attach the script below to it: using UnityEngine; using System.Collections; public…
Asset Bundle工作流程及人物换装实例- 刘刚 Unity内部的资源有两种 Resources:有10年历史,尽量用资产包 Asset Bundle:昵称AB,现今Unity处理资源的中心 AB选项的差异 透过Web Player下载Asset Bundle的Cache需要收费,在iOS,Android的Cache不需收费.--->手持游戏顶起来用!!! 浏览器本身也有Cache,为什么要用Unity的Cache? 因为存在Cache里面是解压状态,下次调用不需再解压一次,大省CPU时间…
http://hunterwang.diandian.com/post/2012-10-21/40041523890 最近做东西需要增加效果,简单的运用了一下粒子效果,真心感觉比较难调整好效果.同时也遇到一些问题,分享一下. 如果某个绑定了 partical system 的GameObject 想要destory 掉时 , 有时unity控制台会报错,会自动提示你用DestroyImmediate(GameObject,bool)方法,则可以立即销毁场景中的物体.但是如果你的gameObjec…
Unity游戏开发中,单个Scene解决所有问题似乎不可能,那么多个Scene之间的切换是必然存在.如果仅仅是切换,似乎什么都好说,但是在场景比较大的时候不想让玩家等待加载或者说场景与场景之间想通过一些画面.动画表现出一些让玩家期待的东西,大家就要去认真考虑.这篇文章主要介绍两种增加切换中如何播放画面或者动画等等,提高玩家的浸入感,当然你也可以做成无缝的场景. 1 操作基础函数 LoadLevel Loads the level by its name or index.  加载场景,加载之前你…
本文欢迎转载,但烦请保留此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/ Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用飙上一两百兆,导致内存资源耗尽,从而被系统强退造成极差的体验.类似这种情况并不少见,但是绝大部分都是可以避免的.虽然理论上Unity的内存管理系统应当为开发者分忧解难,让大家投身到更有意义的事情中去,但是对于Unity对内存的管理方式,官方文档中并没有太多的说明,基本需要依靠…
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点推荐.谢谢! 该博客中的代码均出自我的开源项目 : 迷你微信 为什么需要单例模式 游戏中需要单例有以下几个原因: 我们需要在游戏开始前和结束前做一些操作,比如网络的链接和断开,资源的加载和卸载,我们一般会把这部分逻辑放在单例里. 单例可以控制初始化和销毁顺序,而静态变量和场景中的GameObject都无法控制自己的创建和销毁顺序,这样就会造成很多潜在的问题.…
原址:http://game.ceeger.com/forum/read.php?tid=4394#info 最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别.Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的. 其实场景里所有静态的对象也有这…
1.慎用线程,unity对线程的支持不是特别完善. 在一些网络通信,资源下载,解压文件,不得已要开线程操作的地方,需要进行线程回收. 2.不压缩的ab,比经过压缩的ab大了将近4倍. 在打包ngui的时候要注意依赖关系 3.Invoke效率比协程高5倍多,而且协程用多了会频繁进行垃圾回收,而垃圾回收会造成手机上卡顿 延迟操作封装自己的计时器,内存部分的优化则是用对象池 4.资源加密.md5,可以对前多少位后多少位进行操作即可,优化手机效率 5.cdn资源服务器也会有缓存 不能简单的在客户端htt…
unity 支持的四种音频格式: .AIFF  适用于较短的音乐文件可用作游戏打斗音效 .WAV  适用于较短的音乐文件可用作游戏打斗音效 .MP3  适用于较长的音乐文件可用作游戏背景音乐 .OGG  适用于较长的音乐文件可用作游戏背景音乐 audiosource 组件 德兴馆参数的含义: AudioClip :声音片段,还可以在代码中去动态的截取音乐文件. Mute : 是否静音 Bypass Effects: 是否打开音频特效 Play On Awake: 开机自动播放 Loop:循环播放…
MVCSContex :the big picture 1.应用程序的入口是一个类成为ContextView,这是一个Monobehavior实例化MVCSContext 2.用MVCSContext来执行各种绑定. 3.派发器是一个通信总线,允许你再程序发送消息,在mvcscontext中他们发送的是TimEvents, 或者你可以按照上面的步骤重写Context 来使用Signals 4.命令类由TimeEvents或信号触发,然后他会执行一些app逻辑. 5.模型存储状态 6.servic…
Unity中我们从A场景切换到B场景的时候,A场景全部对象都会销毁,但有时候我不须要销毁某些东西. 比方一个简单的游戏的背景音乐,我不须要多次反复创建,多个场景播放这一个即可了.这个时候就须要用到DontDestroyOnLoad. using UnityEngine; using System.Collections; public class MusicManager : MonoBehaviour { string volumeSetting; void Awake () { volume…
这几天想把在实习里碰到的一些好的技巧写在这里,也算是对实习的一个总结.好啦,今天要讲的是在Unity里应用一种非常有名的设计模式——单例模式. 开场白 单例模式的简单介绍请看前面的链接,当然网上还有很多更详细的介绍,有兴趣的童靴可以了解一下.其实设计模式对于一个程序员来说还是非常有用的,这点随着学习的深入感受越来越深. 好啦,现在说一下Unity里的单例模式.什么时候需要使用单例模式呢?正如它的名字一样,你认为一些东西在整个游戏中只有一个而你又想可以方便地随时访问它,这时你就可以考虑单例模式了.…
写在前面 感谢全部点进来看的朋友.没错.我眼下打算写一本关于Unity Shader的书. 出书的目的有以下几个: 总结我接触Unity Shader以来的历程,给其它人一个借鉴.我非常明确学Shader的艰难,在群里也见了非常多人提出的问题. 我认为学习Shader还是一件有规律可循的事情,但问题是中文资料难觅,而大家又不愿意去看英文...这对我有什么优点呢?强迫我对知识进行梳理,对细节问题把握更清楚. 第二个原因你懂的. 关于本书的定位问题: 面向Unity Shader刚開始学习的人,但要…
近期 做些准备性得工作和有意思的事情.所以近期做了一个适合ios和android 错误信息捕捉的unity插件. 两个功能,app崩溃也就是闪退 是开发人员 非常头疼的一件事,还有就是一些莫名得错误 有时候也会困扰着我们.如今,unity已经封装得挺好了,及时出现数组越界,和空对象这样严重得错误也不会崩溃.听着挺好.可是这给开发人员带了非常多烦恼啊.由于有时候可能出错了 你要跟就不知道 ,在什么地方出得错误啊.所以我们要想办法去解决问题. 我们都知道及时app崩溃,事实上后台还是在执行得 仅仅只…
[InitializeOnLoad] :在启动Unity的时候运行编辑器脚本  官方案例: using UnityEngine; using UnityEditor; [InitializeOnLoad] publicclassStartup{ staticStartup() { Debug.Log("Up and running"); } } 在启动Unity的时候打印一句话.   e.g. siki: using UnityEditor; using UnityEngine; [I…
1.有关调用的一些问题: (1).在C#中直接调用java中的代码,无返回值: 在java中: public static void setAge(Context context , int level) {} 在C#中: private static string JAVA_CLASS = "com.wonver.game"; private static string UNITY_CLASS = "com.unity3d.player.UnityPlayer";…
  上一篇文章讲述了如何设计C#单例的模板.也随之抛出了问题: 如何设计接收MonoBehaviour生命周期的单例的模板? 如何设计? 先分析下需求:   1.约束脚本实例对象的个数.   2.约束GameObject的个数.   3.接收MonoBehaviour生命周期.   4.销毁单例和对应的GameObject.   首先,第一点,约束脚本实例对象的个数,这个在上一篇中已经实现了.   但是第二点,约束GameObject的个数,这个需求,还没有思路,只好在游戏运行时判断有多少个Ga…
GameObject  Note : gameObject 指的是当前挂着的对象. class in UnityEngine / Inherits from:Object     Description Base class for all entities in Unity scenes. Note: Many variables in the GameObject class have been removed. To access, for example GameObject.rende…
本来这周想介绍一些框架中自认为比较好用的小工具的,但是发现很多小工具都依赖一个类----App. App类的职责: 1.接收Unity的生命周期事件. 2.做为游戏的入口. 3.一些框架级别的组件初始化. 本文只介绍App的职责2:做为游戏的入口. Why? 在我小时候做项目的时候,每次改一点点代码(或者不止一点点),要看下结果就要启动游戏->Loading界面->点击各种按钮->跳转到目标界面看结果或者Log之类的.一天如果10次这种行为会浪费很多时间,如果按照时薪算的话那就是....…
--刚刚做完一个xlua的的热更项目,对AssetBundle资源分类总结一下.纯理论,闲谈知识,要是有建议,尽管提 ,不掺杂代码. --这里说说,AB是如何打包,如果下载,如何加载. 1.关键词理解:有依赖(公共),无依赖,常驻(使用频率),非常驻. 所谓依赖,无依赖. 画红圈的就是有依赖关系的,但是Unity中,如何知道有哪些资源有依赖关系呐. 一般,我们每次Build后会自动生成AndroidManifest.xml,这里面就详细叙述了资源之间的 依赖关系. 2.下载资源? 下载资源的话,…