自定义你的游戏

Tutorial

Beginner

+0XP

0 mins

(78)

Unity Technologies

自定义你的游戏

本教程是进一步自定义“创作者套件:初学者代码”游戏的参考指南。

本教程提供了相关指导来帮助你使用脚本模板创建以下物品:

  • 具有使用效果的可用物品(如最后一个教程中的生命值药水)
  • 具有装备效果的装备物品
  • 具有武器攻击效果的武器

Languages available:

1. 自定义游戏

本教程是进一步自定义“创作者套件:初学者代码”游戏的参考指南。

本教程提供了有关脚本模板的指导,从而将帮助你创建以下物品:

  • 具有使用效果的可用物品(如最后一个教程中的生命值药水)
  • 具有装备效果的装备物品
  • 具有武器攻击效果的武器

指南结构

本指南旨在帮助你巩固对游戏的理解和进行各种尝试,而不是分步式的指南。也可以作为一个有用的环境,让你运用自己在其他 Unity 教程中学到的知识!

本指南具有以下结构:

1. 如何在 Unity 编辑器中创建物品类型

2. 如何为该物品创建自定义效果脚本,以及关于使用效果脚本的基本指导

3.如何将效果应用于物品

加入社区

你已经完成了“创作者套件:初学者代码”教程,但你的学习之旅并不孤单。如果你有任何疑问,或者想了解其他学员如何创作游戏,何不参与 Unity 论坛的官方讨论话题

2. 创建可用物品

什么是可用物品?

可用物品就是玩家可以通过双击自己背包中的物品来使用的物品(例如,生命值药水)。

如何在 Unity 编辑器中创建可用物品?

要在编辑器中创建可用物品,请执行以下操作:

1. 在 Project 窗口中,选择 Assets/Creator Kit - Beginner Code/Prefabs/InGameItem

2.在 Project 窗口中单击右键,然后从上下文菜单中选择 Create > Beginner Code > Usable Item。或者,也可以从主菜单中的 Assets 访问此菜单。


此时将为可用物品创建一个新资源。


3.
在 Project 窗口中,右键单击新的可用物品,然后选择 Rename。请为你的物品指定一个好记的名称。


4.确保仍然选中你的可用物品。在 Inspector 中,你将看到以下字段(公开变量):

  • Item Sprite:要在背包中为该物品使用的精灵 (Sprite)。如果未设置 World Object Prefab(见下文),此精灵还将用于在世界中显示对象。
  • Item Name:要在游戏中的物品上方以及玩家背包中的工具提示中显示的物品名称。
  • Description:要在玩家背包中的工具提示中显示的物品描述。
  • World Object Prefab:为了在游戏世界中显示生成的可用物品而创建的 3D 游戏对象。如果此字段保留为空 (null),则将使用物品的精灵来代替。
  • Add New Effect:一个列出你所编写的使用效果的下拉菜单。当你编写新的效果时,此效果将出现在这里。你可以选择一个使用效果来将这个效果添加到可用物品。



在下一步中,你将学习如何编写使用效果脚本并将这个脚本应用于可用物品。

3. 编写使用效果脚本

什么是使用效果脚本?

使用效果脚本指定在玩家背包中双击可用物品时会发生什么情况。该脚本在编辑器中添加到可用物品资源。

如何创建新的使用效果脚本?

要基于“创作者套件:初学者代码”模板创建新的使用效果脚本,请执行以下操作:

1.在顶部菜单中,选择 Beginner Code > Create Item Effect

2.在打开的 NameWindow 对话框中,为使用效果脚本命名,然后选择 Create

此时将在 Assets/Scripts/ItemEffect 中创建脚本,并在编辑器中选择该脚本。


3.
在 Project 窗口中,双击该脚本以在代码编辑器中将该脚本打开。

我们提供了一个模板脚本来帮助你编写物品的使用效果:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using SceneKitCode;

public class EFFECTNAME : UsableItem.UsageEffect
{
    public override bool Use(CharacterData user)
    {
        return false;
    }
}

EFFECTNAME 用作使用效果脚本名称的占位符。

如何自定义使用效果?

为了自定义使用效果,需要向 Use 函数添加指令:

  public override bool Use(CharacterData user)
    {
        return false;
    }

user 参数包含使用该物品的角色的 CharacterData。此游戏中只有一个角色(即驼鹿)可以使用物品。你可以使用此参数来访问统计信息、背包和装备物品以便进行修改。

如何查找有关自定义的 CharacterData 类的更多信息?

要查找有关 CharacterData 类的更多信息,请执行以下操作:

1.在 Unity 编辑器中,选择主菜单中的 Beginner Code > Open Documentation

2.在本地文档指南的顶部菜单栏中,选择 API Documentation

3.在筛选栏中,搜索“CharacterData”。


4.左侧菜单中选择相应的链接。

如何设置可用物品的返回值?

Use 函数返回一个布尔值(true 或 false)。根据情况进行设置:

  • 如果已使用该对象并从玩家的背包中移除了该对象(如果是一堆对象,则计数将减一),则设置为 true
  • 如果无法使用该对象,则设置为 false(例如,你可以在添加生命值之前测试生命值是否已达到最大值,如果是,则返回 false,这样就不会浪费生命值药水)。

4. 将使用效果脚本应用于可用物品

修改使用效果脚本后,可以在编辑器中将该脚本添加到可用物品:

1. 在 Project 窗口中,选择已创建的可用物品(文件路径:Assets/Creator Kit - Beginner Code/Prefabs/InGameItem)。

2.在 Inspector 中,找到 Add New Effect 字段。从下拉菜单中选择你的使用效果。


3.Description 中添加使用效果的描述。

4.Ctrl + S (Windows) 或 Cmd + S (macOS) 来保存更改。

5. 在运行模式下测试你的可用物品。

提示:如果要移除使用效果,请选择 Inspector 中的 Script 字段右侧的减号按钮 (-)。

5. 创建装备物品

什么是装备物品?

装备物品是在装备后赋予玩家角色特定属性的物品。(武器是一种具有附加功能的特殊装备物品;在本指南的后面部分将对此进行单独探讨。)

你可以给装备物品指定:

  • 一个最低的统计要求,只有在玩家达到最低要求后才会进行装备(例如,只有当玩家的 HP 超过 5 时才可以装备某个物品)。
  • 一个装备效果,可以在装备物品时为玩家角色添加效果(例如,提高统计数值)。

如何在 Unity 编辑器中创建装备物品?

要在编辑器中创建装备物品,请执行以下操作:

1. 在 Project 窗口中,选择 Assets/Creator Kit - Beginner Code/Prefabs/InGameItem

2.在 Project 窗口中单击右键,然后从上下文菜单中选择 Create > Beginner Code > Equipment Item。或者,也可以从顶部菜单中的 Assets 访问此菜单。

此时将为装备物品创建一个新资源。


3.
在 Project 窗口中,右键单击新的装备物品,然后选择 Rename。请为你的物品指定一个好记的名称。


4.确保仍然选中你的装备物品。在 Inspector 中,你将看到以下字段(公开变量):

  • Item Sprite:要在背包中为该物品使用的精灵 (Sprite)。如果未设置 World Object Prefab(见下文),此精灵还将用于在世界中显示对象。
  • Item Name:要在游戏中的物品上方以及玩家背包中的工具提示中显示的物品名称。
  • Description:要在玩家背包中的工具提示中显示的物品描述。
  • World Object Prefab:为了在游戏世界中显示生成的可用物品而创建的 3D 游戏对象。如果此字段保留为空 (null),则将使用物品的精灵来代替。
  • Slot:可以佩戴装备物品的装备槽位(例如头部)。
  • Minimum Stats:为了装备物品而需要满足的最小 StrengthAgilityDefense 状态值。如果玩家未达到这些统计数值的最小值,则双击背包中的物品将不会有任何反应。
  • Add New Effect:一个列出你所编写的装备效果的下拉菜单。当你编写新的效果时,此效果将出现在这里。你可以选择一个装备效果来将这个效果添加到装备物品。

在下一步中,你将学习如何编写装备效果脚本并将这个脚本应用于装备物品。

6. 编写装备效果脚本

什么是装备效果脚本?

装备效果脚本用于在玩家装备某个物品时启用自定义效果。该脚本在编辑器中添加到装备物品或武器。

如何创建新的装备效果脚本?

要基于“创作者套件:初学者代码”模板创建新的装备效果脚本,请执行以下操作:

1.在顶部菜单中,选择 Beginner Code > Create Equipped Effect

2.在打开的 NameWindow 对话框中,为装备效果脚本命名,然后选择 Create。此时将在 Assets/Scripts/EquippedEffect 中创建脚本,并在编辑器中选择该脚本。

3.在 Project 窗口中,双击该脚本以在代码编辑器中将该脚本打开。

我们提供了一个模板脚本来帮助你编写装备效果:

public class EFFECTNAME : EquipmentItem.EquippedEffect
{
     public override void Equipped(CharacterData user)
     {
     
     }
     
     public override void Removed(CharacterData user)
     {
     
     }
}

EFFECTNAME 用作装备效果脚本名称的占位符。

如何自定义装备效果?

在装备效果脚本中可以自定义两个函数:


1. void Equipped(CharacterData user)

当玩家 (user) 装备该物品时将调用此函数。使用此函数可添加效果,例如,为角色提供 +1 力量统计修改器。

提示:你可以使用私有变量来存储所选的修改器。

2.void Removed(CharacterData user)

在玩家 (user) 移除某个物品时调用此函数。使用此函数可移除玩家角色的效果。

7. 将装备效果脚本应用于装备物品

修改装备效果脚本后,可以在编辑器中将该脚本添加到装备物品:

1.在 Project 窗口中,选择已创建的装备物品(文件路径:Assets/Creator Kit - Beginner Code/Prefabs/InGameItem)。

2.在 Inspector 中,找到 Add new Effect 字段。从下拉菜单中选择你的装备效果。


3.Description 中添加装备效果的描述。

4.Ctrl + S (Windows) 或 Cmd + S (macOS) 来保存更改。

5. 在运行模式下测试你的装备物品。


提示:
如果要移除装备效果,请选择 Inspector 中的 Script 字段右侧的减号按钮 (-)。

8. 创建武器

什么是武器?

武器是一种可以在角色武器槽位中装备的特殊装备物品。

除了普通装备物品的功能外,还可以给武器指定:

  • 与攻击行为有关的统计信息:ReachSpeedMinimum DamageMaximum Damage
  • 一个武器攻击效果,可让你自定义在武器对敌人角色造成伤害时出现的情况。

如何在 Unity 编辑器中创建武器?

要在编辑器中创建武器,请执行以下操作:

1. 在 Project 窗口中,选择 Assets/Creator Kit - Beginner Code/Prefabs/InGameItem


2.
在 Project 窗口中单击右键,然后从上下文菜单中选择 Create > Beginner Code > Weapon。或者,也可以从顶部菜单中的 Assets 访问此菜单。

此时将为武器创建一个新资源。


3.
在 Project 窗口中,右键单击新的武器,然后选择 Rename。指定一个好记的名称。


4.确保仍然选中该武器。在 Inspector 中,除了适用于所有装备物品的字段外,还将看到以下字段(公开变量)。

  • Weapon Stats:
    • Speed:武器的攻击速度。这是两次攻击之间的冷却时间;值越小,下一次攻击就越快。如果值为 0,则在第一个动画完成后将立即执行下一次攻击。
    • Minimum Damage:在添加任何角色修改器之前,武器可以造成的最小伤害。Damage Done是介于 Minimum Damage 和 Maximum Damage 之间的随机值。
    • Maximum Damage:在添加任何角色修改器之前,武器可以造成的最大伤害。Damage Done是介于 Minimum Damage 和 Maximum Damage 之间的随机值。
    • Range:武器可以对敌人角色造成伤害的距离。如果在瞄准攻击时目标角色已超出范围,则不会造成任何伤害。
  • Add New Weapon Attack Effect:一个列出你所编写的武器攻击效果的下拉菜单。当你编写新的效果时,此效果将出现在这里。你可以选择一个武器攻击效果来将这个效果添加到武器。

在下一步中,你将学习如何编写武器攻击效果脚本并将这个脚本应用于武器。

9. 编写武器攻击效果脚本

什么是武器攻击效果脚本?

当武器击中目标时,武器攻击效果脚本会启用自定义效果。此脚本添加到武器。

如何创建新的武器攻击效果脚本?

要基于“创作者套件:初学者代码”模板创建新的武器攻击效果脚本,请执行以下操作:

1.在顶部菜单中,选择 Beginner Code > Create Weapon Attack Effect


2.
在打开的 NameWindow 对话框中,为武器效果脚本命名,然后选择 Create。此时将在 Assets/Scripts/WeaponEffect 中创建脚本,并在编辑器中选择该脚本。

3.在 Project 窗口中,双击该脚本以在代码编辑器中将该脚本打开。

我们提供了一个模板脚本来帮助你编写物品的物品攻击效果:

public class EFFECTNAME : Weapon.WeaponAttackEffect
{
    public override void OnAttack(CharacterData target, CharacterData user, ref Weapon.AttackData attackData)
    {
        
    }
    
    public override void OnPostAttack(CharacterData target, CharacterData user, Weapon.AttackData data)
    {
        
    }
}


EFFECTNAME
用作武器攻击效果脚本名称的占位符。

如何自定义武器攻击效果?

在武器攻击效果脚本中可以自定义两个函数:

1.OnAttack(CharacterData target, CharacterData user, ref Weapon.AttackData attackData)

此函数中的指令可以控制武器击中敌人时发生的情况。你可以使用 attackData 中的 AddDamage 函数向目标添加伤害效果或对目标应用元素效果。

2.void OnPostAttack(CharacterData target, CharacterData user, Weapon.AttackData data)

执行所有 OnAttack 函数指令后将调用此函数。此函数可用于自定义在应用所有 OnAttack 效果后对于目标所受到的伤害量做出的反应。

例如,可以使用此函数将对敌人的伤害百分比转换为玩家角色的生命值。

如何查找有关自定义的 Weapon.AttackData 类的更多信息?


自定义的 Weapon.AttackData 类 可用于查询敌人受到的伤害量。要查找有关 Weapon.AttackData 类的更多信息,请执行以下操作:

1.在 Unity 编辑器中,选择顶部菜单中的 Beginner Code > Open Documentation


2.
在顶部菜单栏中,选择 API Documentation


3.
在筛选栏中,搜索“Weapon.AttackData”。


4.在左侧菜单中选择相应的链接。

10. 将武器攻击效果脚本应用于武器

修改武器攻击效果脚本后,可以在编辑器中将该脚本添加到武器:

1.在 Project 窗口中,选择已创建的武器(文件路径:Assets/Creator Kit - Beginner Code/Prefabs/InGameItem)。

2.在 Inspector 中,找到 Add New Effect 字段。从下拉菜单中选择你的武器攻击效果。


3.Description 中添加武器攻击效果的描述。

4.Ctrl + S (Windows) 或 Cmd + S (macOS) 来保存更改。

5. 在运行模式下测试你的装备物品。

提示:如果要移除武器攻击效果,请选择 Inspector 中的 Script 字段右侧的减号按钮 (-)。

Complete this Tutorial