unity 实现简单的分离】的更多相关文章

在网上随便搜一搜资料就可以找到很多关于Mvc ,MVVM,StrangeIoc等有关显示与数据分离的博客,很多大神也是讲的蛮有道理的,但是这些框架理解起来有一定的难度, 这时候肯定有人说有现成的框架为什么不用,不用管它怎么实现的知道怎么用就行了,就我个人而言我也想用,比如去年unity开发者大会上unity开发者提出的uframe这个插件,我也曾具 体查过这个插件,大家对他的评价还是肯定的,但是国内用这个插件的人不是很多,并且全国所有网站上的文章有关于uframe的只有一个人写过,我也按照博客上…
学习Unity已经10天了,也没发现有什么长进,真的急.昨天仿着官方Demo做了个射击游戏轮廓,其中需要给每个怪做一个血条. 搜了一些,挺复杂的,用NGUI或者UGUI,外加很长的代码...不过还是找到了一篇简单的. 但是那一篇把所有的东西都放一起了,不太好,我在这整理分离一下. 背景: 官方Demo恶魔射手.其中每个怪都有一个EnemyHealth脚本,该脚本主要有怪物的血量等,然后有个TakeDamage()函数来计算伤害后的血量. 开始: 1.制作图片: PS一张细长的红色图片作为血量:…
看了不少IOC的文章.简单概念梳理下. 1.依赖,依赖倒置,控制反转(IOC),依赖注入 解释是仿照http://www.cnblogs.com/qqlin/archive/2012/10/09/2707075.html的例子. 依赖:类和类之间的联系.例如播放器类依赖媒体文件类 依赖倒置:本来是A类依赖B类.现在创建IB接口类.让A和B不再互相依赖,A类只知道自己需要调用IB接口的类.例如实现媒体文件接口类.好处在于下次再有新的媒体文件, 播放器类不用重构. 控制反转:本来A类要调用B类就需要…
简介 由于项目特殊需求,需要在unity中使用一些OpenGL的东西来绘制图形(PS:其实就是有一个拖尾算法只有OpenGL版本~~~懒得改了,直接在unity中使用OpenGL算了).所以琢磨咯下如何在unity中使用OpenGL,刚找到点入门级的调用,藉此分享一下. 关于Unity和OpenGL 这里不多过的介绍概念知识,unity在脚本中预留了这样一些功能: 1.OnPostRender函数(PS:这个函数只有挂在摄像机上才生效,可以在摄像机做渲染前做进一步操作) 2.GL接口(PS:开放…
开头先吐槽一下博客园超级不好用,添加图片后就写不动字了,难道是bug 好进入正题,先来说下依赖注入,简单来说就是定义好接口,上层代码调用接口,具体实现通过配置文件方式去指定具体实现类. 首先我们需要通过nuget来安装unity 安装好后就可以写一个方法类去实现依赖注入 public class UnityIocHelper : IServiceProvider { private readonly IUnityContainer _container; private static reado…
网络 TCP:与打电话类似,通知服务到位 UDP:与发短信类似,消息发出即可 IP和端口号是网络两大重要成员 端口号(Port)分为知名端口号[0-1024,不开放)和动态端口号[1024,10000多,开放可用) 三次握手,四次挥手: unity网端简单案例: 分为:综合管理部分.客户端和服务器 需要Socket作为媒介来进行交互 见代码: 一.综合管理部分: 1 using System.Collections; 2 using System.Collections.Generic; 3 u…
,本篇是我在博客园上第一次写随笔,有什么不对或者问题可以在评论区留言告诉我哈! 关于AR(增强现实技术(Augmented Reality))简单的概念,在这里就不说了,有兴趣的同学可以上网详细了解,今天我的目的也是让自己复习一下关于AR的知识,还有就是让新接触Unity的小伙伴也可以体验一下,跟着我的步骤走,自己实现是没问题的,接下来正文. 第一步:打开网页,进入Vuforia官网:https://developer.vuforia.com/home-page,也可以直接百度,第一条就是,点击…
项目展示 Github项目地址:简单时钟 Clock 制作流程 表盘绘制: 采用Aseprite 像素绘图软件绘制表盘及指针.本例钟表素材大小 256x256,存储格式为png,但发现导入Unity后较为失真,建议256+像素或调整Unity内相关参数. 代码配置: 设置表盘.指针到合适位置,创建Clock.cs脚本挂载于表盘,编写代码: public class Clock : MonoBehaviour { //接收三个指针 public GameObject hourHand; publi…
一.简介 先说说为什么要使用对象池 在Unity游戏运行时,经常需要生成一些物体,例如子弹.敌人等.虽然Unity中有Instantiate()方法可以使用,但是在某些情况下并不高效.特别是对于那些需要大量生成又需要大量销毁的物体来说,多次重复调用Instantiate()方法和Destory()方法会造成大量的性能消耗. 这时使用对象池是一个更好的选择. 那么什么是对象池呢? 简单来说,就是在一开始创建一些物体(或对象),将它们隐藏(休眠)起来,对象池就是这些物体的集合,当需要使用的时候,就将…
StreamingMipmaps是Unity2018.2中加入的新功能,意指通过CPU控制,只加载部分Mipmap图片以节省更多的内存及显存空间. 我测试时遇到了问题,后来发现必须打包出来测才有效(注:最新版unity追加了编辑器内生效功能). 官方文档里写给维京村落demo使用该功能后节省了25%-30%材质内存. 开启该功能的好处是可以节省关卡加载时间.另外从玩家角度来说,它还可以缓解一些带宽造成的卡顿问题, 缺点是会造成一定的CPU开销.并且是否要使用此优化,还要依据相机是否移动等内容而定…
具体要实现的目标是:将图片手动拷贝到服务器,然后在Unity中点击按钮将服务器中的图片加载到Unity中. 首先简答解释下 WAMP(Windows + Apache + Mysql + PHP),一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,因为常放在一起使用,所以共同组成了一个强大的Web开发平台. 另外还有LAMP(Linux + Apache + Mysql + PHP). 这两者的区别,由于自己的知识有限,暂不讨论. 下面主要用 WAMP 来实现开始提出的目标.…
var texImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter; if (texImporter.DoesSourceTextureHaveAlpha()) { Debug.Log("textures source image don't have alpha channel "); } else { Debug.Log("textures source image have alpha chan…
Shader "Custom/myAdditive" {    Properties {                _MainTex ("Albedo (RGB)", 2D) = "white" {} }    SubShader {           Tags { "QUEUE"="Transparent" "IGNOREPROJECTOR"="true" &…
在项目中引入Unity,建立一个接口IWork跟一个继承IWork接口的Work类 public interface IMyWork { void Work(); } public class MyWork : IMyWork { public void Work() { Console.WriteLine("Hello World!"); } } unity的简单使用分三步 static void Main(string[] args) { UnityContainer contai…
想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用,真不好使,一导入运行就报错,调好错了再运行发现点按钮没反应,反复试了几遍发现还是没反应,没办法看源码,结果发现只实现了IOS部分,没有Android部分,我屮艸芔茻...,神伤!用IOS真机测试吧,还是有问题,果断放弃了,下定决心自己动手丰衣足食,虽然不了解Android,但没有学不起来的,只要想,就没有实现不了的!!!首先还是得学习一下Android和Unity的简单交互,在…
在本系列的第一篇随笔<Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)>中介绍了Entity Framework 实体框架的一些基础知识,以及构建了一个简单的基于泛型的仓储模式的框架,例子也呈现了一个实体框架应用的雏形,本篇继续介绍这个主题,继续深化介绍Entity Framework 实体框架的知识,以及持续优化这个仓储模式的实体框架,主要介绍业务逻辑层的构建,以及利用Unity和反射进行动态的对象注册. 1.EDMX文件位置的调整 我们从上篇例子,…
原文地址:http://demo.netfoucs.com/u011707076/article/details/44036839 前言 寒假回家到现在已经有十多天了,这些天回家不是睡就是吃....哎╮(╯▽╰)╭,今天早上一觉醒来,突然得知,UE4免费了,这绝对是个好消息,前不久我还在纠结怎么申请校园账号呢o(╯□╰)o.迫不及待打开电脑下载了UE引擎的一个类似管理的客户端,在里面最醒目的一栏,看到一个令人哭笑不得的导航,如下图: EPIC这是要逆天的节奏吗?不过不管他了,接下来,我们便一同学…
资料1: IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection). 作用:将各层的对象以松耦合的方式组织在一起,解耦,各层对象的调用完全面向接口.当系统重构的时候,代码的改写量将大大减少. 理解依赖注入:     当一个类的实例需要另一个类的实例协助时,在传统的程序设计过程中,通常有调用者来创建被调用者的实例.然而采用依赖注入的方式,创建被调用者的工作不再 由调用者来完成,因此叫控制反转,创建被调用者的实…
最近都在忙别的事了,今天忙里偷闲了解了一下对象池是啥玩意,简单记录一下. 还是个正在学习的萌新,如果写的不好请见谅. 1.对象池是啥 在了解对象池之后,我才意识到以前写的代码有多么蠢,当场景中有一些重复的需要生成和销毁的物体时(比如地上可拾取的金币),我们常常调用Instantiate和Destroy函数去实现,这造成了大量的性能开销,尤其是当游戏物体挂载脚本时,脚本中的Awake().OnEnable().OnDestroy()等方法不断被调用,对性能造成了很大的负担,所以在复用性强的游戏中缓…
想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用.真不好使,一导入执行就报错.调好错了再执行发现点button没反应.重复试了几遍发现还是没反应,没办法看源代码.结果发现仅仅实现了IOS部分,没有Android部分,我屮艸芔茻....神伤!用IOS真机測试吧,还是有问题,果断放弃了,下定决心自己动手丰衣足食,尽管不了解Android,但没有学不起来的,仅仅要想.就没有实现不了的! .!首先还是得学习一下Android和Unit…
http://forum.china.unity3d.com/thread-13968-1-1.html Unity有个消息系统,它可以在运行中当发生指定事件时调用你在脚本中定义的那些魔术方法.这是个非常简单和容易理解的概念,特别对新用户来说.只需定义一个这样的Update方法,就能在每帧调用它. [C#] 纯文本查看 复制代码 ? void Update() {     transform.Translate(0, 0, Time.deltaTime); } 对于一个经验丰富的开发者来说,这代…
原文出自:IOC : Unity 配置和使用 之前Terry Lee 已经介绍过Unity的简单使用了,不过那篇文章是针对旧版本的,现在的版本1.2版略有不同. 我下载了Unity并做了一个简单的测试,项目的分布是这个样子: LoggerTest.Interface.ILogger 主要是接口, 一个简单的不能再简单的方法结构: public interface ILogger { void Write(string message); } LoggerTest 是实现这个接口的project,…
原创链接:http://blog.csdn.net/ox_thedarkness/article/details/9197453 分离资源管理 参考 1.Unity3D占用内存太大的解决方法 - 星尘 讨论AssetBundle-Resources-GameObject 的生命周期问题.对AssetBundle.Unload,Instantiate,Destory,UnloadUnusedAsset有详细的辨析. http://www.cnblogs.com/88999660/archive/2…
内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象.所以你可以认为内部类提供了某种进入其外围类的窗口.使用内部类最吸引人的原因是:每 个内部类都能独立地继承自一个(接口的…
抄自:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster 讨论了Redis的常用数据类型与存储机制,本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题. Redis复制流程概述 Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就一定会有内存快照发生,那么首先要注意你的系统…
UNET为两类人设计: (1)使用Unity开发简单多人在线游戏.这类用户可以从NetworkManager或者the High Level API开始: (2)开发复杂多人在线游戏或者开发网络服务.这类用户可以从NetworkTransport API开始. 高级API High Level API简称为HLAPI,不用去关心底层(low level)的实现就可以去开发简单的多人在线游戏,基本可以涵盖大部分用户的需求.HLAPI包含: 可以通过Network Manager控制游戏用户的网络状…
//题目28:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第 //3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后 //问第一个人,他说是10岁.请问第五个人多大? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> //分析:经过阅读,发现f(5)=f(4)+2;f(4)=f(3)…
Redis的复制功能是完全建立在之前我们讨论过的基 于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就一定会有内存快照发生,那么首先要注意你 的系统内存容量规划,原因可以参考我上一篇文章中提到的Redis磁盘IO问题. Redis复制流程在Slave和Master端各自是一套状态机流转,涉及的状态信息是: Slave 端: Master端: 整个状态机流程过程如下: Slave端在配置文件中添加了slave of指令,于是Slave启动时读…
21.事务 22.左联右联 23.大小写转换 24.MySql字符串拼接 25.查询数据库表总数 26.Oracle虚拟表 27.判断是否为空 28.SQL取diff 29.存储过程proc 30.创建临时表/备份表 31.SQLServer辅助功能 32.判断data中 row中某个字段是否为空 38.oracle 转换成时间 to_date('2016/4/21 9:19:05', 'yyyy-mm-dd hh24:mi:ss'), 37.谁能介绍一下 oracle 中检查点 及SCN的用法…
开篇废话: 在9月份时参加了一个网站的比赛,比赛的题目是需要使用第三方平台提供的服务做出创意的作品. 于是我选择使用语音服务,天气服务,Unity3D,Android来制作一个3D语音天气预报,我给它起名叫做3D语音天气球(好土...) 虽然没获奖但我觉得这个项目中还是有些东西比较有创意的,所以打算分享出来,或许有人会用到. 下面简单看下效果图: 左边是Unity做出后在电脑上运行效果图 右边是Unity结合Android和语音控制之后在手机运行的效果图(手机不会做GIF):      瞅着还不…