• Unity2D没有提供SpriteRenderer上显示文字的原生方案。经过笔者探索,有以下两种方式可供选择。 1,Canvas节点挂载方式 2,TextMesh方式 Canvas节点挂载方式 1,新建Canvas节点 设置宽高为设计分辨率。 特别...

    前言

    Unity2D没有提供SpriteRenderer上显示文字的原生方案。经过笔者探索,有以下两种方式可供选择。
    1,Canvas节点挂载方式
    2,TextMesh方式

    Canvas节点挂载方式

    1,新建Canvas节点
    在这里插入图片描述
    设置宽高为设计分辨率。
    特别注意:该节点的Layer我设置了UI_3D

    2,添加Text组件
    在需要显示文字的地方,新建一个空节点bg,作为Text组件的父物体,设置bg的pos归零,后续可以通过调节bg的scale来控制Text的FontSize。
    在bg下添加子物体Text。注意需要设置bg和Text的Layer和步骤1中提到的Canvas的Layer一致,否则不渲染。

    TextMesh方式

    通过3D Object——>3D Text的方式添加TextMesh。
    设置Offset Z为-1,同时把SpriteText.cs脚本拖拽到TextMesh上。脚本内容如下。

    public class SpriteText : MonoBehaviour
    {
        void Start()
        {
            var parent = transform.parent;
            var parentRenderer = parent.GetComponent<Renderer>();
            var renderer = GetComponent<Renderer>();
            renderer.sortingLayerID = parentRenderer.sortingLayerID;
            renderer.sortingOrder = parentRenderer.sortingOrder;
        }
    }
    

    来源:https://answers.unity.com/questions/620747/render-text-on-sprite-prefab-2d-ios.html

    展开全文
  • 转自:... Unity3D中Texture2D纹理类型绘制代码如下: var img : Texture2D; function OnGUI() { GUI.DrawTexture( Rect( left, top, width, height )


    转自:http://www.360doc.com/content/14/0411/11/12282510_367982834.shtml


    Unity3D中Texture2D纹理类型绘制代码如下:

    var img : Texture2D;

    function OnGUI()

    {

    GUI.DrawTexture( Rect( left, top, width, height ), img );

    }

    绘制后会发现图像明显发虚,其实就是纹理在被Unity3D载入是自动缩放成了2的n次方大小(power of 2)。在Project面板中找到原始文件(测试纹理大小为 40×100)。

    Unity3D中的Texture2D纹理失真解决办法

    Unity3D中的Texture2D纹理失真解决办法

    结果Unity3D将图片大小自行缩放。导致了纹理失真。解决方法如下:

    Unity3D中的Texture2D纹理失真解决办法

    Unity3D中的Texture2D纹理失真解决办法

    首先将Texture Type选择为Advaced,在面板内弹出新的选项。将紧挨着他下面的Non power of 2的选项设置为None,一定要选择下面的Apply,接受修改,否则没有效果,这时可以看到下面的预览框内的纹理大小为实际的物理文件尺寸。

    Unity3D中的Texture2D纹理失真解决办法

    Unity3D中的Texture2D纹理失真解决办法

    重新运行程序,便可以看到正常的显示效果了。


    展开全文
  • 在上篇博客中,简单整理了一下Unity Native 2D功能:《C#程序员整理的Unity 3D笔记(十九):Unity 3D的Native 2D》. 本文开始学习2D商用比较广泛的2D Toolkit插件.

    在上篇博客中,简单整理了一下Unity Native 2D功能:《C#程序员整理的Unity 3D笔记(十九):Unity 3D的Native 2D》. 本文开始学习2D商用比较广泛的2D Toolkit插件.

    2D Toolkit插件在2D中的地位,犹如UI中NGUI对Unity GUI一样:虽然官方原生的2D还不错,但这是最近1年新版本才有的功能,2年前Unity 2D的王道还是得用插件的,故《2D Toolkit》就成了目前商业不错的选择。

    在上周刚开始看的时候,就给自己提了3个问题 (1周后,自己给自己尝试做了回答):

    1. 2D Toolkit是类似NGUI的东西吗?

      答:是的,类似NGUI;2D toolkit是第三方插件,广泛用于2D的游戏开发;其还包括了UI,可不用NGUI就能进行不错的UI开发。

    2. 对比Unity Native 2D,2D Toolkit是否优势已经丧失;或者是类似UGUI和NGUI关系?

      答:这个目前不得知。 粗浅的看,Unity Native 2D比较简单,开发起来便捷,毕竟和Unity无缝集成的,且原生,另外还省钱;但是2D Toolkit都演变到2.5.2版本了,商用应该比较成熟,如其tk2dCamera简直无敌了–能自适应各种屏幕、大大节约了编码。

    3. 2D Toolkit能够和Unity Native 2D同存否?

    答:目前不知道。应该可以吧,2D toolkit已经于2015.5.24 发布2.5.2版本,声明支持Unity 5了。

     

    2D ToolKit简历

    2D ToolKit是第三方2D插件,能处理图集打包(Atlas Package)、精灵渲染(Sprite)、2D动画(Sprite Animator)、2D UI,目前中文资料少得可怜。

    2D Toolkit简称为TK2D,其功能据说是2D下最强大的,assetstore的下载点评竟然超过1200个,这个数据非常惊人,要知道售价价格要75美金呢。其插件提供了C#代码,源码之内,了无秘密。

    TK2D的厂家是Unikron Software Ltd,官方网站为http://unikronsoftware.com

    TK2D在assetstore的”编辑器扩充/2D与图片管理”分类下,排名第一

    image

    我摘录了部分官方官网assetStore点评:

    low draw calls

    pixel perfect camera:Unity 4.6 pro sprite package

    get a response with 24 hours

    manages multiple resolutions of sprite images (1x, 2x, 4x)

    Very nice package

    greatly sped up my animating process.

    really streamlined my workflow.

    organise all your sprites how you like in collections.

    It’s fast at updating and rendering too.– opitimization

    The best support、comunity

    other:spline、NGUI

    其点评大多集中在以下几个方便

    • 降低了DC
    • 正版的售后服务好
    • 图集打包很爽
    • 2D下效率高

    正文开始–本文就官方教程《Whack a Mole》进行小结:

    注:因为官方问答截图、文字描写清楚,我这里为节约大家时间,不会写的很细,请先预览一下官方教程。

    官方提供的Whack a Mole 材质下载地址

     

    步骤1:了解官方文档对TK2D做的系统概括:

    1. Tk2D在编辑期间生成脚本–Assets目录
    2. Tk2D运行脚本生成对象–场景

    image

    1. 上面这张图包含了TK2D的7个知识点 (术语) 的6个(除了Tilemaps外)
    • Sprite Collections: 精灵(2D下的图片)集合,用于组织图片,一般同z轴值的放在一起,效率高。
    • Sprites:精灵,任何需要在Scene显示的均需要精灵组件,目前包含4种Sprite

    image

    • Static Sprite Batcher:静态化精灵–不参与碰撞的,可明显减少DC
    • Sprite Animations:动画精灵
    • Fonts:字体
    • Text Meshes:显示文本
    • Tilemaps

    • 步骤2:tk2d camera 自动布局的摄像机
    • 删除新建Unity 2D工程的Main Camera,添加tk2dCamera,并设置tag为“Main Camera”。

    image

    • 修改tk2dCamera参数如下:

    image

    1. Native Resolution :1024*768
    2. Projection:Orthographic
    3. Type:Pixels Per Meter
    4. Pixels Per Meter:1
    5. Origin:Bottom Left
      • 例如:

    pixel per meter – so 100×100 world units = 100×100 pixels from the bottom left

    • tk2dCamera实际上是对Unity的Camera进行了扩展,
    这里有详细的对比说明和tip技巧。

    • 步骤3:精灵集合(Sprite Collections)、精灵(Sprite )、静态精灵批处理(Static Sprite Batcher)
    • 要使用图片,则需要首先添加Sprite Collections,它有3个作用:

    1 把图片组织管理起来–如果你有上百个图片就会发现它的价值。

    2 同z轴的组织起来,方便Unity引擎优化降低DC

    1. 3 自动进行图集打包–减少图片占用空间
    • 为什么要用Sprite Collection? 我认为比Unity Native 2D的默认能生成精灵而言,多了2个步骤。

    img/spritecollection.png

    • 要添加精灵,需要先Check out–如我这里使用Perforce源码管理。

    image

    • 添加精灵很简单,选择、拖放即可:

    img/spritecollection_drag.png

    • 针对当前Sprite Collection,进行Settings,然后一定要记得Commit:

    image

    • 注意:这里的Size和Pixels Per Meter,需要和上面的tk2DCamera保障一致。
    • Settings最下面有Platforms的设置,这个我没有看明白:

    image

    • 网上搜了一段代码,好像是为了适应不同屏幕的全局设置:

    image

    • 点击Commit后,就生成1了文件夹,包含3个文件:*.prefab 、*.png、*.mat。

    image

    • 使用Sprite就简单多了,添加Tk2D Sprite对象或者添加TK2D Sprite组件,选择Collection和Sprite即可:

    image

    • 如果有n个Sprite,需要组织管理起来,默认会想到空的对象(EGO), 如果不参与碰撞等动态监测,可使用Static Sprite Batcher。 选择需要静态化的Sprite,拖放为Batcher的子物体,在Inspator视图点击Commit,即可完成处理。
    • 有2点
    神奇之处:

    1 原来n个Sprite变为1个了,即仅仅是Static Sprite Batcher可见,其子物体消失了(点击Edit即可编辑)

    2 明显的减少了DC。

    imageimage

    步骤4: 代码实现 Clipped Sprite

      • Clipped Sprite是Sprite的一种,可动态实现隐藏、可见。
    image
      • 通过动态设置Clipped Sprite的ClipRect的y值(y值范围0.0~1.0f之间)
      • 同时调整其localPostion的y轴,可模拟图片的隐藏、显示效果。
    • 另外,这个思想也挺有趣的,使用n个return null代替waitforSecond.

    private IEnumerator WaitForHit() 
            { 
                float time = 0.0f;

                while (!whacked && time < timeLimit) 
                { 
                    time += Time.deltaTime; 
                    yield return null; 
                } 
            }

    • 步骤5:精灵动画(Sprite Animation)

    Sprite Animation也是基于Sprite Collection的。

    img/clip_settings.png

     

    显示动画,需要用Sprite With Animator组件,下面这张图一览无余:

    img/animated_sprite_inspector.png

     

    本文的整理到这里就结束了,完整的请参阅官方教程–《Whack a Mole

     

    注,本文使用的开发环境:

    • Unity 4.6.3
    • 2D toolkit 2.4.0
    展开全文
  • 大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。 在《仙剑奇侠传》、《古剑奇谭》等游戏中...那么,这一功能如何在Unity3D中实现呢?首先我们可以将问题分解为两个子问题:第一

           大家好,我是秦元培。我参加了CSDN2014博客之星的评选,欢迎大家为我投票,同时希望在新的一年里大家能继续支持我的博客!

           大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei

           在《仙剑奇侠传》、《古剑奇谭》等游戏中,经常需要玩家在一个3D场景中选取场景中的物体。比如为我方角色添加状态、为我方角色增加血量、选择要攻击的敌人等,通常我们使用鼠标来选择一个目标物体,当鼠标移动到目标物体上时,目标物体将显示轮廓线,此时就表示当前物体被选中,我们可以在此基础上为游戏物体进行一系列的操作。那么,这一功能如何在Unity3D中实现呢?首先我们可以将问题分解为两个子问题:第一,如何确定物体是否被选中;第二,物体被选中后如何清晰地传达给用户。如图是古剑奇谭和仙剑奇侠传的战斗画面:



           接下来,我们分别来解决这两个问题。对于第一个问题,我们可以采取射线检测的方法,即从摄像机向鼠标所在的位置发射射线,如果该射线击中了游戏场景中的物体,我们就认为该物体被选中了。对于第二个问题,我们需要让物体的轮廓线显示出来,这是我们今天着重要研究的地方。在Unity3D中我们可以通过Shader 即着色器来实现更改材质的渲染方法。Unity3D内置了6类着色器,从简单的VertexLit到复杂的带有 高光的视差凹凸贴图(Parallax Bumped with Specular),共30个。其中:

          1、Normal:适用于不透明的物体

          2、Transparent:适用于半透明的物体,透明度由贴图的alpha通道决定

          3、TransparentCutOut:适用于某些部分透明,某些部分不透明的物体

          4、Self-Illuminated:适用于需要自发光的物体

          5、Reflective:适用于需要反射环境光的物体

          6、Lightmapped:适用于需要添加光照贴图及相应的UV坐标数值

          从一般的意义上来说,着色器定义了渲染物体的方法、材质中指定的贴图、用于渲染的顶点及片段着色程序、材质中调整的颜色以及各种数值设定。而相对应地,材质决定我们将使用那些贴图来渲染、使用哪些颜色渲染等。在今天的文章中,我们将定义下面的着色器代码:

    Shader "Custom/BoundryShader" {
    Properties {
            //定义材质的颜色为白色
    		_Color ("Main Color", Color) = (1,1,1,1)
    		//定义材质的轮廓线为黑色
    		_OutlineColor ("Outline Color", Color) = (0,0,0,1)	//改变这个能改变轮廓边的颜色
    		//定义线宽
    		_Outline ("Outline width", Range (0.0, 0.03)) = 0.001	//改变这个能改变轮廓边的粗细
    		_MainTex ("Base (RGB)", 2D) = "white" { }
    	}
    	
    CGINCLUDE
    #include "UnityCG.cginc"
    
    struct appdata {
    	float4 vertex : POSITION;
    	float3 normal : NORMAL;
    };
    
    struct v2f {
    	float4 pos : POSITION;
    	float4 color : COLOR;
    };
    
    uniform float _Outline;
    uniform float4 _OutlineColor;
    
    v2f vert(appdata v) {
    	// just make a copy of incoming vertex data but scaled according to normal direction
    	v2f o;
    	o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
    
    	float3 norm   = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
    	float2 offset = TransformViewToProjection(norm.xy);
    
    	o.pos.xy += offset * o.pos.z * _Outline;
    	o.color = _OutlineColor;
    	return o;
    }
    ENDCG
    
    	SubShader {
    		Tags { "Queue" = "Transparent" }
    
    		// note that a vertex shader is specified here but its using the one above
    		Pass {
    			Name "OUTLINE"
    			Tags { "LightMode" = "Always" }
    			Cull Off
    			ZWrite Off
    			ZTest Always
    			ColorMask RGB // alpha not used
    
    			// you can choose what kind of blending mode you want for the outline
    			Blend SrcAlpha OneMinusSrcAlpha // Normal
    			//Blend One One // Additive
    			//Blend One OneMinusDstColor // Soft Additive
    			//Blend DstColor Zero // Multiplicative
    			//Blend DstColor SrcColor // 2x Multiplicative
    
    CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    
    half4 frag(v2f i) :COLOR {
    	return i.color;
    }
    ENDCG
    		}
    
    		Pass {
    			Name "BASE"
    			ZWrite On
    			ZTest LEqual
    			Blend SrcAlpha OneMinusSrcAlpha
    			Material {
    				Diffuse [_Color]
    				Ambient [_Color]
    			}
    			Lighting On
    			SetTexture [_MainTex] {
    				ConstantColor [_Color]
    				Combine texture * constant
    			}
    			SetTexture [_MainTex] {
    				Combine previous * primary DOUBLE
    			}
    		}
    	}
    	
    	SubShader {
    		Tags { "Queue" = "Transparent" }
    
    		Pass {
    			Name "OUTLINE"
    			Tags { "LightMode" = "Always" }
    			Cull Front
    			ZWrite Off
    			ZTest Always
    			ColorMask RGB
    
    			// you can choose what kind of blending mode you want for the outline
    			Blend SrcAlpha OneMinusSrcAlpha // Normal
    			//Blend One One // Additive
    			//Blend One OneMinusDstColor // Soft Additive
    			//Blend DstColor Zero // Multiplicative
    			//Blend DstColor SrcColor // 2x Multiplicative
    
    			CGPROGRAM
    			#pragma vertex vert
    			#pragma exclude_renderers gles xbox360 ps3
    			ENDCG
    			SetTexture [_MainTex] { combine primary }
    		}
    
    		Pass {
    			Name "BASE"
    			ZWrite On
    			ZTest LEqual
    			Blend SrcAlpha OneMinusSrcAlpha
    			Material {
    				Diffuse [_Color]
    				Ambient [_Color]
    			}
    			Lighting On
    			SetTexture [_MainTex] {
    				ConstantColor [_Color]
    				Combine texture * constant
    			}
    			SetTexture [_MainTex] {
    				Combine previous * primary DOUBLE
    			}
    		}
    	}
    	
    	Fallback "Diffuse"
    }
    

             对于着色器程序的编写,我们此时可以先放在一边,这里我们着重来学习如何使用着色器来实现不同的渲染效果。我们新建一个材质,将该材质的着色器设置为我们这里编写的着色器,如图:


          好,在准备好材质后,我们就可以正式开始今天的内容啦,我们创建一个简单的场景:


          注意到这里的物体时没有轮廓线的,因为我们这里使用的是默认材质Default-Diffuse。那么,接下来,我们通过编程的方式来动态更换材质,这样就可以实现不同的渲染效果,编写下面的脚本:

    using UnityEngine;
    using System.Collections;
    
    public class ShowBoundry : MonoBehaviour {
    
    	//使用显示轮廓的简单材质
    	public Material mSimpleMat;
    	//使用显示轮廓的高级材质
    	public Material mAdvanceMat;
    	//默认材质
    	public Material mDefaultMat;
    	
    
    	void Update () 
    	{
    	   //获取鼠标位置
    	   Vector3 mPos=Input.mousePosition;
    	   //向物体发射射线
    	   Ray mRay=Camera.main.ScreenPointToRay(Input.mousePosition);
    	   RaycastHit mHit;
    	   //射线检验
    	   if(Physics.Raycast(mRay,out mHit))
    	   {
    		  //Cube
    		  if(mHit.collider.gameObject.tag=="Cube")
    		  {
    			 //将当前选中的对象材质换成带轮廓线的材质
    			 mHit.collider.gameObject.renderer.material=mSimpleMat;
    			 //将未选中的对象材质换成默认材质
    			 GameObject.Find("Sphere").renderer.material=mDefaultMat;
    			 //设置提示信息
    			 GameObject.Find("GUIText").guiText.text="当前选择的对象是:Cube";
    		  }
    		  //Sphere
    		  if(mHit.collider.gameObject.tag=="Sphere")
    		  {
    			 //将当前选中的对象材质换成带轮廓线的材质
    			 mHit.collider.gameObject.renderer.material=mSimpleMat;
    			 //将未选中的对象材质换成默认材质
    			 GameObject.Find("Cube").renderer.material=mDefaultMat;
    			 //设置提示信息
    			 GameObject.Find("GUIText").guiText.text="当前选择的对象是:Sphere";
    		  }
    		  //Person
    		  if(mHit.collider.gameObject.tag=="Person")
    		  {
    			 //由于人物模型的材质较为复杂,所以不能使用这种方法
    		  }
    	   }
    
    	}
    }
    

           在上面的这段脚本中,首先我们指定了三个材质,分别是适用于简单物体(如Cube等)的带轮廓线的材质,适用于复杂物体(如人物模型)的带轮廓线的材质( 本文未实现)、适用于简单物体的默认材质。主要原理就是我们在文章开头就提到过的射线检验方法。我们将这个脚本绑定到游戏场景中的物体上,设置好tag后就可以运行程序了,我们一起来看看程序的效果吧!


             这就是我们今天想要实现的效果啦,通过今天的文章我们可以实现在3D场景中对一个物体的选取,这种需求在游戏里还是比较多的啊,哈哈。那么,对于复杂的人物模型怎么办呢?模型一般会有很多张贴图,如果我们针对每一张贴图再去制作与之对应的材质文件,是不是会有些繁琐呢?那么请大家关注我的博客,我们将在下一篇文章中为大家揭晓。好了,老规矩,为大家送上一句充满力量的话,早安!


        每日箴言 :人生就像一座山,重要的不是它的高低,而在于它的灵秀。




          喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei
          转载请注明出处,本文作者:秦元培,本文出处:http://blog.csdn.net/qinyuanpei/article/details/26435473


    
    展开全文
  • unity3d教程 :  iCloud不仅可云存储服务你的内容,还可让你在所有设备上访问你的照片、日历、通讯录、文档以及更多内容。而且,这项功能已内置于每台全新 iOS 设备和每台全新Mac。  共享的照片流  有了照片流...

            unity3d教程 :

      iCloud不仅可云存储服务你的内容,还可让你在所有设备上访问你的照片、日历、通讯录、文档以及更多内容。而且,这项功能已内置于每台全新 iOS 设备和每台全新Mac。

      共享的照片流

      有了照片流这一功能,你用一部 iOS 设备拍摄照片,它就会出现在你的其他设备上,包括 Mac 或 PC。将照片从数码相机导入到电脑之中,iCloud 会即刻通过无线网络将它们发送到你的 iPhone、iPad 和 iPodtouch 上。无需同步,无需添加到电子邮件的附件中,也不必传输文件,你的照片就在那里,在你拥有的每一部设备上。

      仅与你选择的人,共享你想要共享的照片。从照片 app 中选择照片,轻点共享按钮,再选择照片共享对象,他们就能马上看到照片。你甚至可以让观众对你的照片发表评论,而且同时你还能回复他们的评论。现在,开始尽情共享照片吧:你共享的照片流不会占用你的 iCloud 存储空间,因为它们使用的是无线网络和蜂窝网络。

      文档云服务此处开始,彼处结束。

      在你的 Mac、iPhone、iPad 和 iPod touch 上,你都可以创建精彩的文档和演示文稿。有了 iCloud,你可让该文件在你的 Mac 和所有 iOS 设备上保持更新。你不必在复杂的文件系统中管理文档,也无需将文件保存到特定的文件夹。你的文档及最新的修改都存放在你的 app 中,因此它们会自动在各处显身。iCloud 已内置于 Keynote、Pages 和Numbers 等 app 中。它还可与其他支持 iCloud的 app 配合使用。因此,你可以做一些类似这样的事,比如在Mac 上创建待办事项列表,然后用 iPhone 进行编辑;或是在 iPod touch 上开始画图,然后用 iPad 进行最后修饰;或是在 iPad 上开始游戏,稍后在iPod touch 上从同一等级接着玩。进一步了解文档云服务

      创建或编辑文档

      iCloud 可以让书签和阅读列表在你的所有设备上保持更新。而且,iCloud 标签可以在你的 iPad、iPhone、iPodtouch 和 Mac 上显示已打开的所有网页,让你可以从上次停止的地方继续浏览。Safari 可以在阅读列表中保存网页,而不仅是链接,因此即使你没有互联网连接,也能在任意设备上进行阅读。

      日历、通讯录和邮件。点点滴滴都更新。

      iCloud 可以存放你离不开的一切,包括日历、通讯录和电子邮件,并让它们在所有设备上随时更新。如果你删除了一个电子邮件地址,添加了一个日历事件,或更新了通讯录,iCloud 会在各处同时做出这些更改。你的备忘录、提醒事项和书签也同样如此。进一步了解日历、通讯录和邮件

      App全部 app,常伴左右。

      如果你拥有多部 iOS 设备,iCloud 可确保你在需要的时候,能随时随地取用你的 app。在 iPhone 上下载一款新app,它就会自动出现在你的 iPad 上。你不必担心多部设备同步的问题,因为 iCloud 会为你代劳。假如你在很久以前买过一款 app,现在要将它装在你的全新 iPod touch 上。iCloud 可让你在一个恰当位置查看过去下载的内容:你在 App Store 上的购买历史记录。 由于你已购买了这些 app,因此无须支付额外费用,便可将它们再次下载到你的 iPhone、iPad 或 iPodtouch 上1。

      iBooks。好书不离手。

      有了 iCloud,阅读的绝佳方式就是使用手边的 iOS 设备。一旦你从 iBookstore 获得了电子书,iCloud 会自动将其推送到你所有其它的设备。在你的 iPad 上开始阅读,加亮某些文字,记录笔记,或添加书签,iCloud 就会自动更新你的 iPhone 和 iPod touch。获得电子书后,它会出现在你的 iBookstore 历史记录中。从这里,你可随时将它下载到你的任意一部设备上2。

      iCloud 让每天毫无后顾之忧

      在你的 iPhone、iPad 和 iPodtouch 上,存放着你各种各样的重要信息。在接通电源的情况下,iCloud 每天都会通过无线网络对它们进行自动备份,而你却无需进行任何操作。当你设置一部全新的 iOS 设备,或在原有的设备上恢复信息时,iCloud 云备份都可以担此重任。只要将你的设备接入无线网络,再输入你的 Apple ID 和密码就行了。你的个人数据,连同你已获得的 app 和电子书,都将自动出现在你的设备上2。

      丢了,轻松找回。

      如果找遍各处也没有找到你的设备,查找我的 iPhone、iPad、iPodtouch 和 Mac 可以帮你3。只需登录 icloud.com,在另一部设备上使用查找我的 iPhone app,就可以在地图上确定遗失设备的位置,在设备屏幕上显示信息,远程设置密码锁或启动远程清除来删除你的数据。进一步了解查找我的 iPhone

      圈中朋友可圈可点

      查找我的朋友 app 是在海边度假时发现朋友露营地,或追踪家人的绝佳方式3。它甚至能让你看到孩子何时从学校回到家。你可以允许朋友和家人看到你在哪里,也可以不让他们看到。如果你不想被人找到,只需轻划一下,就可进入离线状态。一切就这么简单。

      无需付出,却收获更多。

      当你注册 iCloud 时,可自动获得 5GB 的免费存储空间。鉴于 iCloud 的内容存储方式,这些空间已足够使用。你购买的 app,以及你的照片流,都不会计入你的免费存储空间。5GB 的空间已经足够存储你的邮件、文档、账户信息、设置和其它 app 数据。如果你需要更多存储空间,可以直接从你的设备上轻松购买存储升级。

      隐私与安全性

      Apple 非常注重数据的安全性和个人信息的隐私保护,而 iCloud 功能在设计时也将隐私安全考虑其中。事实上,iCloud 用来保护你数据安全的措施,可与大型金融机构相媲美。

      二、色彩饱和特效

      与Alpha混合相比,色彩饱和更适合于特效的制作,无论从性能上讲,还是从效果上说,色彩饱和比Alpha混合更胜一筹(如图4)。可能因为色彩饱和的算法过于简单,很少有进行介绍的,我们先就对色彩饱和的方法来进行介绍一下,混合公式:

      R1、G1、B1 : 图象像素点的源色值;

      R2、G2、B2 : 底图像素点的源色值;

      R = R1 + R2;( IF R > 255 THEN R = 255 )

      G = G1 + G2;( IF G > 255 THEN G = 255 )

      B = B1 + B2;( IF B > 255 THEN B = 255 )

      R、G、B就是我们所需的混合结果。

      可能你会觉得这么复杂的计算怎么会在性能上优于Alpha混合,当然,如果你所使用到的 只是CPU的常规指令,那的确,在性能上没有Alpha快,但现在MMX指令已经作为CPU的基本指令,MMX指令中就有一个饱和加的CPU指令,可以非常方便的进行操作,不得不感谢CPU制造商所做的功劳。

      好了,两种方式都介绍了,可以说这基本上已经可以胜任2D游戏中所需要,接下来就让我们来让游戏更精彩。

      文章来自天地会......

    展开全文
  • unity的底层是用C++开发的,但是使用unity只是允许用脚本进行具体游戏开发,就回避了底层的复杂性,降低了开发的难度。unity里的c#是运行再Mono平台,微软的c#是运行再.Net平台上...显示Debug.Log()LogError显示文字...
  • 首先,在NGUI中,创建一个UIlabel或者sprite,然后在3D对象上面,需要显示文字的位置,创建一个空物体,获取该空物体的位置,将UI文字,显示在该位置 通过控制显示位置到相机的距离,对ui对象进行缩放,实现一种近...
  • 系列目录 【Unity3D基础】让物体动起来①--基于UGUI的鼠标点击移动 【Unity3D基础】让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoTween...时光煮雨 Unity3D实现2D人物动画② Un...
  • unity3d 各大插件评测

    2018-01-30 15:00:43
    原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 引言:想用Unity3D制作优秀的游戏,插件是必不可少的。工欲善其事必先利其器。本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具...
  • Unity3d游戏中实现阿拉伯语文字正常显示 Unity3d游戏中实现阿拉伯语文字正常显示 由于项目需求要把游戏文字显示为维语版本(维语属于阿拉伯语系),我先把维语替换进去,之后发现文字是错的(每个字符都分开了,...
  • unity3d插件文字特效

    2020-06-04 23:30:55
    unity开发中,快速制作文字特效,让你的游戏看起来更在完美
  • Unity3D由于是在三维世界中编程,而最终的结果是需要反馈到肉眼所示的2D屏幕之上的。这就产生了一种比较需要考虑的问题,尤其在一些涉及屏幕与Unity3D的3D世界交互的情况。网络上对于这方面的文字,大部分罗列了许...
  • 1 using UnityEngine; 2 using System.Collections; 3 4 [AddComponentMenu("Game/AutoDestroy")] 5 public class AutoDestroy : MonoBehaviour { 6 7 public float m_timer = 1.0f;......
  • 包含SetTextByText,SliderAddValue等五个代码,可使用于游戏的血条显示
  • Unity3D常见面试题

    2017-08-11 20:20:00
    Unity3D常见面试题
  • mesh" TITLE="[原创]unity3D学习【功能实现】之五:在图片上显示文字或名字,可更改text mesh" /> mesh" TITLE="[原创]unity3D学习【功能实现】之五:在图片上显示文字或名字,可更改text mesh" />先看下效果吧。...
  • 原帖:http://www.cnblogs.com/fengrenyuan/p/3729642.html昨晚,好友在电话里问我在Unity3d中使用3D Text,不想让其穿透模型显示,即想让场景中的3D Text与模型有正确的遮挡关系,怎么解?今早谷歌上查了查,明白了...
  • Unity3d实现画笔

    2017-12-11 17:33:25
    本文介绍如何在unity3d中实现画笔的功能 首先画笔需要一个材质 Material,之前在网上找了很多画笔,但是都没说材质怎么生成,导致画不出线来。 创建材质: Material rectMat = new Material("Shader \...
  • Unity 2D入门基础教程

    2016-09-20 13:42:56
    开始:创建你的项目场景视图的2D模式轻松制造精灵(Sprites)Sprite 资源切片精灵表(Slicing Sprite Sheets)配置游戏视图精灵动画(Animating Sprites)精灵封装(Sprite Packing)-仅针对专业人员.
1 2 3 4 5 ... 20
收藏数 1,682
精华内容 672