Unity对象池初了解
前言
例如:随着对游戏设计的深入了解,本文就介绍了unity的对象池的基础内容。
一、对象池是什么?
对象池简单来说就好比一个池子,有一池子空物体,预制体,一开始就实例化这些物体,当我们需要使用时,便从其他将其拿出(SetActive(true)),当用完时,便将其放回池子中(SetActive(false)),以便下次使用。就如打羽毛球,如果我们每次打一个球只打一次便扔掉,然后又打新球,这样就造成了极大浪费,而对象池就是将打过的球放回其中,减少开支消耗。
二、代码实现对象池
——这里以制作冲刺残影为例子进行讲解
1.首先创建一个空物体,以作为我们的第一个预制体来使用对象池
如下图:
并且创建挂载上一个脚本来进行获取玩家的数据坐标图像等:
并且写入代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShadowsScript : MonoBehaviour
{
private Transform player;
private SpriteRenderer thisSprite;
private SpriteRenderer playerSprite;
private Color color;//进行透明度调节
[Header("时间控制参数")]
public float activeTime;//显示时间
public float activeStart;//开始显示的时间点
[Header("不透明度控制")]
private float alpha;
public float alphaSet;//初始值
public float alphaMultiplier;//乘以系数逐渐减小
private void OnEnable()
{
//记得切换unity角色的Player标签
player = GameObject.FindGameObjectWithTag("Player").transform;
thisSprite = GetComponent<SpriteRenderer>();