• 2025-01-20unity ui穿透点击
    unityui穿透点击usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.EventSystems;//Encoding:UTF-8publicclassUIPointerEventPenetrate:MonoBehaviour,IPointerClickHandler{List<RaycastResult>resul
  • 2025-01-12Unity TextMesh Pro入门
    概述TextMeshPro是Unity提供的一组工具,用于创建2D和3D文本。与Unity的UI文本和TextMesh系统相比,TextMeshPro提供了更好的文本格式控制和布局管理功能。本文介绍了TMP_Text组件和Tmp字体资产(如何创建字体资产和如何解决缺字问题),还有一些高级功能可能在以后的时候完善.
  • 2024-12-30Unity批处理修改prefab内容并保存
    EditorUtility.DisplayProgressBar("ModifyPrefab","Pleasewait...",0);string[]ids=AssetDatabase.FindAssets("t:Prefab",newstring[]{"Assets/Resources/Prefabs"});for(inti=0;i<ids.Length;i++){
  • 2024-12-26命名空间
    基本概念命名用来组织和重用代码命名空间像一个工具包,而类就像工具//基本语法//namespace命名空间名//{//类//类//}usingMyGame;//引用命名空间namespaceMyGame{classGameObject{}}//命名空间可以分开写namespaceMyGame{classPlay
  • 2024-12-24里氏替换原则
    基本概念任何父类出现的地方,子类都可以替代语法表现:父类容器装子类对象,因为子类对象包含了父类所有的内容方便进行对象存储和管理classGameObject{}classPlayer:GameObject{publicvoidPlayerAtk(){Console.WriteLine("玩家攻击")}}clas
  • 2024-12-07Audio source的两种获取
    对于unity中获取音频的方法:audioSource=gameObject.AddComponent<AudioSource>();和audioSource=GetComponent<AudioSource>(); 方法说明方法audioSource=gameObject.AddComponent<AudioSource>()动态添加一个新的AudioSource组件到当前对象上当前对象没有Audi
  • 2024-11-28基于SpringBoot+Vue的校外兼职教师考勤管理系统的设计与实现(源码+lw+部署+讲解)
    文章目录1.前言2.详细视频演示3.具体实现截图4.技术可行性分析5.技术简介5.1后端框架SpringBoot5.2前端框架Vue5.3系统开发平台6.系统架构设计7.程序操作流程8.业务流程设计9.为什么选择我们9.1自己的公众号9.2海量实战案例10.代码参考11.数据库参考12.源码及文档获取
  • 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-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-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()