置顶文章

精选分类

文章列表

在原本的 Inventory 的基础上,我发现一个问题,每当我需要列出一个新的列表的时候,我都需要创建一个新的 list 和 dectionary 在 Inventory 的每个方法中重新注册一遍,这太麻烦了,违背了低耦合性的原则,所以我对 inventory 重新进行了整理。 我创建了 IInventoryCategory 接口来对 Inventory 中常用的方法进行了抽象管理 IInventoryCategory.cs123456789101112131415public interface IInventoryCategory{    ItemType...

# 1. 创建一个基类用于存储数据 GameData.cs1234567891011121314151617181920212223242526272829using System.Collections;using System.Collections.Generic;using UnityEngine;[System.Serializable] // 标记该类为可序列化,这样它可以被保存到文件或传输数据。public class GameData{ public int souls; // 玩家拥有的灵魂数量,用于游戏中的资源或货币系统。 public string...

在开发的过程中,碰到了一个很奇怪的问题 而且是本来能够挂载到对象上的 script 忽然报错显示挂载失败,虽然修改了程序中的一些可能造成报错的代码后挂载成功,但是还是很奇怪 实际上原因是因为 unity 自身加载失败的问题,把 library 文件删了再重新启动一遍项目即可解决。 同时可能存在的其他问题:如果 script 自身有编译错误或者类名和文件名不符也可能会产生这个报错。

在原本的 Inventory 的基础上,我发现一个问题,每当我需要列出一个新的列表的时候,我都需要创建一个新的 list 和 dectionary 在 Inventory 的每个方法中重新注册一遍,这太麻烦了,违背了低耦合性的原则,所以我对 inventory 重新进行了整理。 我创建了 IInventoryCategory 接口来对 Inventory 中常用的方法进行了抽象管理 IInventoryCategory.cs123456789101112131415public interface IInventoryCategory{    ItemType...

# 背包系统总结 前言:这一部分并不复杂,所以我将通过功能模块的区分来记录而不是细分每一个文件的功能与彼此之间的逻辑来记录 # 1. 存储模块 ItemData.cs1234567891011121314public enum ItemType{    Material,    Equipment}[CreateAssetMenu(fileName = "New Item Data", menuName = "Data/Item")]public class ItemData :...

# Skill 系统总结 # Skill Skill 类是所有技能类的基础类,提供通用的技能逻辑和方法。 # 主要特点 # 1. 冷却机制 通过 cooldown 和 cooldownTimer 属性管理技能的冷却时间。 每帧更新冷却计时器。 # 实现方式: row1234protected virtual void Update(){ cooldownTimer -= Time.deltaTime;} # 2. 技能使用逻辑 提供 CanUseSkill() 方法检查技能是否可以使用。 如果可以使用技能,则重置冷却时间并调用...

# Skill 系统总结 # Skill Skill 类是所有技能类的基础类,提供通用的技能逻辑和方法。 # 主要特点 # 1. 冷却机制 通过 cooldown 和 cooldownTimer 属性管理技能的冷却时间。 每帧更新冷却计时器。 # 实现方式: row1234protected virtual void Update(){ cooldownTimer -= Time.deltaTime;} # 2. 技能使用逻辑 提供 CanUseSkill() 方法检查技能是否可以使用。 如果可以使用技能,则重置冷却时间并调用...

# 一、生成世界随机地图模块 # 1. Mathf.PerlinNoise 源码推测 row12345678910111213141516171819202122232425262728293031323334353637383940public static float PerlinNoise(float x, float y){ int xi = Mathf.FloorToInt(x) & 255; int yi = Mathf.FloorToInt(y) & 255; float xf = x - Mathf.Floor(x);...

代码 row1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283void LateUpdate()    {        // 检查是否有目标对象(camTarget)可供跟随        if (camTarget == null)        {            return; //...