声明一个变量 class
Declare a variable class
我需要在我的代码中声明一个变量 class 以便我可以访问一个函数(在所有 classes 中具有相同的名称)但每次都执行不同的行为)。
这是我的代码:
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 ();
}
}
知道(class 会变)。
谢谢你们的回答,但有点特别。
我的游戏是关于当玩家接近任何物品时玩家和游戏对象之间的互动 "interactible" 比方说,出现一个泡泡,这个泡泡是一个 GameObject 并且对于任何对象都是一样的允许互动,
既然我正在做一个 2D 游戏,我想,如果我做一个 "universal" 会很棒
EmptyGameObject 包含 anyObject 将包含的所有常见方面,我将主要功能和常见功能分组在一个通用脚本中,并将其添加到这个空的 GameObject 中,然后我将 Bubble 预制件添加到这个 Game 对象中,并向它添加了一段代码这段代码包含我在第一个 post.
中写的内容
我在想,现在每次我想要一个对象时,我只需删除这个空的游戏对象预制件并更改精灵和特性。
并且每个对象都有不同的行为(例如:我可以删除一个苹果,就像角色消耗它一样,但我不能消耗一扇门,门宁愿触发动画而不是被破坏)我正在指定所有这些在每个项目的 class 中。
现在无论 class 是什么(对象是)触发器在气泡 class 中(我首先 post 编辑)但是 class 将是每次都不一样,我无法制作包含多态性的 class,因为它每次都不相同。
我认为你应该创建一个接口来声明你想在不同 classes 中使用的所有函数。
interface IBehaviour
{
void Behaviour();
void AnotherBehaviour();
}
用这个你可以定义一个 class 实现接口的行为。
然后你的 classes 将是:
class MyClass1 : Ibehaviour
{
}
class MyClass2 : IBehaviour
{
}
除此之外,您还可以使用抽象 classes。互联网上有很多关于这些主题的写得很好的文章。
首先,我建议熟悉 OOP 原理。
This link 是一个很好的开始。
祝你好运。
谢谢大家,
通过创建一个包含我们要继承的 class 的全局(抽象)gameOject 解决了这个问题,然后每次附加到此 class 的 gameObject 调用(行为函数) 它会触发此对象的此函数的任何覆盖。
我需要在我的代码中声明一个变量 class 以便我可以访问一个函数(在所有 classes 中具有相同的名称)但每次都执行不同的行为)。
这是我的代码:
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 ();
}
}
知道(class 会变)。
谢谢你们的回答,但有点特别。
我的游戏是关于当玩家接近任何物品时玩家和游戏对象之间的互动 "interactible" 比方说,出现一个泡泡,这个泡泡是一个 GameObject 并且对于任何对象都是一样的允许互动,
既然我正在做一个 2D 游戏,我想,如果我做一个 "universal" 会很棒 EmptyGameObject 包含 anyObject 将包含的所有常见方面,我将主要功能和常见功能分组在一个通用脚本中,并将其添加到这个空的 GameObject 中,然后我将 Bubble 预制件添加到这个 Game 对象中,并向它添加了一段代码这段代码包含我在第一个 post.
中写的内容我在想,现在每次我想要一个对象时,我只需删除这个空的游戏对象预制件并更改精灵和特性。
并且每个对象都有不同的行为(例如:我可以删除一个苹果,就像角色消耗它一样,但我不能消耗一扇门,门宁愿触发动画而不是被破坏)我正在指定所有这些在每个项目的 class 中。
现在无论 class 是什么(对象是)触发器在气泡 class 中(我首先 post 编辑)但是 class 将是每次都不一样,我无法制作包含多态性的 class,因为它每次都不相同。
我认为你应该创建一个接口来声明你想在不同 classes 中使用的所有函数。
interface IBehaviour
{
void Behaviour();
void AnotherBehaviour();
}
用这个你可以定义一个 class 实现接口的行为。
然后你的 classes 将是:
class MyClass1 : Ibehaviour
{
}
class MyClass2 : IBehaviour
{
}
除此之外,您还可以使用抽象 classes。互联网上有很多关于这些主题的写得很好的文章。
首先,我建议熟悉 OOP 原理。
This link 是一个很好的开始。
祝你好运。
谢谢大家,
通过创建一个包含我们要继承的 class 的全局(抽象)gameOject 解决了这个问题,然后每次附加到此 class 的 gameObject 调用(行为函数) 它会触发此对象的此函数的任何覆盖。