源码提供的方法和属性说明
数学
Custom.RNV()
| public static Vector2 RNV()
{
return Custom.DegToVec(UnityEngine.Random.value * 360f);
}
|
返回一个随机的Vector2。
Custom.DirVec()
| public static Vector2 DirVec(Vector2 p1, Vector2 p2)
{
if (p1 == p2)
{
return new Vector2(0f, 1f);
}
return new Vector2(p2[0] - p1[0], p2[1] - p1[1]).normalized;
}
|
返回向量\(p1\)指向\(p2\)的单位向量。
视觉
CosmeticSprite
CosmeticSprite.cs
| using System;
using MoreSlugcats;
using UnityEngine;
public class CosmeticSprite : UpdatableAndDeletable, IDrawable, IRunDuringDialog
{
public override void Update(bool eu)
{
this.lastPos = this.pos;
this.pos += this.vel;
base.Update(eu);
}
public virtual void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam)
{
}
public virtual void DrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
{
if (!sLeaser.deleteMeNextFrame && (base.slatedForDeletetion || this.room != rCam.room))
{
sLeaser.CleanSpritesAndRemove();
}
}
public virtual void PausedDrawSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
{
if (!sLeaser.deleteMeNextFrame && (base.slatedForDeletetion || this.room != rCam.room))
{
sLeaser.CleanSpritesAndRemove();
}
}
public virtual void ApplyPalette(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, RoomPalette palette)
{
}
public virtual void AddToContainer(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, FContainer newContatiner)
{
if (newContatiner == null)
{
newContatiner = rCam.ReturnFContainer("Midground");
}
foreach (FSprite fsprite in sLeaser.sprites)
{
fsprite.RemoveFromContainer();
newContatiner.AddChild(fsprite);
}
}
public Vector2 pos;
public Vector2 lastPos;
public Vector2 vel;
}
|
基类,为游戏中所有“纯视觉、轻量级、无需复杂物理碰撞计算”的装饰性特效(如火花、烟雾、碎片、灰尘粒子等)提供标准化的运动和渲染模板。
它继承/实现了UpdatableAndDeletable、IDrawable和IRunDuringDialog,受游戏主循环管理,有实例化和销毁的生命周期,在对话期间会持续运行(即动效会持续存在),且介入了游戏的自定义渲染管线。
字段
| 字段名 |
类型 |
含义 |
| pos |
vector2 |
当前帧位置 |
| lastPos |
vector2 |
上一帧位置 |
| vel |
vector2 |
速度 |
实体
weapon