在类的所有实例之间共享的变量

Enemy(示例一:静态变量)

  1. public class Enemy
  2. {
  3. //静态变量是在类的所有实例之间共享的变量。
  4. public static int enemyCount = 0;
  5. public Enemy()
  6. {
  7. //通过递增静态变量了解已创建此类的多少个对象。
  8. enemyCount++;
  9. }
  10. }

Game(示例一)

  1. public class Game
  2. {
  3. void Start ()
  4. {
  5. Enemy enemy1 = new Enemy();
  6. Enemy enemy2 = new Enemy();
  7. Enemy enemy3 = new Enemy();
  8. //可以使用类名和点运算符来访问静态变量。
  9. int x = Enemy.enemyCount;
  10. }
  11. }

Player (示例二)

  1. public class Player : MonoBehaviour
  2. {
  3. //静态变量是在类的所有实例之间共享的变量。
  4. public static int playerCount = 0;
  5. void Start()
  6. {
  7. //通过递增静态变量了解
  8. //已创建此类的多少个对象。
  9. playerCount++;
  10. }
  11. }

PlayerManager (示例二)

  1. public class PlayerManager : MonoBehaviour
  2. {
  3. void Start()
  4. {
  5. //可以使用类名和点运算符来访问静态变量。
  6. int x = Player.playerCount;
  7. }
  8. }

可以在没有类对象的情况下调用

静态方法无法访问非静态成员变量

Utilities(静态方法和静态类)

  1. public static class Utilities
  2. {
  3. //可以在没有类对象的情况下调用静态方法。
  4. //请注意,静态方法无法访问非静态成员变量。
  5. public static int Add(int num1, int num2)
  6. {
  7. return num1 + num2;
  8. }
  9. }

UtilitiesExample

  1. public class UtilitiesExample : MonoBehaviour
  2. {
  3. void Start()
  4. {
  5. //可以使用类名和点运算符来访问静态方法。
  6. int x = Utilities.Add (5, 6);
  7. }
  8. }