- 2024-11-06unity3d————四元数概念
一、定义与表示四元数是由一个实数部分和三个虚数部分组成,通常表示为q=w+xi+yj+zk,其中w是实数,x、y、z是实数系数,i、j、k是虚数单位,满足以下关系:i²=j²=k²=-1ij=k,ji=-kjk=i,kj=-iki=j,ik=-j四元数也可以表示为q=[w,v],其中v=(x,y,z)是矢量,w
- 2024-10-24Cinemachine——磁力吸实现&CinemachineTargetGroup
视角“聚焦”是游戏过场动画中常见的功能,Cinemachine实现这个功能,让我们看看具体怎么使用吧。通过PackageManager导入Cinemachine插件,在导入CinemachineSample后,我们可以在Assets文件夹下Cinemachine/2.6.17(这个是你下载的cinemachine版本号)/CinemachineExampleScenes/Scenes
- 2024-10-19Unity AVPro 解决切换视频卡的问题
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingRenderHeads.Media.AVProVideo.Demos.UI;usingRenderHeads.Media.AVProVideo;usingstaticUnityEditor.Experimental.GraphView.GraphView;usingSystem.Numerics;usingSystem;
- 2024-10-18GameObject
基础概念GameObjcetUnity的GameObject类用于表示任何可以存在于场景中的事物。GameObject是Unity中场景的构建块,可充当用于确定GameObject外观以及GameObject作用的功能组件的容器。除了使用代码修改GameObject的属性外还可以在编辑器中选中对象,通过Inspector面
- 2024-10-09unity简单内存池案例
unity简单内存池案例组件准备代码部分 1.组件准备在unity中创建一个空白物体命名为cubepawner,并拖到主摄像机之前 然后再创建cubepawner和cubePool脚本挂载到该物体上 再创建一个正方体,同时再创建一个空脚本,命名为cube挂上去,并将该正方体拖入下方文件浏览器中
- 2024-09-25⭐ Unity 对象池的应用 Cube流星落
此次Demo里生成一些Cube从天上往下掉,并且当它们掉到特定高度(例如y轴小于0)时销毁。为了优化性能,避免频繁创建和销毁物体,使用对象池(ObjectPooling)技术来复用这些Cube。先看一下效果观察Cube的生成Cube对象池 对象池管理器脚本usingSystem.Collections.Generi
- 2024-09-25【Unity】绘制折线图和柱状图
绘制折线图和柱状图,主要包括如下效果:背景网格的绘制;折线和拐点的绘制;长方形柱的绘制(柱宽可以修改);X/Y轴的标签绘制(标签的单位可以修改、X轴的间距可以修改);鼠标移动到折线拐点/长方形柱是显示对应数值Tooltip;成果展示Scene部分脚本部分定义折线图和柱状图的接口//折线
- 2024-09-13『功能项目』项目优化 - 框架加载资源【41】
我们打开上一篇40播放动画时禁止点击移动的项目,本章要做的事情是搭建一个资源加载框架,让UI界面,人物模型以及场景都存放在资源文件夹中在运行时加载出来首先在资源商店加载资源将怪物模型放置场景中将普通管线模型切换成URP重命名为Boss01放在资源文件夹里新建Boss01
- 2024-09-11『功能项目』GameObject对象池 - 第三职业【39】
本章项目成果展示我们打开上一篇38管理器基类的项目,本章要做的事情是利用对象池制作第三个职业——魔法师在GameRoot对象下创建空物体重命名为PoolRoot将GameRoot拖拽至预制体创建脚本:编写脚本:PoolManager.csusingUnityEngine;publicclassPoolManager:M
- 2024-09-01unity学习笔记(一)
组件的概念组件:一个或多个功能的容器,类似模块,插上去就有这个功能,不查没有存在意义:如果太依赖继承,继承树将会特别复杂组件化设计思想有利于维护拓展unity内任何游戏物体必须有Transform组件unity中大多数情况下,我们写的c#脚本就是一个组件从代码角度认识GameObject任何
- 2024-09-01Lua调用C#类
print("*************lua调用C#类相关知识点****************")--lua使用C#中的类非常简单--固定套路--CS.命名空间.类名--Unity的类比如GameObjectTransform等等——CS.UnityEngine.类名--CS.UnityEngine.GameObject--通过C#中的类实例化一个对象lua中没有new所
- 2024-09-01Lecture 03 How to build a Game World
Lecture03HowtobuildaGameWorldEverythingisaGameObject(GO)面向对象的方式有些GO之间并没有清晰的继承关系Unreal中的UObject、Unity中的Object并不是这里讲的GameObject概念,而是更类似如C#中的Object,用于确定任何对象的生命周期需要的句柄Unreal中的GameOb
- 2024-08-31unity3d拼图__附带资源
要达到吸附效果则需要每个拼图上挂载碰撞体达到整张图片的替换效果需要选中所有拼图部件把材质球拖上去、制作材料球脚本挂载到随便一个空物体上usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassPinTu:MonoBehaviou
- 2024-08-24gameobject_template | gameobject_template_addon
目录gameobject_templateentrytypedisplayIdIconNameContentTuningIdAINamegameobject_template_addon factionflagsgameobject_templateentry gameobject模板的IDtype gameobject模板类型,取值参考源码GameObjectData.h的structGameObjectTemplat
- 2024-07-29Unity GameObject学习笔记
GameObject成员变量GameObject静态方法//准备用来克隆的对象//1.直接是场景上的某个对象//2.可以是一个预制体对象publicGameObjectMyobj;#region知识点二GameObject中的静态方法创建自带几何体只要得到了一个GameObject对象我就
- 2024-07-22SubScene不是Scene,是GameObject
有人问我如何通过Editor代码往SubScene里面加东西?说在Scene相关的类里面都没有找到合适的函数。找不到就对了,因为SubScene不是Scene,是GameObject。可以试试这样的操作:建立一个GameObject给这个GameObject添加一个叫SubScene的脚本在脚本的SceneAsset中,选择一个之前保存过的
- 2024-07-18Unity——常用快捷键
(一)场景编辑(Scene)移动(GameObject):W旋转:E缩放:R(三维缩放,GameObject不会变形);T(单向缩放,GameObject会变形)以物体为中心观察:Alt+鼠标左键(第三人称视角)第一人称视角观察:鼠标右键加滑动缩放画面:Alt+鼠标右键将选中的对象放在屏幕中心:F(双击GameObject也有相同效果)相机视角调整与
- 2024-07-16获取父子物体
获取父节点vartransform=gameObject.transform.parent;//获取父级的变换组件varparent=gameObject.transform.parent.gameObject;//获取父级节点Debug.Log(parent.name);获取子节点的三种方式//方式一遍历,只能获取到子节点,不能获取到孙子节点foreach(Transform
- 2024-07-14参数的引用类型
publicGameObjecttargetGameObject;[Tooltip("移动速度")]publicfloatspeed=0.02f;privatevoidAwake(){Application.targetFrameRate=60;}//StartiscalledbeforethefirstframeupdatevoidStart()
- 2024-07-14帧更新
帧率观察:Debug.Log("**帧更新Time:"+Time.time);//游戏时间,也就是从开始到现在的时间长度Debug.Log("**帧更新Time:"+Time.deltaTime);//距离上一次更新的时间差帧率是不固定的Unity不支持固定帧率,但可以设置一个近似帧率Application.targetFrameRate=60;
- 2024-07-02Unity写个多用对象池
1.介绍游戏开发中我们会频繁使用到预制体来优化内存,优化性能,增强游戏表现。当要使用的预制体次数很多,创建销毁很频繁时,为了方便管理、提升性能,我们需要一个对象池。一般使用单例+一个预制体+一个存储类型就能做出一个简单的对象池。但当我们需要对很多种物体进行对象池管理时
- 2024-07-01动态添加Timeline轨道和片段
上图是利用代码制作的,下图是原来的样子:如下代码是动态创建各种Timeline轨道的代码:(控制角色碰撞到Cube触发以下的Timeline动画)usingCinemachine;usingUnityEngine;usingUnityEngine.Events;usingUnityEngine.Playables;usingUnityEngine.Timeline;publiccla
- 2024-06-21Unity初始位置初始化设置
一、Transform面板介绍参数说明: Position:位置; Rotation:角度; Scale: 比例。二、在Transform面板填写参数,如图所示:三、编写代码转换物体位置、角度、比例 1、位置转换:代码说明: 将目前游戏
- 2024-05-03Unity 热更--AssetBundle学习笔记 1.0【AB包资源加载工具类的实现】
工具类封装通过上文中对AB包加载API的了解和简单使用,对AB包资源加载的几种方法进行封装,将其写入单例类中,如代码展示。确保每个AB资源包只加载一次:在LoadAssetBundleManager单例工具类中,首先提供基本的AB包及其AB包依赖包的加载方法,为保持AssetBundle只加载一次,使用DIctionary
- 2024-04-29Unity游戏框架设计之单例Mono
Unity游戏框架设计之单例Mono简单介绍在编写Unity脚本的过程中,我们通常需要编写一些依赖于MonBehaviour生命周期且全局始终唯一的类,比如EventManager、TaskManager、ResourceManager和UIManager等等。我们可以基于单例模式,设计出名为SingletonMono的单例类,然后让拥