声明一个变量类

时间:2015-04-14 13:22:29

标签: c# unity3d

我需要在我的代码中声明一个变量类,这样我就可以访问一个函数(在所有类中具有相同的名称),但每次都执行不同的行为。)

这是我的代码:

using UnityEngine;
using System;
using System.Collections;

public class Bubble : ItemBehaviour
{

    // Use this for initialization
    void Start ()
    {

    }

    // Update is called once per frame
    void Update ()
    {

    }

    void OnMouseDown ()
    {
        theclass.Behaviour ();
    }
}

知道(该类将是可变的)。


谢谢你们的回答,但有点特别。

我的游戏是关于玩家和游戏对象之间的互动,当玩家接近任何“可交互”的项目时,可以说,泡泡出现,这个泡泡是GameObject,对于任何允许交互的对象都是一样的,< / p>

所以,既然我正在做一个2D游戏,我想,如果我做一个“普遍”的话会很棒  EmptyGameObject包含anyObject将包含的所有常见方面,并且我在一般脚本中将主要功能和常用方法分组并将其添加到此emptyGameObject,然后我将Bubble预制件添加到此Game对象中,并将代码添加到此代码中包含我在第一篇文章中写的内容。

我在想,现在每次我想要一个物体时,我只需要放下这个空的对象预制件并更改精灵和特征。

并且每个对象都有不同的行为(例如:我可以删除一个苹果,好像角色消耗它但我不能消耗门,门宁愿触发动画而不是被破坏)我在一个指定所有这一切每个项目的课程。

现在无论类是什么(对象是),触发器都在冒泡类中(我先发布),但每次类都不同,我不能创建一个包含多态的类,因为它不是同一个上下文每一次。

2 个答案:

答案 0 :(得分:1)

我认为你应该创建一个接口来声明你想在不同类中使用的所有函数。

interface IBehaviour
{
   void Behaviour();
   void AnotherBehaviour();
}

用这个来定义一个实现接口的类能够实现的行为。

然后你的课程将是:

class MyClass1 : Ibehaviour
{
}

class MyClass2 : IBehaviour
{
}

除此之外,您还可以使用抽象类。互联网上有很多关于这些主题的精心撰写的文章。

首先,我建议熟悉OOP原则 This链接是一种很好的开始方式。

祝你好运。

答案 1 :(得分:0)

谢谢大家,

通过创建一个包含我们想要继承的类的全局(抽象)gameOject解决了这个问题,然后每当到这个类的gameObject调用(Behavior函数)时,它都会触发该函数的覆盖。对于这个对象。