- 博客(87)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注

原创 最全中级Unity面试题(引擎,渲染,Lua等)
打算年底找工作,所以趁着年前整理波面试题。下面是部分内容,更多内容可以通过底部关注我的公众号获取。1.UI的优化方案记录最全面的ugui优化策略_bommy游戏的博客-优快云博客2.图集的压缩格式3.减少GC的方式Unity优化之GC——合理优化Unity的GC - zblade - 博客园Unity GC垃圾回收机制_小程小程,永不消沉-优快云博客4.动态批处理与静态批处理相关关于静态批处理/动态批处理/GPU Instancing /SRP Batche.
2021-11-04 18:38:48
13244
4

原创 如何从零学习游戏开发
如何做游戏?从哪里开始学习?找工作需要会哪些东西?我已经工作只想业余时间做游戏该学什么?不知道你是不是和当初的我一样有很多困惑。根据我自身的经验带你去了解如何开始学习游戏开发。 我目前已经 工作2年了,大学时期也是自学编程,自学游戏开发,从而走上了游戏开发这条路,希望这篇文章能帮助到现在的你,少走一些弯路。(写这篇文章的目的是,我现在业余时间比较多,想做个公众号,会定期分享我的学习路线,学习笔记,我们一起进步。PS:本人理科生,文采不好,排版用的也不熟悉,请见谅,我会努力的)。想从...
2020-07-05 18:15:31
25176
19
原创 独立游戏(一) 如何通过广告获取收益
相信大家都知道通过广告获取收益,但是如何获取收益呢,通过哪些平台获取广告源呢。别急看完下面你就懂了。1.首先了解一下广告平台目前国内比较主流的广告平台有:穿山甲,优良汇,快手等。我的游戏只接入了穿山甲,优良汇。2.了解什么是ECPM?ecpm是指千次播放收益,也就是玩家观看一千次广告所产生的的收益。100个人每人看10次,和1000个人每人看一次所产生的收益也是不同的。正常情况下Ecpm会在50~100之间浮动,具体还要看实际情况。3.什么是聚合平台?一般情况下,为了收益最大化,
2022-01-22 18:36:53
7692
原创 详解如何提取Unity素材,源码
目前Unity有两种打包方式:Mono和IL2CPP。两者解压后的文件格式也是不相同的。MONO:IL2CPP:
2020-07-07 21:41:17
10907
2
原创 翻译Shader(7)---渐变贴图
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "BBBBBBBBBB/贴图/03---渐变贴图" { Properties...
2020-05-08 15:15:55
397
原创 翻译Shader(6)---法线贴图(切线空间)
Shader "BBBBBBBBBB/贴图/03---法线贴图" { Properties{ _MainTex("Main Texture",2D) = "white"{}// 纹理贴图 _BaseColor("Base Color",Color) = (1.0,1.0,1.0,1.0)// 控制纹理贴图的颜色 //由于我们本次只计算漫反射,所以只需要_MainTex和_BaseC...
2020-05-07 15:02:47
551
原创 翻译Shader(5)---基本贴图
Shader "BBBBBBBBBB/贴图/01---简单贴图" { Properties{ _MainTex("Main Texture",2D) = "white"{} //增加一个2d纹理类型的输入 _BaseColor("Base Color",Color) = (1.0,1.0,1.0,1.0) } SubShader{ pass { Tags{"Lig...
2020-05-07 11:45:41
333
原创 翻译shader(4)
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'//https://www.cnblogs.com/kanekiken/p/7616700.h...
2020-04-24 15:48:33
459
原创 翻译Shader(2)
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 5/Simple Shader" { Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) ...
2020-04-23 17:55:11
348
原创 翻译Shader(1)
不想写,,还想学,,只能想出个这种方法来了,参考:https://onevcat.com/2013/07/shader-tutorial-1/Shader "Unity Shaders Book/Chapter 3/Redify" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } S...
2020-04-22 16:03:53
389
原创 lua实现定时器
timer_manager = {}timer_manager.__index = timer_managerlocal callback = function() print("this is a callback")endlocal callback1 = function() print("this is a callback1")endlocal callbac...
2020-04-03 14:13:23
4395
5
原创 lua模拟Class
基类Class={x=0,y=0}Class.__index=Class--模拟类的原理就是生成一个table作为元表function Class:new(x,y) local self={} setmetatable(self,Class) self.x=x; self.y=y return selfendfunction Class:...
2020-04-02 17:15:46
512
原创 lua模拟vector
vector= {}vector.__index=vector;--构造函数function vector:new() local o = {} setmetatable(o,vector) o.tempVec = {} return oend--插入元素function vector:push_back(num) table.insert(self.tempVec,n...
2020-04-01 14:00:27
816
原创 编辑器批量改变图片Pivot
using UnityEngine; using System.Collections; using UnityEditor; using System.IO; public class changeTexture{ [MenuItem("Tools/改变图片锚点,手动改Pivot为Custom")] static void Init() ...
2020-02-19 18:06:27
956
原创 图形学笔记2----unityShader基本格式
一.书写格式Shader "learn/MyShader" //shader名称{ Properties //面板上面出现的一些属性需要在这里定义 { //代码里用的名字("面板上现实的名字",类型)= 默认值 m_int("disInt",Int) = 0 m_float("disFloat",Float) = 0 m_rand("disRange",R...
2019-12-22 16:19:04
622
1
原创 图形学笔记1----基本概念
边学边记,现在先看的shader入门精要,书上的内容以及自己的理解,以后会慢慢完善一.渲染管线(渲染流水线)就是一个物体展示到屏幕的整个过程,分为三个阶段:应用阶段,几何阶段,光栅化阶段1.应用阶段这个阶段是准备数据阶段,例如摄像机位置,场景中包含的模型,使用的光源,以及把不可见的物体剔除出去等等。设置每个模型的渲染状态,这些渲染状态包括但不限于使用他的材质。最重要的是渲染所需的几...
2019-12-22 15:26:44
389
转载 针对战棋类六边形的详细剖析
第一眼的感觉,给我打开了新世纪的大门,第二眼的感觉,,这大门不对我开放,,,,最近项目因为策划的需求,目前的寻路算法无法实现,找的过程中发现了这篇帖子,讲的很好,很详细。https://indienova.com/indie-game-development/hex-grids-reference/...
2019-08-17 16:51:04
2300
原创 OpenGl(二)鼠标绘制图形
#include "stdafx.h"#include <glut.h>#define N 1000 //maximum line numbersint ww, hh; // for display window width and heightint line[N][4], k = 0; //for line's endpoint coordinat...
2019-08-07 23:15:46
2286
原创 OpenGl(一)绘制第一个窗口
随着工作的深入,越来越理解到图形学的重要了,,,有必要从零开始学习了,,,,//样本程序My_first_program.cpp#include "stdafx.h"#include <glut.h>void display(void){ glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //设置清屏颜色 glClear(GL_COLOR_...
2019-08-06 23:45:21
432
转载 unity的GC优化,原理及方式
转自http://www.cnblogs.com/zblade/介绍: 在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。 Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影响,此...
2018-11-15 14:32:02
6625
1
原创 “Hello World”的执行过程(编译过程)
最近看了一下《深入理解计算机系统》这本书,看了几张就觉得打开了一扇新的大门,了解到了更多深入的东西,因此整理一下笔记,顺便加点自己的理解。#include<stdio.h>int main(){ printf("Hellow world");} 程序生命周期是从一个“源文件”开始的,有程序员写到文本并保存,文件名***.c.源程序实际上是由0和1组成的位。这些位8个一组,称...
2018-05-29 17:52:08
3259
原创 (笔记)lua中的元表
元表的功能可以理解为为table进行一些功能的扩展,或者运算符的重载。mytable = {} --表metatable = {} --元表setmetatable(mytable,metatable) --设置metatable是mytable的元表__index元方法如果通过键访问table,但是没有value值时会调用这个方法,table和键作为参数,去执行这个方法。mytable ...
2018-05-18 10:37:59
314
原创 如何计算文件的MD5值
把B文件的MD5值放入到A中存放:using UnityEngine;using System.Collections;using UnityEditor;using System.IO;public class XLuaEditor : MonoBehaviour { [MenuItem("XLua/Create A.txt")] static void Cr...
2018-05-15 15:34:37
6485
原创 unity无法显示阴影的各种解决方案
很多新手和我一样,经常发现场景中的阴影没了,,,各种检查都没错,但是百密一疏,可能会有个设置没搞好。所以1.首先检查光线是否允许产生阴影:...
2018-05-11 14:25:24
28322
原创 unity光照探针(LightProbeGroup)
场景中如果光线很丰富的话,通常会把通过lightMap提前烘焙好,把烘焙好的光照的贴图贴到静态物体身上,但是如果这时候场景中出现了一个动态物体怎么办?Unity中的LightProbeGroup。...
2018-05-11 14:09:27
7419
转载 简单工厂模式与策略模式区别
原文地址:https://www.cnblogs.com/cxchanpin/p/6770453.html直接上代码:简单工厂模式:------------------------------一个抽象类 --------------------------abstract class AbsClass{ //抽象方法:提供一些列的算法操作 public abstract void ...
2018-04-17 12:31:11
381
转载 运输层
TCP/UDP:TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。TCP对应的协议TCP对应的协议:(1) FTP:定义了文件传输协议,使用21端口。(2) Telnet:一种用于远程登陆的端口,使用23...
2018-04-04 12:34:47
384
原创 网络层
网络层网络层向上之提供简单灵活的,无连接的,尽最大努力交付的数据报服务。硬件:路由器,网关网络协议IP三个协议:地址解析协议ARP(MAC/IP,还有个RARP逆向,已经淘汰)网际控制报文协议ICMP网际组管理协议IGMP IP地址:IP地址::={<网络号>,<主机号>} IP地址不仅指明一个主机,还指明了主机所连接到的网络。根据网络主机的多少把IP地址划分为ABC三类,...
2018-04-04 12:22:03
1491
原创 数据链路层
每次面试考到计算机网络的时候都回答的很模糊,印象很清楚不知道如何回答,,,决定从头复习下。常用硬件:网络适配器(网卡)网桥使用信道:点对点信道(PPP):一对一的对点通信方式广播信道:一对多的对点通信方式三个基本问题封装成帧:在每段IP数据报文添加收尾帧界定符区分一个包(SOH,EOT)透明传输:有可能在报文中与帧界定符相同的数据,此时在与界定符相同的数据前插入一个转义字符(ESC),如果接收端接...
2018-04-04 10:55:49
332
原创 (学习笔记)C#与lua互相调用
1.输出lua脚本内容: void Start () { TextAsset ta = Resources.Load<TextAsset>("helloworld.lua"); // 是 helloworld.lua.txt LuaEnv env = new LuaEnv();//最好一个游戏只有一个,它对应lua虚拟机,处于开销考虑 ...
2018-04-03 12:43:01
1877
原创 毕业设计之角色状态机
这两天一直没做多少毕设的东西,只是简单的实现了下fsm状态机,之前只是了解并没有彻底接触过,学习了一下发现并没有想象中那么复杂,于是根据一篇教程自己改动了下。状态机果然好用,把逻辑简化了很多,虽然代码量多了很多。,原贴地址:https://blog.youkuaiyun.com/code_sheen/article/details/45869505IState:
2018-03-26 14:34:17
1217
原创 MFC多点触控画板
为了搭配一个项目,决定做个支持多点的多人画板,之前一直使用winfrom但是不支持多点(微软自己的东西都不支持=.=),于是研究了两天MFC,哇,一比较,简直绝望,感觉使用好费劲,各种不知道问题的报错,但是做了两天还是实现基本功能了(第三天就让我实现更多的功能,于是有研究了两天wpf,简直简单,就是HTML和winform的结合体)。 官方的多点触控是基于单文档的,感谢这...
2018-03-24 17:25:37
1199
原创 毕业设计之剧情系统(NPC对话框)
剧情系统本来打算用插件做的,但是为了巩固下unity决定还是手写,网上看了几个帖子没看出什么效果。我理解的框架就是让游戏逻辑更加清晰,更容易扩展,于是自己想出了一个框架。整体框架如下: ChatJson(解析json)using System.Collections;using System.Collections.Generic;using UnityEngine;using L...
2018-03-21 11:32:29
4399
原创 毕业设计之背包系统3
鼠标移动到每个slot的物体上肯定会显示当前物品的信息,因此创建一个ToolTip用来显示提示信息,只需要一个image一个text就够了,添加一个ToolTip用来更新信息。ToolClip: private Text toolTipText; private Text contentText; private CanvasGroup canvasGrou
2018-03-20 15:11:51
1111
原创 毕业设计之背包系统2
做一个装备的预制体,一个image用来显示物体图片,一个image用来显示数字,添加一个ItemUI脚本用来更改信息。itemUI: public Item Item { get; set; } public int Amount { get; set; } private Image itemImage; private Text amountText;
2018-03-20 09:06:01
761
原创 毕业设计之背包系统1
打算写任务系统,背包系统,战斗系统三部分,但是目前只做过背包系统(跟着siki学的),战斗系统(还不是用FSM写的),决定从背包系统开始,修改下之前的框架。 先做UI: 背包系统是由很多小格子构成,每个格子也就是一个图片,创建一个image,加一个button,把所有格子放到一个空物体下面,为了对小格子进行排序所以要有Grid layout Group组件。gr...
2018-03-19 09:16:10
5073
2
原创 毕业设计之小地图
小地图的制作比较简单,在主角上再挂一个相机,垂直照射主角,投影设为orthographic,在项目里面创建一个 render texture,拖到相机上,此时相机的内容都在render texturr上面。想要要他显示出来需要UI->raw image让其显示,拖到上面让其显示。但是此时显示会是正方形,变成圆形有两种方式。 第一种解决方案:创建一个imag...
2018-03-15 17:15:35
1649
原创 毕业设计之NPC头顶信息
NPC头顶信息基本每个游戏都会有,实现方式有很多,想用UGUI的方法实现,但是并没有找到很详细的相关资料,倒是发现很多GUI的例子,但是看需要很多代码,自我感觉没必要这么复杂,于是接着找,所以发现了TextMesh。想问下各位大佬,想知道一般游戏是用什么方式实现这种效果呢(NGUI除外),是用UGUI?还是用各种插件呢?如果用UGUI的话看网上写的是在每个角色下面添加一个Canvas...
2018-03-15 13:41:25
621
原创 毕业设计之场景异步加载
决定从一些小部分做起,与游戏整体框架无关的做起。第一个做的就是场景的异步加载了。之前并没有接触过异步加载,都是直接SceneManager.LoadScene(name);对于小场景的话没问题,但是如果场景资源太多就会造成卡顿,所以需要异步加载。 A场景要转换到C场景,则需要一个B场景去过过渡,在B场景等待C的加载,加载完再转换到C场景。 一共需要两个脚本:
2018-03-14 15:54:01
422
指针b为什么会变???
2017-03-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人