比方说我写了某一个脚本:
public class bringkey : MonoBehaviour {
public int yellowkey;
.....
}
现在在另一个脚本中通过碰断检测要判断yellowkey的值,然后改变yellowkey的值。
public class openydoor : MonoBehaviour {
void OnCollisionEnter2D(Collision2D col)
{
bringkey yk = new bringkey ();
if (yk.yellowkey > 0) {
Destroy (gameObject);
yk.yellowkey--;}
}
}
我这样写编译器就报错,(You are trying to create a MonoBehaviour using the 'new' keyword. ......)
请问正确的写法是什么?到底如何正确的调用另一个类中的参数?(还是说因为碰撞检测的关系,不能用new这种写法?)
Unity3D如何正确调用与修改另一个脚本中的全局变量(在碰撞检测中)?
答案:1 悬赏:80 手机版
解决时间 2021-02-16 07:56
- 提问者网友:浩歌待明月
- 2021-02-15 13:09
最佳答案
- 五星知识达人网友:像个废品
- 2021-02-15 14:22
void OnCollisionEnter2D(Collision2D col) ///Collision2D co1 碰撞的那个碰撞物体信息
{
var yk = col.transform.GetComponent<bringkey>(); //获取那个碰撞物体上的类BringKey
if (yk.yellowkey > 0)
{
Destroy(gameObject);
yk.yellowkey--;
}
}要获取的是已经存在于场景中的对象,继承MonoBehaviour的类相当于你贴到对象上的一个脚本控件。你要获取的是一个已经存在与场景内的对象,不能使用New,OnCollisionEnter2D函数中发生碰撞的那一刻会把与当前物体接触的那个物体碰撞信息通过参数Collision2D col传递进来。可以通过这个传递过来的值,修改传递过来物体上脚本的参数。
{
var yk = col.transform.GetComponent<bringkey>(); //获取那个碰撞物体上的类BringKey
if (yk.yellowkey > 0)
{
Destroy(gameObject);
yk.yellowkey--;
}
}要获取的是已经存在于场景中的对象,继承MonoBehaviour的类相当于你贴到对象上的一个脚本控件。你要获取的是一个已经存在与场景内的对象,不能使用New,OnCollisionEnter2D函数中发生碰撞的那一刻会把与当前物体接触的那个物体碰撞信息通过参数Collision2D col传递进来。可以通过这个传递过来的值,修改传递过来物体上脚本的参数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯