
Unity
本人决定从事游戏开发、开发的游戏引擎选择的是Unity,此专栏用来记录本人在学习游戏开发过程中遇到的问题及解决方法。
Gyp郭小帅
本人从事Unity客户端开发,工作过游戏开发、Unity编辑器开发和AR/VR领域。博客用来记录我的学习经历。
展开
-
让Unity与Rider编辑器关联起来
1.打开Unity ,依次点击Edit---preferences---externel Tools,点击选择你安装的Rider版本 在Rider出现下图第二个Unity小图标就证明关联上了。原创 2021-03-15 20:05:55 · 7234 阅读 · 3 评论 -
Unity Material详解
1.Material会造成内存泄漏,而且比较消耗性能。Material与SharedMaterial区别。None 不影响环境、Realtime 实时动态改变、Backed 烘焙生效。:Unity内置了一些shader,用户自定义的shader也在这里出现.: 可以编辑一些shader可编辑的内容,如一些属性.NormalMap--法线贴图。控制物体表面自发光颜色和贴图。四、遇到的问题(汇总)Tiling--平铺。Offset--偏移。原创 2023-02-15 10:54:50 · 1704 阅读 · 2 评论 -
Unity学习Day01--unity界面基本操作
8.Ctrl + 8 打开AudioMixer窗口 (性能诊断)7.Ctrl + 7 打开Profiler窗口 (性能诊断)3.Ctrl + 3 打开Inspector窗口。4.Ctrl + 4 打开Hierarchy窗口。6.Ctrl + 6 打开Animation窗口。9.Ctrl + 0 打开Services窗口。5.Ctrl + 5 打开Project窗口。2.Ctrl + 2 打开Game窗口。原创 2021-01-11 20:01:33 · 722 阅读 · 0 评论 -
Unity学习Day02--脚本Script
1.2.九大核心组件原创 2021-01-12 14:17:17 · 129 阅读 · 0 评论 -
Unity学习Day03--
aaa原创 2021-01-14 11:17:53 · 104 阅读 · 0 评论 -
Unity学习Day04--控制游戏角色移动,虚拟按键(输入、预设体)、碰撞体、刚体组件
111原创 2021-01-14 11:18:35 · 222 阅读 · 0 评论 -
Unity学习Day05--碰撞检测、触发器、物理射线
摄像机跟随,平滑地原创 2021-01-18 15:24:47 · 230 阅读 · 0 评论 -
Unity学习第一周-物理引擎-项目——坦克大战单机版
项目需求及策划原创 2021-02-01 20:19:49 · 146 阅读 · 0 评论 -
Unity学习Day06--UGUI基础
1.GUI(手动布局GUI、自动布局GUILayout、皮肤设置)using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class GUIDemo : MonoBehaviour{ [Header("显示GUI")] public bool showGUI = true; [Header("皮肤设置文件")] public原创 2021-01-19 21:19:20 · 222 阅读 · 1 评论 -
Unity学习Day07--UGUI进阶
1.Canvas 画布RenderMode(渲染模式):ScreenSpace-Overlay、ScreenSpace-Camera、WorldSpaceCanvasScale:UIScaleMode(UI缩放模式)2.布局组件HorizontalLayoutGroup(⽔平布局)VerticalLayoutGroup(垂直布局)GridLayoutGroup(⽹格布局)扩展 Layout Element3.ScrollView(滚动视图)4.UGUI回调函数5.⻆⾊原创 2021-01-21 19:38:38 · 116 阅读 · 0 评论 -
Unity学习Day08--UGUI高级
23-b Canvas Group组件、摇杆游戏开发--UIcanvas group组件--可以将当前对象及所有子对象打包成一个组,统一管理属性alpha 统一调透明度interactable-统一交互开关,Blocks raycasts - 是否接收射线检测,从而触发事件项目:1.遥杆 (使用到拖拽事件)JoyStick两种模式:实现拖拽:onDrag回调函数,在圈里移动2.关卡选择3.背包...原创 2021-01-25 17:25:09 · 128 阅读 · 0 评论 -
Unity学习第二周-UGUI-项目——基本UI设计
111原创 2021-02-01 20:22:52 · 212 阅读 · 0 评论 -
Unity学习Day09--动画基础
动画系统基础1.动画设置点击一个动画模型、出现以下动画设置面板Rig面板Animation面板Animator组件Animator控制器2.代码实现动画设置原创 2021-01-26 20:23:33 · 168 阅读 · 1 评论 -
Unity学习Day10--动画进阶
动画系统进阶1.动画设置2.拓展(声音、灯光、Invoke)3.动画状态机4.动画层5.IK动画6.动画曲线7.动画事件原创 2021-01-28 17:33:40 · 128 阅读 · 0 评论 -
Unity学习Day11--特效系统
111原创 2021-01-28 17:35:05 · 315 阅读 · 0 评论 -
Unity学习Day12--导航系统
导航导航组件 navmeshagent组件第一步、设置导航静态物体(从头至尾transform属性不会发生改变的环境对象)第二步、烘焙网格前的设置(有半径、高度、可以爬的最大坡度、可以上的台阶高度)第三步、给角色添加navmeshagent组件6.分离路面普通分离路面(边对边的)(横向、纵向)跳远的距离、跳下的高度高级分离路面(点对点的) off mesh link组件用到控制角色位置发生变化的 (transform\rigidbody\charecater co...原创 2021-01-28 17:35:38 · 218 阅读 · 0 评论 -
Unity学习第三周-动画导航-项目——塔防项目实现
塔防项目需求及策划原创 2021-02-01 20:25:54 · 136 阅读 · 0 评论 -
Unity学习Day13--数据存储(PlayerPrefs、XML、JSON、DB)
1.计算机存储设备CPU缓存、内存、硬盘、网盘。硬盘又分为固态硬盘ssd和机械硬盘hdd。2.Unity提供的文件存储格式PlayerPrefs(Unity内 置持久化存储类)using System;using UnityEngine;using UnityEngine.SocialPlatforms.Impl;public class PlayerPrefsDemo : MonoBehaviour{ private void Start() {原创 2021-02-09 18:01:13 · 411 阅读 · 0 评论 -
Unity学习Day14--协程和WWW
协程 IEnomerator1.yield return 暂停协程,等当前帧结束,在下一帧继续执行 yield break 结束协程2.StartCoroutine() 启动协程3.yield return new WaitForEndOfFrame() 在下一帧的OnGUI执行完了恢复继续执行4.yield return new WaitForSeconds(n) 暂停协程,等n秒后继续执行5.yield return new WaitForFixedUpdate() 在Fixe...原创 2021-04-21 22:32:39 · 772 阅读 · 2 评论 -
Unity学习Day15--C# 文件下载方式
public class RemoteDownload { public static void DownLoad(string addressUrl,string localName) { //下载文件 System.NET.WebClient myWebClient = new System.Net.WebClient(); myWebClient.DownloadFile(@"/10.2.0...原创 2021-04-22 17:46:04 · 677 阅读 · 0 评论 -
实战小项目 -- 秘密行动
111原创 2021-03-04 19:30:13 · 122 阅读 · 0 评论 -
Shader学习Day01 什么是Shader、图像渲染管线
Shader (着色器)1.什么是Shader?2.Shader插件: 旧版本:ShaderForge 新版本:ShaderGraph3.图像渲染管线(流水线) 渲染图元 设置渲染状态4.定点着色器 模型空间 模型空间坐标系...原创 2021-03-08 15:20:39 · 253 阅读 · 0 评论 -
Shader学习Day02 固定管线着色器、ShaderLab
固定管线着色器Shader基本语法LearnShaderLab//创建Shader,标注Shader所在路径Shader "MyShader/LearnShaderLab"{ //设置Shader外部属性 Properties { } //子着色器 【高质量】 //真正去渲染的,每个都是独立的单元,不是为了叠加,而是为了区分设备 SubShader { //渲染正面 /原创 2021-03-09 16:31:12 · 119 阅读 · 0 评论 -
Shader学习Day03 表面着色器、CG语言
1.7.凹凸纹理法线渲染:只是告诉这个像素的法线主纹理和法线贴图原创 2021-03-11 15:53:30 · 219 阅读 · 0 评论 -
Surface Shader学习总结
一、Unity中Shader的类型1.固定管线着色器(Fixed Function Shader)2.顶点/片元着色器(Vertex/Fragment Shader)3.表面着色器(Surface Shader)-------------------------------------------------------------------------------------------------------------------------------三种着色器的相同点:①原创 2022-02-07 15:35:05 · 2250 阅读 · 1 评论 -
AssetBundle资源管理
一、手动起名字打包1.写插件2.起名字3.打包using System.IO;using UnityEditor;//引入编辑器的命名空间using UnityEngine;public class BuildAB : Editor //继承编辑器的类{ private static string needBuildAssetsPath = Application.dataPath + "/needBulid"; [MenuItem("MyMenu/BuildAB-W原创 2021-05-06 19:43:31 · 325 阅读 · 0 评论 -
UI框架
UI框架模态处理(单窗口模式,栈型结构)并行UI的管理DOTween插件事件系统本地化生成动态窗口UI的统一管理--解决找对象的问题1.找对象的方法:(1)gameobject.find (名字)(2)gameobject.findwithtag(标签)(3)getchild(子对象)(4)transform.find(5)找当前模块的对象2.找组件的方法:3.调用API:跨模块:...原创 2021-04-12 14:18:45 · 119 阅读 · 0 评论 -
对象池框架
对象池框架1.优化的是CPU的调度,要占一定的内存2.单例和静态的区别:内存上的区别,单例懒加载,后期可以销毁。3.单例写法:一个静态的对象,一个获取对象的方法、一个私有构造*****写了一个单例的框架常数类的方式存4.没有继承MonoBehavoir怎么获取对象...原创 2021-04-12 14:17:07 · 122 阅读 · 0 评论 -
状态机框架
FSM - Fnite state machine(有限状态机)状态嵌套:子状态1.不允许状态重名2.模拟动画状态机3.条件(添加、删除、修改、查找)4.判断是否满足过渡状态5.状态事件(进入状态、在状态中、离开状态)状态(无限嵌套、状态还是状态机,默认状态还是普通状态)进入状态和离开状态机检测当前状态是否满足了过渡条件,进行过渡防止更新状态绑定出错第一步、创建状态机并建立包含关系第二步、创建参数、以便后期设置条件第三步、创建状态之间的过渡关系第四步、设置状态事件第原创 2021-04-20 11:07:29 · 502 阅读 · 0 评论 -
网络基础和框架
网络1.网络运行机制//数字货币,区块链,去中心化,人机验证//域名解析 谷歌8.8.8.8 中国114.114.114.1142.TCP/IP协议3.IP格式、TCP格式、UDP格式IP TCP头部 4.TCP严谨格式,链接时三次握手,结束时四次挥手。三次握手四次挥手UDP无连接,不可靠,但是传输效率高。5.套接字机制-Socket(插座)——网络连接机制 异步收发消息(有一种Ajax线程)套接字...原创 2021-04-21 18:55:44 · 112 阅读 · 0 评论 -
Photon网络框架
111原创 2021-04-22 20:12:38 · 408 阅读 · 0 评论 -
A*寻路算法
如题原创 2021-04-22 09:38:56 · 82 阅读 · 0 评论 -
面向对象的三大基本特征:封装、继承、多态
1、封装 封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。 面相对象的不就是使用程序处理事情时以对象为中心去分析吗,与面向过程不同,面向过程关心处理的逻辑、流程等问题,而不关心事件主体。而原创 2021-04-08 16:52:18 · 2364 阅读 · 0 评论