Unity3D如何调用另外一个脚本里的函数呢

如题,我想在炮弹的ZhaDan脚本里调用飞机的XueLiang脚本中的KouXue()函数该怎么做

你要记住一点,你说的脚本就是一个类,调用脚本中的函数就是调用类的成员方法
首先要得到飞机的游戏物体,
如果你说的飞机是敌人的话说明不止有一个,用下面的方法:
C#:

GameObject FeiJi:
XueLiang _xueLiang;
_xueLiang = FeiJi.GetComponent<XueLiang>();
_xuelaing.KouXue();

这里的调用想必是你的炮弹碰撞到飞机时候触发的吧,这样的话你可以在触发事件里得到碰撞到的飞机物体

如果是玩家,就直接用单例模式吧,代码如下:

Class MyFeiJi : MonoBehavior{
public static MyFeiJi instance;
void Start()
{ instance = this;}

public void KouXue(float point)
{
// your code.......
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-12
可以将函数声明为共有静态函数。

在unity3D: c# 怎样调用另外一个c#脚本里面东西?
直接用 脚本名.函数名(参数); 调用即可 对于组件 如果是静态成员,同上 如果是动态成员,可以用GetComponent<脚本名称>()来获取此脚本的类 也就是使用 GetComponent<脚本名称>().函数名(参数);调用 注意:上述其实省略了一个this对象,表示本身,意思是说你用 GetComponent<脚本名称>() 获取的对象是此脚...

在unity3D: c# 怎样调用另外一个c#脚本里面东西?
例:第一个脚本名字为Class_1,第二个脚本名字为Class_2,Class_1调用Class_2 如果Class_2没有绑定在任何GameObject上,那在Class_1里写法:Class_2c2=newClass_2();如果Class_2绑定在GameObject上,那在Class_1里写法:Class_2c2=null;voidStart(){ c2=GameObject.Find("绑定的GameObject名字")....

Unity3D如何正确调用与修改另一个脚本中的全局变量(在碰撞检测中...
你要获取的是一个已经存在与场景内的对象,不能使用New,OnCollisionEnter2D函数中发生碰撞的那一刻会把与当前物体接触的那个物体碰撞信息通过参数Collision2D col传递进来。可以通过这个传递过来的值,修改传递过来物体上脚本的参数。

Unity3D中在一个脚本中怎么获得另一个脚本中的变量
1.新建两个C#脚本 2.在test1脚本中定义一个整型变量speed并赋值60,在开始函数中输出结果 3.在test2中定义共有类变量t1,test1类成员t1.speed赋值10并输出结果 4.将脚本拖拽到场景中的物体上,其中,T1一栏需要拖拽物体上的test1脚本 5.观察控制台输出结果(先60,后10)

unity3D里面怎么在一个脚本中时时获取另一个脚本中的变量? 我在A.js...
在A.js中用静态声明 static var 变量:bool;然后在B.js中直接用 B.变量 调用;或者用 GameObject.Find("gameobject名字").GetComponent(A).变量 调用;

Unity3D中在一个脚本中怎么修改另一个脚本中定义的全局变量,比如定义...
有好几种方法都可以 1. 把另一个类中的成员做成 static 的,用 MyClass.member 的方法调用 2. 把另一个类(继承于 MonoBehaviour)做出单件模式,用类似下面的方法:private static MyClass instance; public static MyClass Instance { get { \/\/ This should NEVER happen, so we want ...

unity3d 使用c#如何访问某个对象里的c#脚本里的一个变量
一:public GameObject 另一个物体; \/\/监视面板拖拽赋值 另一个物体.GetComponent<脚本>().变量 获得并更改.二:将另一个物体命名为"XXX".GameObject.Find("XXX").GetComponent<脚本>().变量;三:将另一个物体Tag改为"XXX";GameObject.FindGameObjectWithTag("XXX").GetComponent<脚本>().变量; ...

unity3D怎么使用C#的DLL
unity3D调用C#的DLL的步骤如下:1、编写要引用的程序集。用户可以编写任何用途的程序集,就像用C#开发.net类库一样。不过需要注意的是,如果要编写从Unity继承的类(比如从MonoBehaviour派生的组件等等),则不能使用namespace,目前的Unity不支持,用了编译报错。2、将程序集DLL放置到目标Unity工程的Asset...

unity3d 不同脚本之间怎么传递参数
用c#通过公共类传递,例如classA,B,在B中调用A中的变量

Unity3D中自动调用的方法总结
Awake:顾名思义,Unity3D的脚本苏醒时需要调用的方法,这个方法比Start方法执行的还要早,也是执行一次。 Start:可以理解为类的构造函数,或者是init函数,用于初始化各种变量,仅执行一次。 Update:类似于flash AS3 onframe的回调函数,每帧均回调。 Fixedupdate:每一帧都执行,处理Rigidbody...

相似回答