C#脚本(子对象)不允许我访问另一个脚本(这是父对象)的统一

时间:2015-11-18 09:43:26

标签: c# object inheritance unity3d

我可以从脚本访问该对象但是我想直接更改脚本中对象的值,这是不允许的。这是我的主要脚本的脚本:

LateUpdate()

以下是我脚本的脚本:

specialBone

编辑:我希望从上面显示的脚本访问Object QuestionObject这里是gameObject的屏幕截图,它附有两个脚本

enter image description here

2 个答案:

答案 0 :(得分:1)

USE public static Question QuestionObject = new Question();

然后您可以像这样

访问和更改子类中的值

Parentclass.QuestionObject.value

答案 1 :(得分:1)

我认为你误解了继承概念。当你在这里声明一个类时:

public class Questions : QuestionMenu {

这意味着Question类与QuestionMenu类具有相同的功能和变量(我假设它们都是公共的)。但它并不意味着你可以将2个GameObjects彼此连接起来。在Parent上设置Question脚本是另一个对象(我的意思是Question对象)。当你在Child上设置QuestionMenu脚本时,它是完全不同的新对象。他们也没有相互联系。你应该做的是:

using UnityEngine;
using System.Collections;

public class Questions {
public Questions dpoint; // u can set this on unity editor by just draging and dropping the parent object here.

void Start () {
    //or you can get it from code I belive
    dpoint = transform.parent.GetComponent<Question>();
    QuestionObject.questionText = "asd";

}

// Update is called once per frame
void Update () {    
    base.QuestionObject.questionText = "asd2";
}

}

我希望我没有误解你的问题..