【C#中级教程(Unity官方)】静态

静态成员,如变量和方法,是跨类的所有实例共享的成员
此外,静态成员可直接通过类访问,无需先对类的对象进行实例化。

静态变量

通常,成员变量对于类的每个对象是唯一的,虽然类的每个对象具有相同的变量,但它们各有自己的值。然而,对于静态变量,类的每个对象具有相同的变量和相同的值。因此,如果在一处更改某个静态变量的值,则所有其他静态变量的值也将更改

假设你想知道Enemy类中实例化了多少个对象,一种简单的方法是,使用名为enemyCount的静态成员变量。将关键词static输入到成员声明中,即表示声明这是静态的,因此它属于类本身,而不属于类的任何示例,然后,每次创建enemy对象时,都需要让这个变量递增,由于每个对象都让同一个变量递增,因此它将包含已创建的所有敌人总数,访问该静态变量也非常简单。

public class Enemy
{
    public static int enemyCount = 0;
    
    public Enemy()
    {
        enemyCount++;
    }
}

这是一个Game类,其中创建了几个敌人,为了弄清创建了多少个敌人,我们只需使用类的名称和点运算符来访问enemyCount静态变量。在本例中enemyCount变量等于3。

public class Game
{
    void Start()
    {
        Enemy enemy1 = new Enemy();
        Enemy enemy2 = new Enemy();
        Enemy enemy3 = new Enemy();
        
        int x = Enemy.enemyCount;
    }
}

这个过程也适合要用做游戏对象组建的脚本。例如,如果要了解在某个场景中创建的玩家数量,我们可以创建一个玩家脚本组件。在这个脚本中,我们可以声明静态变量playerCount,start方法中,让这个变量递增。现在,只要创建这个脚本关联的游戏对象,玩家总数就会增加。

public class Player : MonoBehaviour
{
    public static int playerCount = 0;
    
    void Start()
    {
		playerCount++;
    }
}

在另一个脚本中,我们可以使用脚本的名称和点运算符来访问这个静态变量。

public class PlayerManager : MonoBehaviour
{
    void Start()
    {
        int x = Player.playerCount;
    }
}
静态方法

与静态变量一样,静态方法属于类,而不属于类的特定对象。

举一个非常简单的例子:

假设有一个名为Utilities的类,在这个类中有一个名为Add的静态方法,他返回两个数字相加得到的结果。你可以通过方法Add前面的static关键字来判断它是静态的。

public static class Utilities
{
    public static int Add(int num1,int num2)
    {
        return num1 + num2;
    }
}

现在,在另一个类中,你可以使用类的名称和点运算符来调用Add方法,无需通过实例化类的对象来使用其静态成员。

public class UtilitiesExample : MonoBehaviour
{
    void Start()
    {
        int x = Utilities.Add(5,6);
    }
}

有可能你已经使用过静态方法,只是自己还没有意识到。回顾在Unity中使用Input的情景。Input.GetAxis Input.GetKeyInput.GetButton等方法都是静态方法,之所以可以判断这些是静态方法,因为不需要通过实例化Input类来使用它们。

事实上,Unity提供了许多静态方法,从而为您提供多种实用工具和功能。需要注意的是,不能在静态方法内部使用非静态成员变量

记住,静态方法属于类,而非静态变量属于类的实例。

静态类

你也可以使整个类成为静态,只需将关键词static置于类名称前面即可。结果是,类成为静态的,并且不能创建类的实例,如果想要使类完全由静态成员变量和方法组成,如Input类,则这样非常有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Unity3d官方教程中文手册是Unity3D开发者们进行学习和研究的重要资料。手册的内容主要以Unity3D的操作和原理为主线进行阐述,充分体现了Unity3D的特点和优势。 手册的编排方式非常清晰,其中涉及到的知识点十分详细,包括Unity3D的游戏场景制作、编写脚本、环境设置等等,都有详细的图文资料。 手册的语言表达简单易懂,从初学者到专业人员都可以轻松掌握。手册的学习难度逐渐上升,非常适合新手快速入门。 手册中的代码示例是十分实用的,可以快速了解代码的运作方式和实现效果。手册中包含了大量的案例和实例,以不同类型进行分类,使学习者可以通过案例学习到如何快速开发复杂的游戏。 总之,Unity3d官方教程中文手册对于初学者和专业人员来说都是得到解决开发问题和提升技能必备资料,同时也是进一步了解Unity3D原理和开发技能的重要渠道。 ### 回答2: Unity3D官方教程中文手册包括了Unity3D引擎的基础知识和高级功能。该教程手册包含丰富的图文资料,对游戏开发员来说非常实用。 手册内容涵盖了Unity3D内部组件和系统、用户界面设计、游戏对象、材质、光照、动画和物理模拟等方面的内容,在手册中,读者可以找到详尽的说明、案例和代码,说明了如何使用Unity3D来构建游戏。 该手册对于Unity3D的初学者和高级用户来说都非常有价值,不仅能够帮助用户更好地了解Unity3D的工作原理和特点,还能够帮助其提升Unity3D开发的技能和经验。 总的来说,Unity3D官方教程中文手册作为一份精简而全面的Unity3D教程,是学习Unity3D的不二选择,通过学习手册中的内容,用户可以更好地掌握Unity3D引擎并能够快速地构建高质量的游戏。 ### 回答3: Unity3D官方教程中文手册是Unity官方提供的教学手册,它涵盖了Unity3D引擎的基础知识、高级技巧以及应用案例。该手册分为5个模块,包括游戏入门、Unity基础知识、3D游戏开发、2D游戏开发和UI设计。 手册中详细介绍了Unity引擎的各个功能模块,从场景的创建、游戏对象的使用、材质与纹理的应用、游戏逻辑的实现等基础知识入手,逐步深入向用户介绍Unity中的高级技巧和应用开发,例如动画制作、特效的应用、粒子系统等。此外,手册还详细介绍了如何在Unity中开发2D游戏和设计UI界面。 手册中的内容丰富,不仅提供了理论知识,还通过实际案例和代码来演示真实开发中的使用场景,帮助开发者更好地理解和掌握Unity引擎的使用。 对于有编程经验的用户来说,手册中还介绍了Unity的脚本编程,包括C#语言的语法和Unity API的使用方法,使开发者能够更快地掌握开发技能。 总之,Unity3D官方教程中文手册是一本非常好的Unity教程,它不仅适合初学者入门,也适合有经验的开发者进一步提高自己的技能。手册内容详实,语言简明易懂,是学习Unity引擎的必备教材之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜_tu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值