• 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的单例类,然后让拥
  • 2024-03-26unity+单例
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassModuleManage:MonoBehaviour{privatestaticModuleManage_instance;publicstaticModuleManageInstance{get{if(_ins
  • 2024-03-17基于Unity3d的google小恐龙游戏8-------背景音乐与第六个BOSS
    前言大家好,上一次unity练习记录中我添加了背景以及第五个boss,丰富了一下游戏内容,但是玩的时候发现好像有一些空洞,所以决定再次添加一些东西。本次练习主要是想要搞两个UI,以及背景音乐,然后再添加一个新的boss。其实我也很想再添加一些小怪,这些就是后话了。先把前面三个功能添加
  • 2024-03-15对象池与享元模式
    在我人生的第一次面试中,面试官问我:可以举几个例子吗?关于Unity中可能用到的设计模式。我当时对设计模式的学习并没有很深入,因此回答了:对象池应该是享元模式。但很快遭到了他的否决,我再次提议,应该是享元,但他还是摇了摇头。毕竟是公司主程,我只能低下头表示,自己会回去看看。在9个
  • 2024-01-24Unity3D 游戏转场时如何保留节点信息详解
    Unity3D是一款非常强大的游戏开发引擎,它提供了丰富的功能和工具,使开发者能够轻松创建各种类型的游戏。在游戏开发过程中,转场是一个非常常见的需求,它可以使游戏过程更加流畅和连贯。然而,在转场过程中,如何保留节点信息是一个需要解决的问题。本文将详细介绍Unity3D游戏转场时如何保
  • 2023-12-28Unity3D 如何提升游戏运行效率详解
    前言Unity3D是一款非常强大的游戏引擎,但是在处理复杂场景和大量资源时,游戏运行效率可能会遇到一些问题。本文将详细介绍如何提升Unity3D游戏的运行效率,包括技术详解和代码实现。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀使用合适的资源压缩
  • 2023-12-27Unity3D 如何提升游戏运行效率详解
    Unity3D是一款非常强大的游戏引擎,但是在处理复杂场景和大量资源时,游戏运行效率可能会遇到一些问题。本文将详细介绍如何提升Unity3D游戏的运行效率,包括技术详解和代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术
  • 2023-12-23Unity 刷新文本
    privatevoidrefreshContentSizeFitters(){//获取contentParent下的所有ContentSizeFitter组件ContentSizeFitter[]contentSizeFitters=gameObject.GetComponentsInChildren<ContentSizeFitter>();for(inti=0;i<contentSize
  • 2023-12-19Unity3D 程序员常用的核心类及方法详解
    Unity3D是一款强大的游戏引擎,广泛应用于游戏开发领域。作为Unity3D程序员,掌握常用的核心类及方法是非常重要的。本文将详细介绍Unity3D中程序员常用的核心类及方法,并给出代码实现。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发
  • 2023-11-14Unity-对象池 & 多对象池
    Unity-对象池&多对象池简介​ 在制作游戏的过程中,人物和boss的设计往往会有释放多个子弹的攻击方式。我们可以用直接创造子弹然后销毁的办法来实现这些技能的效果,但当子弹开始变多,游戏就会不断的消耗我们的内存。为了解决这个问题,开发者们就引入了状态机。普通对象池创建思
  • 2023-10-25Unity DOTS系列之Filter Baking Output与Prefab In Baking核心分析
     最近DOTS发布了正式的版本,我们来分享一下DOTS里面Baking核心机制,方便大家上手学习掌握UnityDOTS开发。今天给大家分享的Baking机制中的FilterBakingOutput与PrefabInBaking。FilterBakingOutput机制在默认情况下,Baking会为每个GameObject生成的Entity与Component,
  • 2023-10-25Unity中GameObject对象的方法Find,FindGameObjectsWithTag等API的使用方法
    Unity中GameObject对象的方法Find,FindGameObjectsWithTag等API的使用方法.Find(stringname):.FindGameObjectsWithTag(stringtag):.FindGameObjectWithTag(stringtag):.FindWithTag(stringtag):在Unity中,GameObject类具有一些用于查找和操作游戏对象的方法。.Find(stringna
  • 2023-10-18在Unity的Inspector面板显示一个按钮
    在Unity的Inspector面板显示一个按钮这个脚本应该放置Unity的Assets文件夹下的Editor文件夹下。usingUnityEngine;usingUnityEditor;usingSystem.Collections.Generic;namespacewyhTools{[CustomEditor(typeof(InspectorShortcutButton))]//替换"YourScript"
  • 2023-10-09Inspector中预览预制体
    原理:用相机拍摄预制体,生成一张预览图 需要注意:1)GameObject.Instantiate实例化预制体后,要等待几帧才能获取到正确的Transform参数,刚创建就获取可能是不对的。 2)预制体预览有两种实现方式,一种是继承Editor然后重写OnPreviewGUI;另一种是继承ObjectPreview然后重写OnPrevie
  • 2023-10-01AssetDatabase.LoadAssetAtPath 获取FBX资源空指针问题
    问题一 LoadAssetAtPath返回空publicclassProcessModel:AssetPostprocessor{privatevoidOnPostprocessModel(GameObjectinput){if(input.name!="Enemy2b")return;//取得导入模型相关信息ModelImporterimporter=ass
  • 2023-08-18对象池
    privateDictionary<string,List<GameObject>>pool=newDictionary<string,List<GameObject>>();//对象池privateDictionary<string,List<int>>poolId=newDictionary<string,List<int>>();//对象池对应Id
  • 2023-08-03Unity 编辑器预制体工具类PrefabUtility 常用函数和用法
    Unity编辑器预制体工具类PrefabUtility常用函数和用法简介在Unity中,预制体(Prefab)是一种非常有用的工具,它允许我们创建可重复使用的对象和场景元素。Unity提供了许多内置的工具和函数来处理预制体,其中一个重要的类就是PrefabUtility。PrefabUtility类提供了一系列函数,用于创建、
  • 2023-07-31Unity之 GameObject.Find()路径正确却找不到物体
    有一个需求,需要用代码找到一个GameObject并将其取消激活。我是这么写的:GameObject.Find("mainCanvas").SetActive(false);但你运行后就会发现它报错;而报错的内容是找不到物体。反复核实路径正确,且物体确实是激活状态后我对这个代码的报错感到很不解。直到我把代码改成了:v
  • 2023-07-25Unity 生成多边形最简单的方法
    按照正常的思维,先将多边形进行三角剖分,生成网格,再添加碰撞器,去实现业务逻辑多边形三角化是件麻烦事,还需要考虑多边形的凹凸性,有没有洞等其实可以反其道而行,先添加碰撞器,通过碰撞器生成mesh,代码比较简单,直接上代码usingSystem.Collections;usingSystem.Collections.Generic;
  • 2023-07-22黑魂210 获取左右手控制
    在ActorManager脚本里,新建一个GameObject变量叫model,对应值是ac.model新建一个WeaponManager变量叫wm,去获取model里的WeaponManager。 在Awake的wm下面加上条件:if(wm==null){wm=model.AddComponent<WeaponManager>();}wm.am=thi
  • 2023-07-15对象池
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassPoolData{publicGameObjectfatherObj;publicList<GameObject>poolList;publicPoolData(GameObjectobj,GameObjectpoolObj){fatherObj=