概念我们先讲讲对象池是什么,有什么用。在游戏的制作过程中,我们可能会碰到这样的情况,就像现在最火的吃鸡游戏一样,我们有一把枪,开枪的时候射出子弹。每个子弹即一个对象,正常情况,我们的处理方式可能会是,每开一枪,就GameObject.Instantiate()一个新的子弹,当子弹到达极限距离的时候再GameObject.Destroy()销毁它。假设有射出1000发子弹,我们就会执行1000次这样
转载 2月前
17阅读
对象池的出现,主要是因为Instantiate和Destroy方法开销比较大,但一些游戏物体,比如子弹等,会频繁地出现,并很快销毁,如果每次发射一枚子弹都进行一次实例化,每次击中后又都进行一次销毁,那对游戏的性能开销就不能忽视,对象池就因此而生。我的对象池的思路是:在需要对象时,先看对象池里有没有,如果有的话就直接取出来并显示,没有的话就实例化一个;在原本需要摧毁对象时,改为开销较小的将对象取消显
unity为开发者提供了很多方便开发的工具,他们都是由系统封装的一些功能和方法。比如说:实现时间的time类,获取随机数的Random.Range( )方法等等。时间类time类,主要用来获取当前的系统时间。using UnityEngine; using System.Collections; public class Script_04_13 : MonoBehaviour { void
文章目录一、Unity的工作面板二、游戏场景游戏对象游戏组件的区别游戏场景->游戏对象->游戏组件游戏场景由游戏对象构成而游戏对象中又包含了各种游戏组件三、相机相机组件相机属性(部分)四、灯光的简单应用Unity提供了四中类型的光源,在合理没置的基础上可以模拟自然界中任何的光源。五、性能优化 一、Unity的工作面板Scene(场景)面板 对游戏对象做操作的;Game面板 预览运行后
通常情况下,我们定义了一个脚本1,公开了一些变量 脚本1:using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public int id; public string playerName;
Unity中的Inspector面板可以显示的属性包括以下两类: (1)C#以及Unity提供的基础类型; (2)自定义类型,并使用[System.Serializable]关键字序列化,比如:[System.Serializable] public class TestClass { public Vector3 vec = Vector3.zero; public Color
转载 6月前
157阅读
环境:Unity2021.1.14 Odin3.0.4 语言:C#面向:Editor开发人员总起从很早之前粗略了解Odin,看到它炫酷地Editor实现方式,到现在重度使用,慢慢的一个疑问缠绕在我心中。Odin究竟解决了一个什么问题?根据半年的使用经验,我尝试回答一下这个问题。Odin提供一整套Editor UI绘制的解决方案,大概有四个特点:以数据类作为核心绘制单元,通过打Attribute形式
两大类,一类是普通C# 类 的单例,二类是继承Mono的单例普通C#类:1. 普通类的单例懒汉式(首次调用的时候才实例化,非线程安全)public class GameManager { private static GameManager instance; //单例对象,全局唯一 public static GameManager GetIns
Unity使用UGUI实现王者荣耀UI界面(三)】登录界面以及加载界面优化【只是用来玩玩的,不要太当真】效果显示:zhans1. 加载界面进度100%跳转登录界面这个功能好做,只需要将上次预留的代码补充上,打开Jindu.cs类下面初始化两个GameObject的对象private GameObject loadPanel; // 加载页面 private Canvas canvas;
Unity中的Inspector面板可以显示的属性包括以下两类:(1)C#以及Unity提供的基础类型;(2)自定义类型,并使用[System.Serializable]关键字序列化,比如: [System.Serializable] public class TestClass { public Vector3 vec = Vector3.zero; public Color
不了解C#特性的可以去查一下c#特性的用法,当然这里不了解特性的也不影响使用下面的特性功能一、修饰字段Header("标题")] : 面板标题  在U3D的Inspactor面板显示一个标题           [Tooltip("血量")]   : 悬停的注释   当鼠标悬停在该变量在Inspec
   之前学习c#的时候 碰到[ ] 里一堆英文 ,就发憷,,现在才了解 这种格式的写法叫做 特性   下面,开始总结一下自己所理解的 特性 和一些 特性的意思:      特性: 就是一种声明性的标签(类、结构体、枚举、字段(变量)等)      下面划分了3个方面  &nbs
     简单说一下属性和字段的区别:字段就是成员变量,而属性确实提供给外部访问内部成员变量的接口。之所以会有属性的出现,就是为了避免外部对类的成员的直接访问,通俗的说就是OOP中的封装思想。 using UnityEngine; using System.Collections; public class DemoTest : MonoBehavi
一.单例模式的基本实现:单例模式(singleton pattern)大家都不陌生,我今天主要是和大家探讨一下单例模式在unity中的实现,比起一般的单例,unity中有些他的特点。最普通的单例:(样式一)public class Singleton { static Singleton instance; public static Singleton In
转载 2月前
21阅读
 Unity引擎,上手简单易懂,但是很少有人对Unity编辑器的功能做一个全面细致的了解,一些非常实用的小功能在日常使用中很难被发现,但它们对工作效率的提升是有不小的帮助的。1)锁定Inspector – 在inspector面板上方有一个小“锁”图标,点击锁住后可以将inspector面板锁定在当前选择的GameObject上。在你需要大量设置某个GameObject的参数时非常有效(
转载 6月前
52阅读
UI 组件本身实现了大量的接口,用这些接口来扩展本身的功能。接口命名规则:IxxxHandler。 I:前缀,表示它是一个接口; xxx:它本身的名字;IDragHandler[拖拽处理器接口] Handler:后缀,表示它是一个特定功能的处理器。使用步骤:①在使用 UGUI 中的事件的时候,需要在脚本内引入专有命名空间using UnityEngine.EventSystems;②在当
游戏开发中,可能会碰到一次绘制多个拥有相同 mesh 的物体,它们可能是位置,旋转等不同,或者是材质的某些参数不同,我们要做的就是配合 Unity 的渲染方式,尽可能地减少绘制的操作。由于下文主要讨论的是 DrawInstance 和 MaterialPropertyBlock,所以其他的一下影响合批的内容没有讨论。动态合批绘制多个相同 Mesh,相同 Material 的物体时,打开 Mater
转载 5月前
35阅读
下载安装这里是官方下载器,若此种方法不成功,可在这里分类下载各个组件。安装完成后,打开Unity,可以帐号登陆或者选择work offline,接着创建项目。项目选择3D,导入的资源也可选择为None。视图简介 Scene:每个游戏都有若干个场景构成,此处可以进行游戏对象的排版和预览。Hierarchy:所有的游戏对象都会在此列出。Project:游戏用到的资源文件,如贴图、脚本文件等等。Insp
安装编译Window下打开源码包的Source\VSProj\build_for_unity.bat,UNITY_HOME变量的值修改为指向本机unity安装目录运行build_for_unity.bat      复制这里对应的是一个Unity工程目录IFixToolKit拷贝到Unity项目的Assets同级目录Assets/IFix
转载 2月前
114阅读
Unity很多自带的系统组建中都是可以通过勾选或下拉等方式修改的,那么这样的界面如何实现呢?1.创建元数据类脚本 (像往常一样创建一个脚本就可以了)using System.Collections;using System.Collections.Generic;using UnityEngine;public class Inspector : MonoBehaviour{ //是否参与
原创 2022-01-14 14:43:41
393阅读
  • 1
  • 2
  • 3
  • 4
  • 5