自定义博客皮肤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)
  • 收藏
  • 关注

原创 IOS 加载本地HTML

web_qtt以 folder形式添加到项目中,注意是蓝色的颜色创建swift项目,写入如下代码//// ViewController.swift// jigsaw//// Created by edz on 2021/10/13.//import UIKitimport WebKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDid.

2021-10-14 10:56:27 756

原创 mac上用VSCode搭建 c++ 工程,用于学习Opengl

先下载VSCode安装c/c++插件,安装微软这个。创建一个文件夹作为项目,然后用VSCode打开这个目录在这个文件夹中创建好三个目录,分别是src,lib , include , binsrc 目录主要放我们自己的代码lib 目录放静态库include 放一些库和头文件bin 放动态库和一些资源,以及最后生成的应用目录将我们之前下载的几个库分别放在相应的这几个目录中在.vscode 创建这几个文件c_cpp_properties.json中主要是为vscode配置的路径.

2021-09-19 22:02:45 1161 1

原创 Go语言学习之读文件

两种方式读取文件package mainimport ( "bufio" "fmt" "io" "os")func readFile(filePath string) { file, err := os.Open(filePath) if err != nil { return } defer file.Close() var b []byte = make([]byte, 128) for { n, er := file.Read(b) if er == nil

2021-07-22 14:13:43 199

原创 Go语言学习之继承

在说Go的继承之前,先谈一下C语言的继承,在c中,通过结构体来实现。#include <stdio.h>#include <stdlib.h>typedef struct{ char *name; int age;}Person;typedef struct{ Person parent;//必须写在第一行 int grade;//年级 int class;//班级}Student;Student * create_stu

2021-07-21 22:54:26 521

原创 安卓工程中Gradle版本的选择

Gradle对应的版本,也就是在安卓工程中,classpath 'com.android.tools.build:gradle:3.4.3' 这个dependencies配置和gradle-wrapper.properties中的distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip 对应的版本:例如,你在classpath中用的是3.6.0,则gradle-wrapper.properties中就

2021-07-21 11:03:59 2427

原创 Unity URP自学笔记本六 ShaderGraph中的Custom Function

Shader Graph中有两种Custom Function方式,一种是通过字符串,也就是直接把代码写上去,第二种是通过外部文件,把代码写到外部,如果下面的一个自定义的外部hlsl文件;#ifndef CUSTOMFUNC_INCLUDE#define CUSTOMFUNC_INCLUDEvoid MainLight_half(float3 WorldPos, out half3 Direction, out half3 Color, out half DistanceAtten, out hal

2021-07-12 12:28:56 2923

原创 Unity Pahfinding 插件中直接用RVOController来移动角色

using UnityEngine;using System.Collections;using Pathfinding.RVO;public class SimpleRVOAI : MonoBehaviour { RVOController controller; // Use this for initialization void Awake () { controller = GetComponent<RVOController>();

2021-07-08 13:47:45 610

原创 Unity URP自学笔记五 假阴影

阴影的制作方式很多,下面是类似王者荣耀的阴影,主要是这种阴影显示效果好,性能好。缺点是只是在一个平面上的阴影,主要用于地面是平的情况。此阴影还是通过Renderer Feather方式添加,下面是shadowShader "Unlit/Shadow"{ Properties { _ShadowY ("ShadowY", float) = 0.001 } SubShader { Pass {

2021-07-05 16:13:23 1170 1

原创 Unity URP自学笔记四 ShaderGraph

在ShaderGraph中自定义光照计算,主要需要获取光照的颜色和方向,这些需要自己通过脚本来获取。例如通过CustomFunction结点来处理:下面创建了一个半兰伯特SubGraph,便于以后多个地方可用:其他ShaderGraph操作自己看其他教程,相对比较简单,这里就不用多讲了。...

2021-07-05 13:56:40 1264 2

原创 Unity URP自学笔记三 阴影计算

通过查看Lighting.hlsl,可以看到GetMainLight方法,其中有一个方法是通过阴影坐标来获取不前的阴影值。具体操作是在顶点计算中获取当前顶点的世界坐标,然后在片断着色中通过世界坐标来获取阴影坐标,然后再获取阴影值。如下面的代码片断:v2f vert (appdata v){ v2f o; o.vertex = TransformObjectToHClip(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex);

2021-07-05 12:27:58 1116

原创 Unity URP自学笔记二 模型描边

在以前的Builtin方式中,一般描边是通过一个Pass来实现,这样做相当于使用了这个shader的物体,在渲染时,需要依次执行模型渲染和描边渲染两个pass,如果某一个时间点不需要显示描边,可能就需要对这个模型换shader或材质,使用起来会有点麻烦。而最新的URP或HDRP中,虽然也可以使用多个Pass来实现,只是Pass的有数量限制,而且默认只支持那几种LightMode,所以最好的实现是通过Renderer Feather来实现,相当于相机再通过某个材质或shader再渲染一次物体,此时我们就可以

2021-07-05 12:17:46 2388

原创 Unity URP自学笔记一

因为CG英伟达不再维护,并且支持的功能比较少,基本和DX9的功能差不多,随前显卡的更新换代,unity在URP和HDRP中使用了HLSL,支持DX11相关的API,并有逐步抛弃CG的意途,而且还可以用ShaderGraph来创建shader,方便美术和策划创作。HLSL的语法总体来说和CG差不多,只不过有一些小的差别,首先从格式上,基本上致,只是多了一些标签,例如RenderPipeline = "UniversalRenderPipline"代码放在HLSLPROGRAM ... HLSLEND 之

2021-07-01 13:13:27 791 1

原创 GooglePlay Store App 版本更新判断

需要添加implementation 'org.jsoup:jsoup:1.12.1'package com.unity3d.player;import android.app.Activity;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;.

2021-04-13 15:06:44 2340

原创 AstarPathfindingProject 中RVO碰撞体扩展

原本库中只有矩形RVO碰撞体,如果要添加自己的需要继承RVOObstacle抽象类,重写里面的方法例如下面的圆柱形碰撞using UnityEngine;#if UNITY_EDITORusing UnityEditor;using Pathfinding.RVO;#endifnamespace Pathfinding.RVO{ [AddComponentMenu("Pathfinding/Local Avoidance/Cylinder Obstacle")] pu

2021-03-26 10:47:26 939

原创 Unity ScrollView和GridLayout

scollRect.onValueChanged.AddListener((Vector2 v)=>{ ScrollContent.SetHeight(grid.preferredHeight + 20f);});获取Layout的高度,用于设置ScrollView的滚动高度

2021-02-04 20:23:59 408

原创 Unity Burst学习2

和JobSystem配合使用导入命名空间using Unity.Burst;using Unity.Jobs;using Unity.Collections;注意里面用到的都是值类型,如果是Vector3之类的,需要转换成Unity.Mathematics中的float3。支持readonly静态数组[BurstCompile]struct ST : IJob{ [ReadOnly] public float a; [ReadOnly] publi

2021-01-28 12:20:18 446

原创 Unity Burst学习1

对静态方法进行BurstCompile需要导入Burst Package添加命名空间相关引用using Unity.Burst;using AOT;[BurstCompile]public class TT{ [BurstCompile(CompileSynchronously=true)] [MonoPInvokeCallback(typeof(Process2FloatsDelegate))] public static float Cal(float

2021-01-28 12:13:53 1285

原创 随机围绕球体旋转

主要是随机算出一个旋转轴public class Rota : MonoBehaviour{ private Vector3 _axis ; [SerializeField] private float _rotaSpeed = 5; // Start is called before the first frame update void Start() { Vector3 toZero = transform.position.n

2020-12-16 09:25:23 219

原创 Unity限制旋转角度

float CheckAngle(float value){ float angle = value - 180; if (angle > 0) { return angle - 180; } return angle + 180;}//用法var rotate = Quaternion.Lerp(transform.rotation, forward, Time.fixedDeltaTime * m_rotateSpeed);.

2020-11-17 16:11:57 2177

原创 layabox 2d向量

这是一个以前在flash中用的向量类package utils{ public class Vector2D { private var _x:Number = 1.0; private var _y:Number; public function Vector2D(x:Number=1.0,y:Number=0) { _x = x; _y = y; } //拷贝向量 public function clone():Vector2D

2020-09-21 21:47:00 429

转载 cocos creator 类似unity Expand适配

const {ccclass, property} = cc._decorator;@ccclassexport default class CanvasLayout extends cc.Component { curDR:cc.Size = null; onLoad () { var cvs = cc.Canvas.instance; //保存原始设计分辨率,供屏幕大小变化时使用 if(!this.curDR){ .

2020-09-02 10:54:51 858

原创 UGUI 用图片遮罩

在UGUI或者Sprite中,有图片作为遮罩层的情况,但是因为使用了SpriteAtlas,会造成取得的遮罩的uv是错误的。所以我们需要得到正确的uv。有两种方式,其实算法都一样,目的就是获取正确的遮罩层的uv。第一种,通过外部传入一个vector4的值在c#中,对材质传递Sprite信息值if (img.sprite){ Sprite sprite = img.sprite; Vector4 result = new Vector4(sprite.textureRe

2020-07-08 10:27:31 574

原创 UGUI 文本加粗

这是用的Aril字体,通常情况下,直接用<b>达不到这样粗的效果,所以需要重新写一个字体效果,类似描边的效果。上面的图片就是效果和所设置的参数。下面是代码,参考其他人的代码改编的using UnityEngine;using System.Collections.Generic;using System.Text.RegularExpressions;using UnityEngine.UI;[RequireComponent(typeof(Text))]publ...

2020-07-01 18:34:51 2028

原创 UNITY_MATRIX_IT_MV

MV transforms points from object to eye space IT_MV rotates normals from object to eye space上面是文档上的定义,可以看出IT_MV主要用于法线,那为什么法线不用MV来转换呢,那是因为法线和切线有方向,如果模型在非等比例缩放时,方向向量会变化,所以不能直接用MV...

2020-07-01 10:06:39 1432

原创 Unity multi_compile_instancing

对于大量相同模型的性能优化,在shader方法,可以用gpu instancing方式。例如这个简单阴影计算的pass,注意里面有很多UNITY_开头的命令//投影的计算PassPass{ Name "Shadow" Stencil { Ref 0 Comp equal Pass incrWrap Fail keep ZFail keep } Blend SrcAlpha OneMinusSrcAlpha ZWrite Off Offset -1, 0

2020-07-01 09:50:21 1847

原创 Unity导出安卓工程运行报错,或者打不出apk解决办法

在build.gradle中加checkReleaseBuilds falselintOptions { checkReleaseBuilds false abortOnError false}可以直接改Unity安卓目录中的安卓工程模板,以免每次都要手动添加

2020-07-01 09:32:24 977

原创 Unity3D描边

描边的方式有好几种一种是根据法线方向扩展模型的方式,这种方式最简单,但效果不好。第二种是将法线转到投影空间后,再扩展顶点,这种方式比第一种好一点点,但是模型的线还是会有断面第三种是在第二种基础上,重新计算法线,防止断线,而重新计算的法线数据,可以存入模型的切线数据中,这种出来的描边效果最好。下面主要是第三种的实现方式:重新计算法线的方法:private void WirteAverageNormalToTangent(Mesh mesh){ var vertics .

2020-07-01 09:28:21 1085

原创 Unity顶点光照Blinn-phong

在手机游戏中,如果又想要光照,又想性能好,可以考虑用顶点光照,虽然效果上差了一点,但是如果物体属于低多边形,或者物体比较小,这两种情况下可以考虑用这种光照效果。顺便还可以给模型加顶点颜色,直接使用顶点颜色来控制模型的显示。Shader "_Game/Blinn-Phong Vertex Light" { Properties { _Specular("Specular",Color) = (1,1,1,1) _Gloss("Gloss",Range(1.0,256)) = 20

2020-06-12 10:54:00 549

原创 git在没拉取之前推送造成冲突解决办法

第一种:保留本地的更改,中止合并->重新合并->重新拉取$:git merge --abort$:git reset --merge$:git pull解决办法二:舍弃本地代码,远端版本覆盖本地版本(慎重)$:git fetch --all$:git reset --hard origin/master$:git fetch...

2020-06-10 10:40:01 1451

原创 Unity旋转

只在水平方向上旋转:可以将方向向量投影到水平方向,再来计算旋转Vector3 dir = (target.position - transform.position).normalized;//投影到水平方向dir = dir - Vector3.Project(dir,Vector3.up);Quaternion quaternion = Quaternion.LookRotat...

2020-03-31 16:00:00 148

原创 Surface shader 多个Pass的写法

在surface shader中,虽然不能用pass这个词,但是最终的shader生成后,会自己生成pass。那如果我们想在Surface shader中写多个pass怎么办?其实我们只需要把一个pass的内容包含到CGPROGRAM .... ENDCG 之中就行了,例如下面的shader:Shader "Custom/MySurface"{ Properties ...

2019-12-24 14:44:27 2061 1

原创 Layabox 头条对接

头条包括了今日头条和抖音等,头条的平台直接用一套代码支持他的全平台,不像腾讯微信和手Q还是单独的,而且有些api还不兼容。头条的 api 和 腾讯的基本一致,下面只是列出一些不一样的点供大家参考:1. 调用 tt.getUserInfo()此接口需要在 tt.authorize("scope.userInfo") 之后调用才有作用。2. 要注意头条的权限 值和腾讯的有一些不一致...

2019-08-24 17:27:25 1491

原创 layabox Native 自己下载资源并缓存

我们在开发中,不管是打的网络版还是本地版,或多或少都有可能加载一些网络上的资源,并且这些资源不想用dcc方式,毕竟现在苹果对热更新管得比较严,那如果不用dcc方式,我们在Native上面的资源用Loader去加载后,并不会缓存到本地,这样会造成网络流量的浪费。经过我对Laya生成的Native中的js脚本进行分析,以及多次尝试才做出来,而官方很不想帮忙回答这些问题,一问问题就是让你交钱成VIP...

2019-08-09 19:07:13 2573 5

原创 layabox 开发的一些坑

1. 在音乐恢复播放的坑在微信等小游戏上,在回到游戏中时,需要调用背景音乐的resume方法,但是多次切后台再回前台,调用SoundChannel的resume居然没有效果,这时需要先调用一次SoundChannel的pause,再调用resume就可以了。2. 使用graphics 作为遮罩例如我们用graphics画一个圆,并且这个圆有边线,如果此时将这个圆拿去做其他对象的遮罩...

2019-07-27 14:34:42 2895

原创 Layabox 实现画 刚体线

Layabox 的刚体里面只有一个b2PolygonShape,而为了实现画刚体线,我们需要用到复合Shape,也就是多个Shape组成一个刚体。此时如果用Layabox自带的Collider就实现不了,所以我们需要继承ColliderBase来实现复合体,下面是代码package{ import laya.physics.ColliderBase; import la...

2019-07-24 14:07:40 1733 2

原创 Layabox 实现 PageView 翻页

Layabox 中没有 PageView这个组件,cocos creater中有,但是我们可以轻松地使用 List来实现PageView功能。具体方式是计算出滚动后要停在所在的Cell的索引值,使用通过 List的tweenTo方法来滚动到相应位置。先看下面的效果下面是代码:package{ import ui.PageViewTestUI; import...

2019-07-24 13:56:52 1774

原创 Android隐藏虚拟按键

View gameView = xxxxxx; //获取当前View//隐藏虚拟按键,并且全屏if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api gameView.setSystemUiVisibility(View.GONE);} else if (...

2019-07-15 15:17:31 3164

原创 laya中使用 ttf 字体

在layabox中使用ttf相当麻烦,当前我说一下在Laya模拟器和微信小游戏中怎么使用TTF字体。在微信小要用微信自带的api来加载字体if(Browser.onMiniGame && Browser.onWeiXin){ console.log(__JS__("wx").loadFont("font/Crimewave BB.ttf")); console.lo...

2019-06-20 13:51:01 5258 1

原创 laya 位图字体

我们在使用laya中,或多或少会用到一些位图字体,位图字体创建的方式很多,但laya只支持导出为XML的fnt格式,而xml在微信小游戏上需要另加额外的解析库,这就导致了包大小的增加。而位图字体导出工具并不是只能导出xml格式的字体,还可以导出成文本格式,既然这样,我们为什么不直接解析文本格式呢?下面是我解析文本格式的代码,字体创建是通过http://kvazars.com/littera...

2019-06-20 13:42:23 1012

原创 Unity Shader 扇形进度条

我们知道在Unity后面的版本中SpriteRenderer已经有了Tiled功能,可以实现扇形进度条的功能,不过如果我们需要多种样式的进度条,可能就需要写shader了。下面是实现扇形进度条的代码,如果需要其他样式 的,可以直接修改。Shader "My/Pie" {Properties { _MainTex ("Base (RGB) Trans (A)", 2D) = "whi...

2019-06-17 10:07:06 1944

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

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

2009-10-28

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

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

2009-02-19

空空如也

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

TA关注的人

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