自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王利威的博客

unity3D从小白到大牛的成长屎

  • 博客(51)
  • 资源 (4)
  • 收藏
  • 关注

原创 自动创建预设脚本

自动创建预设脚本

2022-08-19 15:31:15 695 1

原创 Android sdk工程搭建(aar)

unity 与 Android 的交互

2022-08-19 10:34:45 1781

原创 Unity-性能调优

1.静态合批的原理是什么?会造成开销么?如果会,开销有哪些?静态批处理:游戏导出时,在player setting中勾选static batching,导出包的时候就进行批处理,导出来的包就会比较大。 在游戏场景中勾选场景的static选项,在加载场景时,会进行一次静态批处理合并,导出来的包不大,但加载时会使内存变大。 场景中有4个物体,如果都勾选静态选项,在进行静态批处理的时候,引擎会判断这4个物体是否共用同一渲染材质。如果共用同一渲染材质,则会将这4个物体视为可批处理的对象,引擎会基于单个渲染对象

2020-11-15 22:33:44 1290 3

原创 unity小结-C#代码方面

1.写C#代码时应注意什么?如何避免?2.C#中的关键字有哪些?有什么作用?3.C#中的“值类型”和“引用类型”有哪些?两者的区别4.ref 和 out 关键字的作用和区别?5.static关键字的使用?6.C#和Lua的优缺点?......

2020-11-15 22:33:36 485 1

原创 Unity面试总结-Lua

1.写lua代码时需要注意什么?如何避免2.Lua内存泄漏是什么?如何处理?3.Lua中的关键字有哪些?变量类型有哪些?

2020-11-15 22:33:27 720

原创 Unity面试总结-功能实现

1.从接到任务到完成任务,一共几个过程,每个过程注意什么?2.设计一个背包系统,格子500. 伪代码实现 增,删,改,查。struct{ string uid,int index, int count, int itemcode}3.描述一下背包如何实现?4.如何在UI上显示模型?5.Lua和C#是如何实现通信的?6.做ui过程中需要注意什么?如何避免...

2020-11-15 22:33:15 1390 5

原创 Unity小结-优化

1.为他人的系统做优化,需要注意什么?2.如何降低drawCall?3.如何在UI上降低DrawCall?4.UI有哪些优化方式?5.手机发烫的原因?如何处理?6.GC工作原理,如何减少GC?7.unity优化。

2020-11-15 22:32:54 1756 4

原创 Unity问答-框架设计与资源管理

目录1.Unity项目框架是如何设计的?有哪些原则?2.资源管理是如何做的,如何更新与打空包?3.资源管理的平台,版本,渠道是如何管理的?4.项目框架是如何让美术,策划,程序愉快的工作的?5.真机调试,看打印日志你是如何处理的?6.Unity如何避免多人提交代码冲突?7.框架你用了哪些设计模式,分别是什么?解决什么问题8.你的项目是如何做热更新的?9.框架设计里面你常用的第三方库和插件是哪些?解决哪些问题?10.聊聊ECS框架,DOTS模式。11.Addressa

2020-10-13 12:03:06 895

原创 unity问答-基础知识与数据结构

1.委托是什么?Event关键字有什么用?委托:用于将方法作为参数传递给其他方法。事件处理程序就是通过委托调用方法。 你可以创建一个自定义方法,当特定事件发生后,某个类就可以调用你这个方法。 可以将多个方法赋给同一个委托,调用时,依次调用其所有绑定的方法,也可以取消。 举例:遇到不同国家的人,以不同的方式打招呼。 using System;using System.Collections.Generic;namespace UnityBase{ //委托 publ

2020-10-10 17:29:59 742

原创 Unity内存优化小技巧

资源优化:资源主要可分为以下几种:纹理texture,网格mesh,动画片段animationClip,音频片段audioClip,材质material,着色器shader,字体资源font以及文本资源textTexture:1.texturepacker合并整图2.Android平台用 ETC2 格式压缩,IOS用 PVR/ASTC 压缩纹理3.Read & Write一般情况下,关闭纹理资源的“Read & Write”,因为开启该选项会使纹理内存增大一倍.

2020-08-15 17:41:59 1968

原创 Unity优化小技巧

1.尽量减少GetComponent调用,因为会有额外GC,且会回调到Native(C++),增加效率损耗。建议缓存为变量。 Image m_image; void Start () { m_image = GetComponent<Image>(); }2.尽量不要频繁判断UnityEngine.Object == null根据源码可以看到 == null 的判断会导致调用 IsNativeObjectAlive,这个接口的损耗是一般C#对象==null的N倍,所以建

2020-08-14 16:22:28 487

原创 PostProcessing 屏幕后处理

安装PostProcessing、PostProcessing是unity内置的后期效果增强组件,可以在极短的时间内得到各种常用特效的效果PostProcessing可以在资源包管理器中直接安装得到。PostProcessing Layer首先我们需要在相机中添加一个Post-process Layer组件来渲染相机图像。Trigger触发器默认是相机本身,如果有需要可以设置为其他物体,如挂载到角色上面,可以实现进入特定区域触发特效Layer是一个很重要也很容易忽略的角色,必须保证.

2020-08-06 19:59:50 721

原创 Unity相机碰撞遮挡处理

相机组件结构:一般是相机根节点处理,相机跟随,旋转。mainCamera处理相机距离。当角色靠近墙壁,墙壁处于摄像机和角色之间时,会遮挡角色,处理方法是,把相机距离拉近。using System;using System.Collections;using UnityEngine;namespace UnityStandardAssets.Cameras{ public class ProtectCameraFromWallClip : MonoBehaviour

2020-07-22 15:48:47 1589

原创 领取奖励排序_Lua

功能需求:奖励领取界面,按照某一顺序排序。已领取的排在后面,未领取的排在前面,整体按照某一从小到大的顺序。领取奖励的item数据表table={ {id,state,},{id,state},{id,state},{id,state},{}, , }function SortLsit(a,b) --状态相同,按照id排序 if a.state==b.state th...

2019-10-26 11:46:19 548

原创 C#数据结构之线性结构

线性结构是最简单,最基本,最常用的数据结构。特点是:数据元素之间存在一对一的线性关系。一对一的关系指位置关系。线性结构(List)由n个相同类型的数据元素构成的有限序列。常用的 数组,泛型 都是线性结构。线性结构的基本操作:List<T>int GetLength(); //求长度void Clear(); //清空bool isEmoty(); //是否为...

2019-08-06 16:34:40 428

原创 Unity3D个人作品展示(Awakening觉醒森林)

链接:https://pan.baidu.com/s/1Fg-mp_OVBuH4guFPJLz1Eg提取码:j5na游戏截图:

2019-08-01 18:21:29 3016 2

原创 Unity3D——服务器和客户端

服务器:using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;namespac...

2019-07-31 20:46:51 5242

原创 毕业设计之剧情设计

(初想法,不代表最终结果)主角-Leery:    在冬天的一个晚上,像往常一样,Leevy正坐在电脑面前,劈里啪啦的敲着键盘。    Leevy:好困呀!(哈欠),毕业设计要做什么呢?好烦啊。    突然,一阵眩晕,Leery感觉自己掉了下去。      睁开眼发现身处一个陌生的世界。而且自身的样子的也变得很奇怪。  Leevy:o((&gt;ω&lt; ))o,这里...

2019-01-09 14:37:55 342

原创 毕设之旅第1站---角色控制2

角色跳跃,翻滚,前冲,RootMotion继续补充角色的动作在“Leevy”状态机里,Base Layer层,拖入“jump”动画。Parameters里新增 Trigger,"jump"。在这里新增加一个判断条件,动作只能在地面上才能进行。因此,增加一个Parameters, bool型的"isGround",后面会进行检测。从“ground”拉线到“jump”,取消勾选“Has...

2018-11-20 14:31:13 186

原创 毕设之旅第1站---角色控制1

角色idle,行走,跑步第一步:导入模型创建一个Plane,作为临时地面。创建一个Capsule,命名为《Player》,去掉Mesh,保留collider,center的Y值设为1,作为角色的控制柄。把model放在player下。为model添加animatior组件。第二步:状态机创建一个“Animator Controller”,命名为“Leevy”,赋值给mo...

2018-11-20 12:23:36 183

原创 毕设之初想法

 游戏名:“愤怒的程序员”类型:3D,动作,冒险游戏背景:某毕业生正在做毕业设计,发现自己穿越到了异世界,面对成群的错误怪物,开启了屠杀的错误之旅。内容:登陆系统------序列化保存读取,或者数据库设置系统------设置分辨率,声音,其它等,用团结内置保存函数。储存系统------序列化存储数据,读取数据选角系统------两个模型提供选择,选择后加载到游戏场景...

2018-11-14 13:00:36 489

原创 Unity3D为3D物体添加点击事件

1.相机添加脚本《ClickEvent》:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class ClickEvent : MonoBehaviour { public GameObject...

2018-10-18 17:05:09 10381 4

原创 Unity3D通过鼠标滑动改变数值

using System.Collections;using System.Collections.Generic;using UnityEngine;using DG.Tweening;public class MyChangdeIndexBySlider : MonoBehaviour{ public int minIndex; public int maxI...

2018-09-11 18:01:00 3535 5

原创 Unity3D使用UDP协议实现两个程序传递信息

 发送端:  调用Send()方法,传递发送的内容。using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;...

2018-09-11 10:37:12 3168 4

原创 Unity3D无限滚动脚本

效果:原理:复制一份组件,放到本体后面,设置endpos为滚动的长度,当滚动到endpos位置,就复位。脚本:MyFlowusing System.Collections;using System.Collections.Generic;using UnityEngine;public class MyFlow : MonoBehaviour{ [Hea...

2018-09-11 10:18:43 1577

原创 Unity3D自己编写Scroll View

介绍:在做UI的时候,会遇到滑动的组件,固定一个方框中显示内容。UGUI和NGUI中都有scroll view组件,可以很放便使用。但有时候不是想要的功能。了解底层实现,才能做出自己想要的功能,下面就写一个简单的scroll view组成:显示区域 内容区域 内容 滑块步骤:Canvas下创建一个空物体,添加脚本&lt;MyScrollView&gt;。调整好大...

2018-09-10 19:02:13 2439 1

原创 Unity3DDOTween使用经验

DOTween插件用来做动画有多方便就不多解释了,这里总结一下最近使用的经验。 每一个tween动画,都可以复制给一个 Tweener 对象,可以很方便的管理。 tweener可以控制动画的播放,暂停,倒放,播放速度,自动销毁,循环,动画效果等等一系列所有问题。TogglePause(),触发一次该事件,就播放,再触发一次暂停,然后再播放。字面意思理解。From() 从目标状态——...

2018-08-23 16:38:46 4342

原创 Unity3DAlpha Mask UI插件制作流光特效

效果图:制作步骤:导入Alpha Mask UI Sprites Quads 2.1  插件unity中创建一个空的根节点节点下面 一个空物体Mask 添加 Alpha Mask脚本。light,mask 制作:light:(移动的,白色显示,黑色不显示)mask:(遮罩,不动的) 然后:为light添加材质最后,用脚本控制light的移动...

2018-08-21 11:16:38 5380 5

原创 Unity3D自己写导航

介绍:unity界面开发,会用到很多导航的按钮,他们是公共的,单击其中一个按钮,显示对应的界面。unity中,UGUI自带Toggle组件,NGUI也有Toggle复选框,都方便了开发者的开发。但是只有合适自己才是王道。今天,就用普通的按钮组建,来编写自己的导航。导航的组成:总控制 按钮组 面板组步骤:编写脚本:&lt;NavigationButton&gt;  ...

2018-08-14 12:10:28 1964 2

原创 Unity3DDoTween动画播放异常

BUG出现原因:当一个DOTween动画播放时长大于0s; 该动画还未播放完毕,便开启另一段动画; 并调用该动画的关闭函数。BUG:      上一段本应该结束的动画,没有结束。解决步骤:为动画设置ID 在关闭此动画的方法调用 DOTween.Kill("ID");public class TweenChange: MonoBehaviour { public...

2018-08-12 16:20:55 3314

原创 Unity3DUGUI防止界面遮挡

BUG:一个公共UI界面,底部有一个【Home】按钮。当其中一个界面是一个Sprit,大小和整个界面一样时,该页面显示时,【Home】按钮单击不了。解决方法:为该按钮组件 添加一个【Canvas】组件。 勾选【Override Sorting】 修改【Sort Order】的值,该值越大,该组件越靠上。 添加【Graphic Raycaster】组件,该组件的作用是,设置多个...

2018-08-12 16:05:26 4287 1

原创 Unity3DUGUI界面系统Canvas

【图形与用户界面】UGUI系统特点:灵活,快速,可视化。UI概要:Canvas(画布):Canvas 是游戏对象上的一个组件,所有的UI组件都要绘制在画布里面。创建画布,系统自动创建EventSystem组件,这是UI的事件系统Render Mode(渲染模式):Screen Space-Overlay渲染模式:UI被渲染在屏幕上,即使没有相机,也将呈现UI。...

2018-08-12 15:51:19 1810

原创 Unity3DNGUI多语言切换

NGUI自带本地化系统支持所有UILabel文本语言切换。 1.为一个Sprite添加LanguageSelection控件,会自动变成一个PopupList组件。 2.为需要语言切换的UILabel添加UILocalize组件。  设置好Key。 3.Localization.txt文件设置 路径为:Assets/NGUI/Examples/Res...

2018-06-16 11:15:53 4291

原创 Unity3DRPG人物头顶血条跟随

创建血条UI; 创建角色物体,挂载脚本; 获得角色位置坐标,转化为屏幕坐标。 Vector3 pt = Camera.main.WorldToScreenPoint(new Vector3(this.transform.position.x, this.transform.position.y + 1, this.transform.position.z)); 设置UI坐标,屏幕坐...

2018-06-16 10:48:00 5507

原创 Unity3D:RayCast碰撞检测

函数介绍:static bool RayCast ( Vector3 orgin , Vector3 direction , out RayCastHit hitInfo , float distnace=Mathf.Infinity , int layerMask=DefaultRaycastLayers ) ;第一个参数为射线碰撞检测的原点;第二个参数为射线检测的方向矢量;第三个参数为out类...

2018-06-09 10:49:19 12260

原创 Unity3D场景转换效果

功能介绍:加载场景时画面会逐渐变亮,退出场景时(或者角色死亡)画面逐渐变暗。添加一个RawImage对象,设置Tag。 使其铺满整个屏幕 设置Color为合适的值,例RGBA(128,128,128,178); Canvas下添加一个Ganvas Group组件,设置Alpha为0.5;添加脚本:using UnityEngine.UI;                 //引入...

2018-06-08 20:50:04 5892

原创 Unity3D警报灯

功能介绍:角色进入危险状态,触发警报灯。灯光开启,逐渐变亮,亮度达到最大值,逐渐变暗。 角色脱离危险,警报灯关闭。同时触发报警音乐的开启和关闭。首先在场景中添加一盏警报灯。(Alarm Light) 设置好其Transfrom,Tag等。 默认不开启,Intensity值为0. 颜色一般为暗红色RGB(70,0,0)。 Culling Mask为Everying,不参与烘培,Mode为R...

2018-06-08 20:03:53 2992 3

原创 Unity3D:角色控制

1.键盘控制角色前后左右移动不转向,通过物体刚体组件物理特效Velocity控制,在FixedUpdate()函数里添加代码:void FixedUpdate(){ float moveHorizontal=Input.GetAxis("Horizontal");//得到水平方向输入 float moveVertical=Input.GetAxis("Vertical");//得到垂直方向输入...

2018-06-08 18:01:23 1449

原创 Unity3D:实例化物体

1.实例化函数Instantite( gameObject , transform.position , transform.rotation ) ;在position位置,朝着rotation方向,生成一个gameObject(Clone);例子:发射子弹,游戏逻辑,在Update()函数里添加代码:void Update(){ float fireCD=0.5f;//发射时间间隔 floa...

2018-06-08 17:51:35 7781

原创 Unity小地图制作

小地图制作 1.首先创建一个Camera,方向向下,设置为正交,用来显示小地图。2.再在Project中创建一个Render Texture,赋给Camera。Render Texture便实时显示Camera的图像。3.创建一个UI_Raw Img,把Render Texture赋给它,设置好位置(右上角)。4.在Camera下创建一个Quad用来显示角色图标。5.可以直接把小地图Camera

2018-04-08 16:32:35 457

Awakening.zip

使用Unity3D游戏开发引擎制作了一款三维角色扮演类的单机游戏(3D RPG),游戏画面逼真、可玩性高。该款游戏采用第三人称视角,玩家通过操控游戏主角在游戏世界中进行探索冒险。 整个游戏开发涵盖故事大纲设计、游戏场景设计、游戏人物设计、敌人人工智能设计、对话系统设计以及用户交互界面设计,实现了对游戏主角的动作控制,技能的学习以及释放,以及商店贩卖武器系统和更换武器功能,使游戏能够按照具体流程进行发展。

2019-07-24

DarkSouls消除动画代码

DarkSouls黑魂复刻经典教程,傅老师学习亲身传授。

2018-08-29

DarkSouls键盘输入代码

DarkSouls黑魂复刻经典教程,傅老师学习亲身传授。

2018-08-29

空空如也

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

TA关注的人

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