永发信息网

Unity3D如何正确调用与修改另一个脚本中的全局变量(在碰撞检测中)?

答案:1  悬赏:80  手机版
解决时间 2021-02-16 07:56
比方说我写了某一个脚本:
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这种写法?)
最佳答案
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传递进来。可以通过这个传递过来的值,修改传递过来物体上脚本的参数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
MP4里说的720P是什么意思
河科大七附院这个地址在什么地方,我要处理点
苦瓜变黄了还可以煮水洗脸吗
嗓子有痰喝了蛇胆川贝枇杷膏为什么更不舒服了
从临沂汽车总站到河东区汤头镇后林子村坐公交
【小学二年级下学期期中考试试卷】小学语文二
幼儿园定牛奶的通知怎么写
吃蔬菜最健康的吃法是什么?
中亚湾商务酒店这个地址在什么地方,我要处理
宜城市襄樊月满大江(宜城店)怎么去啊,谁知道
求助:28寸旅行箱国内国际航班是否可以托运
水利水电工程施工期度汛前,()应提出工程度汛
求解二建违纪会通报单位吗
恒达装饰材料部地址有知道的么?有点事想过去
来图片,植保高手看看什么虫,应该是蚧壳虫之
推荐资讯
淘宝审核身份证的时候会把身份证放大吗
【放弃的英文】放弃的英语单词是什么?
步步高手机快捷键发到手机桌面之后为什么找不
有一部古装武侠片。仇人双方都生了儿子,约定
将大肠杆菌置于含15N的培养基上培养。这样,
单选题把一不带电的金属小球移近一个带电的金
(每空2分,共18分)根据下列化合物的结构分
滨河派出所城中社区警务室在哪里啊,我有事要
下列各项,不属诊刮适应证的是()A.子宫内膜癌
魅族note手机外屏破了能单独换不
营养不良的护理诊断有A.营养失调,高于机体需
支付宝 用银行卡转账到银行卡的方式转钱 我这
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?