📅  最后修改于: 2023-12-03 15:38:41.626000             🧑  作者: Mango
在 Unity 中编写 2D 游戏可以让你的游戏更具体验感和生动感。在 Unity 中编写 C# 也可以让你更好地控制和定制你的游戏。下面是一些在 Unity 2D 中编写 C# 的建议。
ScriptableObject 是 Unity 中的一种资源,它可以在编辑器中生成,并在运行时使用。使用 ScriptableObject 可以使代码更好地组织和管理,也可以降低需求操作的难度等级,实现代码的可读性和可扩展性。
以下是一个简单的 ScriptableObject 示例。
using UnityEngine;
[CreateAssetMenu(fileName = "New Weapon", menuName = "Inventory/Weapon")]
public class Weapon : ScriptableObject
{
public string name = "New Weapon";
public float damage = 10.0f;
}
这个 Weapon ScriptableObject 有一个名称和一个 float 型的伤害值。
在 Unity 编辑器中定义变量时,可以使用方便的变量声明。例如,在 MonoBehavior 中,无需声明 private 字段:
public class Player : MonoBehaviour
{
public Rigidbody2D rigidBody;
public float jumpForce = 5.0f;
private bool isJumping = false;
void Update()
{
if (!isJumping && Input.GetButtonDown("Jump"))
{
isJumping = true;
rigidBody.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isJumping = false;
}
}
}
可以在代码中看到, Player 类中的变量可以在 MonoBehavior 上面声明。
使用命名空间可以帮助我们更好地组织代码。例如,如果要创建一个使用命名空间的新类,我们可以这样做:
namespace MyNamespace
{
public class MyClass
{
// Class content here
}
}
在 Unity 中,我们可以使用默认命名空间来组织代码。例如,我们可以使用以下方法来组织我们的项目:
using UnityEngine;
public class MainMenu : MonoBehaviour
{
public void StartGame()
{
// Start game
}
public void QuitGame()
{
// Quit game
}
}
使用自定义 Inspector 可以更好地组织和管理代码。 Unity 的 Inspector 允许你自定义属性、检查器、UI 和一些我自己习惯了的东西。以下是一个简单的示例。
using UnityEngine;
[CustomEditor(typeof(MyScript))]
public class MyScriptInspector : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
MyScript script = (MyScript)target;
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("MyStringField", GUILayout.Width(100.0f));
script.myStringField = EditorGUILayout.TextField(script.myStringField);
EditorGUILayout.EndHorizontal();
if (GUILayout.Button("Do Something"))
{
script.DoSomething();
}
}
}
public class MyScript : MonoBehaviour
{
public string myStringField;
public void DoSomething()
{
// Do something
}
}
在这个脚本中,自定义 Inspector 允许我们更好地管理和控制我们的代码。
这里介绍了如何在 Unity 2D 中编写 C#,包括如何使用 ScriptableObject、简化变量定义、使用命名空间、使用自定义 Inspector 等。我们希望这些提示能够帮助你写出更好的代码并更好地掌控你的 Unity 2D 游戏。