自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bingheliefeng的专栏

游戏开发

  • 博客(102)
  • 资源 (2)
  • 收藏
  • 关注

原创 Cocos Creater 获取和设置世界坐标

cocos creater当一个节点设置到另一个节点下面 时,在世界中的坐标会变化,而Unity中重新SetParent,世界坐标不会变化。我们可以先将坐标转换到世界坐标,然后设置了父节点后,再将世界坐标转成局部坐标。private getWorldPos():cc.Vec2{ return this.node.convertToWorldSpaceAR(cc.Vec2.ZERO...

2019-05-24 15:41:21 8026 2

原创 Unity中 清除对象的所有事件侦听

public static void ClearAllEvents(object objectHasEvents){ var events = objectHasEvents.GetType().GetEvents(); if (events == null || events.Length < 1) { return; } foreach (var info in e...

2019-03-28 12:32:13 4913

原创 Unity画面压缩

因为Google广告政策的原因,游戏中Banner广告不能遮挡游戏操作元素,一种是把操作内容移动一下,留出广告空间。另一种方法是将Unity画面压缩,把Banner广告位置显示为黑色。为此我们需要修改Camera的投影矩阵。通过获取广告的高度来计算。但是留出的位置还是会触发触摸事件,我们可以用一块黑色 的UI来遮挡using UnityEngine;using System.C...

2019-03-28 12:27:34 379

原创 C# 获取两线段交点

//获取两直线交点,z 值没有用 public static Vector3 GetIntersection(Vector3 lineAStart,Vector3 lineAEnd, Vector3 lineBStart,Vector3 lineBEnd) { float x1 = lineAStart.x, y1 = lineAStart.y; ...

2018-12-29 22:38:43 7298 2

原创 Unity之大地图分割保存

我们在做大型3D游戏时,资源比较大的一部分就是场景,场景包含很多模型和贴图,还有Lightmap图片和数据,为了将一个场景打包成一个assetbundle以方便动态加载,可以把整个场景打成一个assetbundle,场景中的材质和贴图以及LightMap打到另一个assetbundle里面,这种方式最简单,但是打出来的场景包会很大,相当于场景中所有的模型都打了进去,如果其他场景没有用到这个模型还好...

2018-04-09 12:07:21 6896 1

原创 Unity之布料效果

上面的效果是Blinn-phong 加Detail 做出来的,BlinnPhong 是常用的一种带有反射的光照算法。而为了达到布料的效果,还需要加两张贴图,一张是面料的Detail贴图,另一张是布料的法线贴图。下面的代码只是演示代码,里面的光照是写死了的,如果大家要用动态光去控制,需要自己改。至于布料相关的贴图可以在网上搜索,因为不同类型的面料Detail和DetailNormal贴图不一样。Sh...

2018-03-29 11:24:48 4463 1

原创 Unity Shader Property 默认参数

//Float类型,下面对应变量可以用flaot,half,fixed  _Name("Inspector Name", Float) = defaultValue  //Float类型,可以用一个滑动条控制范围,下面对应变量可以用float,half,fixed  _Name("Inspector Name", Range(min, max)) = defaultValue  //颜色类型,下面...

2018-03-09 17:26:30 2741

原创 给场景自动添加AssetBundleName

[MenuItem("Tools/Auto Scene Bundle")] static void AutoSceneBundleName(){ List filesPaths = new List(); filesPaths.AddRange( Directory.GetFiles(Path.GetFullPath(".") + Path.DirectorySepara

2017-11-06 21:37:11 323

原创 Unity 给代码添加命名空间

下面是快速对项目中的代码添加命名空间。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using System;using System.IO;/// /// 给脚本添加和修改命名空间/// public class AddNamesp

2017-10-16 15:41:10 7453

原创 Unity 重置项目资源的guid

有时需要将多个项目的资源合并到一个项目中,但有可能有些资源是共用的,它的guid是一样的,这样合并到一个项目时,可能会超成冲突。如果要让每个资源的guid都不相同,就需要重新生成guid,并且更新引用。下面是步骤1. UNITY菜单-> Editor > Project Setting - > Editor 设置 Version Controller 为Visible Meta

2017-10-16 15:36:37 10851 4

原创 Unity Shader之动态阴影

动态阴影在Unity中,默认是使用ShadowMap,原理是通过生成投影深度图来比较,但是由于在移动平台对深度浮点值计算的限制,使得ShadowMap技术在移动平台要么效果不理想,要么需要消耗大量的计算。所以常见的处理移动平台阴影的方式是使用RenderTexture + 投影,如王者荣耀中的实时阴影。具体的方式是先渲染一张RenderTexture,这张RenderTex

2017-08-29 11:59:18 3831

原创 Unity Shader之投影

投影在3D游戏中经常使用,比如弹孔,血溅到地面上,贴花等效果都可以使用投影。投影在Unity中的是一个Projector的Component,它上面的参数跟Camera的参数极为相似,其实可以理解,它的目的就是为shader提供需要的矩阵参数。最主要的参数就是unity_Projector和unity_ProjectorClip两个。unity_Projector参数是投影Cookie贴图

2017-08-29 11:33:29 4940

原创 Swift自定义事件分发

Swift自带有Notification,可以作为事件分发用,下面是自定义的一种事件分发,使用观察者模式/// 自定义消息分发类,为单例/// 注意:添加侦听后,一定要移除public final class Messager{ private static var _shared:Messager? public static var shared:M

2017-07-23 21:34:49 824

原创 Swift 单例

final public class MySingle { private static var _shared:MySingle? public static var shared:MySingle!{ get{ if _shared == nil { _shared = MySingle

2017-07-23 15:43:35 403

原创 Swift 中使用SDWebImage

SDWebImage是开发中常用的插件,主要用于加载外部图片,具有缓存图片资源的功能,然而SDWebImage是由Object-C所写。步骤:下载SDWebImage , https://github.com/rs/SDWebImage4.0版本还需要下载FLAnimatedImage, https://github.com/Flipboard/FLAnimatedImage将上面

2017-07-23 10:43:33 9456

原创 Unity Spine 换图(通过外部图片)

在spine中,如果想通过外部一张单独的来替换动画中的某个部位,需要手动创建Attachmentusing UnityEngine;using System.Collections;using Spine.Unity;public class ChangeSkin : MonoBehaviour { private SkeletonAnimation anim; public T

2017-06-23 15:38:58 9700 5

原创 typescript中使用字典Dictionary

//key为string , value为numbervar map: { [key: string]: number; } = { "t" : 3, "o" : 5, "g" :10};for(let k in map){ egret.log(map[k]);}

2017-05-27 09:52:23 44169

原创 在Unity中使用DragonBones运行库

一、首先到github上下载运行库,地址是 https://github.com/DragonBones/DragonBonesCSharp二、然后在DragonBones软件中将动画导出数据,数据有图集、动画数据、贴图数据 三部分组成。三、将这些数据放到unity中,最好一个动画放一个文件夹,注意导出时的项目名最好不要重复,否则可能和其他动画冲突四、选中ske文件,然后点右键》 Dr

2017-05-24 11:15:13 5811 2

原创 2d多点旋转,缩放,移动

#region 触摸和旋转 //上次记录的两个触模点之间距离 float lastDistance = 0f; float preRadian = 0f; bool isTwoFinger; void Update(){ if(IapPopUp.Instance!=null) return; if(secondContent.childCount>0 && secondCont

2017-04-24 14:55:24 629

原创 Unity ShadowCast

Pass { Name "ShadowCaster" Tags { "LightMode" = "ShadowCaster" } Fog { Mode Off } ZWrite On ZTest Less Cull Off Offse

2017-03-01 14:20:30 1903

转载 Unity之HDR

HDR(High Dynamic Range) ,控制图像显示对比,让颜色更鲜艳,对比更大,画面颜色更丰富,像素更清晰。下面是简单的算法,取自OpenGLfloat4 frag(v2f i) :COLOR { float4 c = tex2D(_MainTex, i.uv_MainTex); float y = dot(float4(0.3,0.59,0.11,1)

2016-12-18 09:01:48 4001

原创 Shader之Photoshop Color效果

PS中的Color是先获取原图的原图信息,然后再通过这个信息进行颜色叠加,主要是代码如下:float3 BlendColor(float3 base, float3 blend){ float3 blendHSL = RGBToHSL(blend); return HSLToRGB(float3(blendHSL.r, blendHSL.g, RGBToHSL(base).b));}

2016-12-14 08:27:06 1033

转载 随机平铺

fixed4 texNoTileTech1(sampler2D tex, float2 uv) { float2 iuv = floor(uv); float2 fuv = frac(uv); // Generate per-tile transformation #if defined (USE_HASH) float4 ofa = hash4(iuv + float2(0, 0)

2016-12-12 22:50:57 468

原创 控制材质偏移和缩放

材质的偏移和缩放是通过 _MainTex_ST这个参数控制,如果要把这个参数对应到游戏中,需要进行以下计算[ExecuteInEditMode]public class NewBehaviourScript : MonoBehaviour { public SpriteRenderer r; MaterialPropertyBlock block ; [Range(0.1f,2f)

2016-11-10 13:58:31 734

原创 UGUI中添加粒子

由于UGUI一个Canvas下面全部是在一个序列中渲染,所以要添加粒子有三种方式。一,分割Canvas,也就是在Canvas下面,某一个层再加一个Canvas组件二,通过另一个相机渲染粒子生成RenderTexture三,重新制作一种新的粒子,兼容UGUI,可以使用此插件:https://www.assetstore.unity3d.com/en/#!/content/72216

2016-10-07 16:37:02 2448

原创 根据Matrix获取Rotation

var px = new flash.geom.Point(0, 1);px = my_matrix.deltaTransformPoint(px);var angle = (180/Math.PI) * Math.atan2(px.y, px.x) - 90;if(angle<0) angle+=360;trace(angle);

2016-08-09 15:33:11 1250

原创 Android保存图片到相册

private static Uri imgPath=null; public static void saveImage(byte[] bytes,int len) { Bitmap bmp = BitmapFactory.decodeByteArray(bytes,0,len); String path= MediaStore.Images.M

2016-06-12 21:20:26 560

原创 判断一个点在多边形内

//// main.cpp// Test//// Created by zhouzhanglin on 16/4/29.// Copyright © 2016年 zhouzhanglin. All rights reserved.//#include #include struct Vec2{ Vec2(){} Vec2(float x,float y

2016-04-29 14:54:35 530

原创 Unity之2d对象跟随鼠标旋转

public float turnSpeed = 3f;// Update is called once per framevoid Update () { if(Input.GetMouseButton(0)){ Vector3 worldPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x

2016-04-20 11:06:34 3316 1

原创 Unity之将Texture保存成png

using UnityEngine;using System.Collections;using System.IO;public class SaveToPng : MonoBehaviour { public Shader outShader; public Texture inputTex; // Use this for initialization void Star

2016-04-18 10:07:08 17506 3

原创 Unity之通过Shader实现雪景

左边是下雪后的效果// Simplified Diffuse shader. Differences from regular Diffuse one:// - no Main Color// - fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH

2016-04-11 14:37:50 5348

原创 Unity之使用csv文件

我们在做游戏时,可以通过在Excel/Number里将数据导出成csv文件,然后在程序里动态读取。在Unity中可以把csv放到Resources目录或StreamingAsset目录里,然后以文本的方式加载.网上的csv解析大多没有处理引号,逗号等特殊符号,要是我们在数据配置中还存有json,就需要用下面的代码using System.Collections;using Syste

2016-04-11 08:28:56 3832

原创 UGUI 之soft clip

以前在用NGUI时,遮罩两边经常用软边的形式,但是UGUI默认的Rect Mask没有这个功能,所以需要改一下Shader。主要需要个性Shader Fragment部分sampler2D _MainTex;float _ClipSoftX;float _ClipSoftY;fixed4 frag(v2f IN) : SV_Target{ half4 color = (tex2

2016-03-29 09:57:56 3309

转载 mac 常用shell命令

tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar zx

2016-03-29 09:57:38 407

原创 Unity2D 通过Canvas来设置屏幕适配

我们在使用Unity制作2D游戏时,需要考虑屏幕适配的问题,以前是通过设置Camera的size视口大小来解决,这种方式在网上很多。下面我介绍一种更简单的方式,我们都知道UGUI的屏幕适配功能很强,那么我们为什么不借助它来设置我们Sprites root层的缩放大小呢。只需要加一个空的Canvas,下面的代码就是借助这个Canvas来获取缩放值的using UnityEngine;usi

2016-03-11 23:57:21 5854

原创 Unity之计算环境反射WorldRefl

在游戏中,有时需要反射环境,如果用SurfaceShader会比较简单,但是surfaceShader的性能比较差,所以经常需要自己写Vertex/Fragment Shader来处理。首先通过一个Editor脚本来创建Cubemap( 可以在我博客主面的git地址里找)。在顶点着色器里v2f vert (appdata_full v){ v2f o; o.pos =

2016-03-04 09:23:49 2095

原创 Unity3D之跑酷地图弯曲效果

3D跑酷游戏,远处地表是弯曲的,形成视觉差,其实是通过shader来实现。float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);float zOff = vPos.z/_Dist;vPos += _QOffset*zOff*zOff;o.pos = mul (UNITY_MATRIX_P, vPos);上面是在顶点着色器中的主要代码,颜色第一行把

2015-11-24 09:41:19 3830

原创 Unity3D之在Scene窗口显示Waypoint路径

void OnDrawGizmos(){ if(waypointContainer && waypointContainer.childCount>2){ Gizmos.color=Color.red; Transform[] trans = waypointContainer.GetComponentsInChildren(); Transform prev=null;

2015-11-11 11:08:57 1195

原创 Unity3D之物体跟随鼠标移动和旋转

void FixedUpdate() { if (Input.GetMouseButton(0)) { Vector3 aimPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.mai

2015-11-10 11:50:22 16855 1

原创 Flex之接受拖放外部文件

//直接拖放protected function container_nativeDragEnterHandler(event:NativeDragEvent):void{ NativeDragManager.dropAction = NativeDragActions.COPY ; NativeDragManager.acceptDragDrop(event.target as Int

2015-11-02 11:27:16 701

div布局软件-主要用于div对网页进行前期的布局

主要用于div的布局,通过可视化的拖动层,可以更方便的进行网页的布局

2009-10-28

C#图片上传下载,图片和二进制之间的转换

用C#用图片的上传和下载,包括command,reader,adapter对图片的上传数据库和从数据库下载等操作。

2009-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除