以下内容是听VipSkill课程之后记得笔记,记录下来提醒自己时时注意。 从人力资源的角度来说,人才从两个维度被分为4类: 老黄牛:工作意愿高,但是产出效果一般 小白兔:工作意愿低,产出效果差 野狗:工作意愿低,但是产出效果好 明星员工:工作意愿度高,产出效果好 优秀的员工特质:能够实现自我的野蛮成长,通过快速的自我成长去推动整个公司的高速发展。 学习的过程: 入门:选择环境,需要选择一个更有利于成长的环境 进阶:创造环境,需要公司给一定的自由度和空间来创造有利于创造的环境 学习的过程:选择环境——多看——设定目标——去做——思考
面板拖拽 这种方式简单高效,但是不适合用于大型项目,一方面容易遗漏导致比较难解决的bug,另一方面使得我们的项目不具有可迁移性,不利于团队协作。 代码获取 Find (1)GameObject.Find() 参数是string类型的物体名称,返回值是gameobject (2)Transform.Find() 参数是string类型的物体名称,返回值是transform 缺陷是无法找到未激活的物体,并且查找的时候需要遍历,效率比较低。 FindWithTag GameObject.FindWithTag 这种方式效率比较高,但是需要提前设置好标签。 GetChild Transform....
前几天参加了Unity的GameJam,作为第一次参加比赛的萌新,不指望能做出什么惊天动地的内容,但是希望能够从中有所收获。 现在复盘一下我在游戏项目中用到的一些技巧和Unity知识点,以后再接再励呀。 作品的地址在此:https://www.bilibili.com/video/BV1184y1q7YY/?vd_source=e99f21b5eb43aa3bce10e93c333f70d7 一个完整项目的构成要素和一些难点: UI系统:包括UI交互框架、场景转换等,主要是用到UGUI、SceneManagement,还可以用DOTween进行辅助来做一些额外的效果。 声音系统...
这篇文章总结一下简易对话系统的制作方式,教程来自M_Studio的迷失岛制作教程。 Overview 采用MVC方式,将数据、UI和逻辑分开。 数据使用ScriptableObject进行存储和读取 采用事件的方式进行触发 逻辑中使用堆栈读取ScriptableObject中的数据并进行展示 系统制作方式 Step1:首先创建ScriptableObject usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;[CreateAssetMenu(fileName="Dialogue_SO",...
分为两个部分,一个是获取野怪生成点的数据,二是生成野怪。 获取野怪生成点的数据 (1)通过放置物体来定位我们想要让其生成的位置,并且附加上一个脚本用来在编辑模式下显示物体。 usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;[ExecuteInEditMode]publicclassSpawnPoint:MonoBehaviour{Meshmesh=null;publicintID;//StartiscalledbeforethefirstframeupdatevoidStart(){this...
Overview 网络连接 建立网络连接的步骤: 如果全部用Connect、Send、Receive,则是一个同步socket程序。这样的程序简单且容易实现,但是服务端一次只能处理一个客户端消息,客户端也会时常卡顿。解决方案是异步和多路复用。 异步模式(案例待补充) 异步模式的时候客户端可以使用BeginConnect和EndConnect完成同步程序中的Send和Receive功能。 状态检测 异步调用虽然能够解决线程阻塞的问题,但是引入了新的多线程的问题。微软提供了Poll方法来对线程进行判断,就是在执行接收发送任务之前加上一个对于线程的判断。 这种方式的缺陷在于在没有收到消息...
这边文章是看xlua官方教程和一些文档之后的一个总结,希望大家都能学会lua,当然最希望我能快点学会lua。。。 C调用Lua (1)LuaEnv LuaEnv是C中调用lua时需要用到的lua环境提示,需要在C中使用Lua语法的时候就需要new一个LuaEnv。 下面这个案例展示了在C中用Lua语法打印一句话: publicLuaEnvluaEnv;//StartiscalledbeforethefirstframeupdatevoidStart(){luaEnv=newLuaEnv();luaEnv.DoString("print('这是一个lua语法的句子')");} 输出...
以下是超级简略版的要点,比较零碎,主要是用来唤起记忆、辅助理解 计算机组成 (1)三个根本原则 计算机是执行输入、运算、输出的机器 程序是指令和数据的集合 计算机的处理方式有时和人的思考习惯不同 (2)汇编 机器码:二进制,是唯一能被CPU直接理解的语言 汇编语言:只有一个语法,一行包括:标签、操作码(指令)、操作数(指令的对象) (3)软硬件 计算机硬件:CPU(其中有各种寄存器,其中PC寄存器指向下一条执行的程序)、内存、I/O 程序 (1)有三种流动方式:顺序、分支、循环 (2)结构化程序:只用顺序、分支、循环,不用Gogo语句 (3)其他特殊的程序流程: 中断处理:是一种特殊的...
概述 之前做过一个小型的FPS项目,基本实现了以下这些功能点: 人物移动:前进后退、鼠标调整视角、右键瞄准;模拟后坐力、初步处理武器穿模的问题。 怪物生成:在地图上放置怪物生成点,实现怪物随机从这些生成点上生成;并通过对象池实现怪物的回收利用。 武器系统:实现了武器切换、换弹,目前的武器包括手枪、狙击枪、刀等;运用了继承,通过继承武器基类提高了开发效率。 武器交互:实现了伤害判定和UI的更新。 人物移动 Unity自带的FirstPersonController可以实现基本的人物移动功能,我们自己撰写脚本的时候只需要补充一些细节。 (1)后坐力 后坐力=镜头抖动+弹道偏移 这里...
Lua重点语法 数据结构 有八种: 值类型:nil\string\boolean\number 引用类型:function\thread\userdata\table 表 (1)基本概念 本质上是键值对,下标从1开始;数组的索引可以是数组或者字符串。 table不会固定长度大小,有新数据添加时table长度会自动增长,没初始的table都是nil。 case01: a={6,8,9,"a",x=123,pos={x=90,y=89,z=20}}a.z=156print(a.z)print(a.x)print(a.pos)print(a.pos.x)fork,vinpairs(a...
又是一个零碎知识点拼成的读书笔记,会持续细化更新的 多坐标系 计算机在我前面还是后面:物体坐标系 书在我的东边还是西边:惯性坐标系 怎样从一个房间移动到另一个房间:世界坐标系 我能看见我的计算机吗:摄像机坐标系 向量 (1)一些概念 向量&标量 维度 向量的模:向量的长度或者大小 单位向量:大小为1的向量,也被叫做标准化向量、法线 (2)向量运算 1)距离公式: 2)点乘&叉乘: 点乘:结果是一个标量;表示两个向量之间的相似程度,点乘结果越大,向量越相近。 叉乘:结果是一个向量,得到的向量垂直于原来的两个向量,不满足交换律 矩阵 (1)概念 向量是标量的数组,矩阵是向...
Unity的性能优化主要聚焦在3个方向:内存、CPU、GPU 内存 概述 主要是指资源内存的占用、引擎模块自身内存占用、托管堆占用。 处理手段 前置堆内存分配,尽量降低碎片化 查验内存泄漏 资源预处理 字符串拼接、配置表优化、对象池 (1)资源 资源的内存占用往往占据了总体内存的70%以上。资源主要包括:纹理(Texture)、网格(Mesh)、动画片段(AnimationClip)、音频片段(AudioClip)、材质、着色器、字体、文本资源等。其中Texture、Mesh、AnimationClip、AudioClip最容易造成很大的内存开销。 1)纹理Texture 格式 尺...
1、操作系统 (1)进程、线程、协程 三者对比 进程 线程 协程 上级单位 操作系统 CPU 可手动 含义 操作系统资源分配的最小单位 CPU调度的最小单位 程序控制的比线程更轻量级的存在 特质 一个程序必须要有一个以上进程独立内存单元有自己的程序运行入口出口等 一个进程必须有一个以上线程可以共享内存必须依附于程序 主要作用 操作系统中分配系统资源 程序的实际执行者 单线程下实现并发效果 物理内存 硬盘内存空间中有自己独立的地址空间,有自己的堆 线程的切换会保存在CPU的栈里 有自己的寄存器上下文和栈 通信 管道消息队列共享内存信号量信号Sock...
基本介绍 名词解释 Socket:网络连接的一端被称为socket。一个socket包含以下五个元素:使用的协议、本机IP、本地端口、远程IP、远程端口。 IP地址:每台电脑都有一个自己的IP地址。 端口(port):是设备与外界通信交流的出口 每一个进程(客户端1、客户端2、服务端)可以拥有多个Socket,每个Socket通过不同端口与其他计算机连接。 每一条Socket连接代表着本地Socket→本地端口→网络介质→远程端口→远程Socket的链路。 网络通信的步骤示意图: 利用socket通信的步骤 服务端: 创建socket对象 Scocksocket=newSoc...
Protobuf概览 介绍 是一个跨语言、跨平台、可扩展的用来序列化结构数据的方法。类似于XML。 一些名词解释: 序列化:对象——二进制数据作为字节流 反序列化:二进制数据——对象 比较 替代的解决方案是xml、json、thrift等,这里和最常用的jason做个对比。 Protobuf jason NuGet包名 Google.Protobuf.Tool System.Text.Json 通用性 需要专门的解析库,支持的语言没有jason多无法应用于https的应用场景 可以支持任何一门语言 可读性 可读性较差 可读性较差 效率 理论上效率更高 不...
简单对比 UnityAction UnityEvent 本质 委托 类 描述 Unity中的一个零参数委托 是继承自UnityEventBase的类 用法 作为委托使用,常用于实现事件系统 通过addlistener可以注册一个事件,当这个UnityEvent被触发的时候,注册的事件就也会执行。 用法案例 publicclassExample:MonoBehaviour{UnityEventm_MyEvent=newUnityEvent();voidStart(){//AddalistenertothenewEvent.CallsMyActionme...
常用功能 创建repository 将更改commit到本地git 恢复到某个commit push和pull 使用分支 工作流 使用案例 首先去github上new一个repository,然后赋值新建的repository地址。 在想要创建本地仓库的文件夹目录下右键gitclone,并且将上述赋值的地址粘贴进去。 打开命令行工具,转到文件夹所在的磁盘,然后输入cd和文件名即可进入项目文件夹。 以下是一些常用的操作方法: //上传操作gitadd文件名//添加文件到本地gitcommit-a-m"UpdateArtResources"//将之前add过的文件上传到本地仓库gitp...
Part1计算机基础部分 参见这篇总结:https://blog.51cto.com/u_15639010/5860957 生命周期 顺序 Awake-OnEnable-Start-FixedUpdate-Update-FixedUpdate-OnGUI-OnDisable-OnDestroy UI Image Image&RawImage Image RawImage 图片源 Sprite Texture 主要功能 常规交互;tiling、filling等。 UVRect,实现图片的偏移等;可以借助rendertexture实现将摄像机拍摄图像投射...
Step1:Bundle构建、加载、更新 (1)搭建Build工具 AB包的意义:如果我们将资源都放在Resources中,我们客户端的大小会越来越大。所以我们希望将资源打包放到服务端,使用的时候客户端到服务端去下载,这样就可以达到缩包的效果。 1)导入xLua 将xlua中Asset目录下的文件保持这个结构拖到我们的项目中。 2)查找BuildResources下的资源文件 进行格式转换和拼接 查找依赖资源 3)使用BuildPipeline构建AB包 BundleBuild策略: 按文件夹打包 按文件打包 优势 Bundle的数量少 更新的补丁小 劣势 后期更新的...
不少人的梦想都是做一款自己的游戏,希望借助游戏这种形式和玩家建立连接。这里呢,就想梳理一下独立游戏制作人可选的游戏发布平台和可能的盈利情况,主要关注的还是偏休闲领域。 开发者文档传送门: Taptap游戏开放平台:https://developer.taptap.com/ 字节跳动小游戏接入:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/start/introduction/ 微信小游戏接入文档:https://developers.weixin.qq.com/minigame/d...