私はいくつかの助けが必要です。私はこれが可能かどうかを知りません:Unity3dの多型
私は2つのスクリプト、interactBaseとinteractRockスクリプトがあります。
interactRockスクリプトはinteractBaseスクリプトを拡張します。
interactRockは、関数が上書きされます「(対話)」
だから私は、オブジェクトの参照を取得し、子の機能を呼び出すためにしてみてください。
しかし、それはうまくいくようです。多分あなたは私を助けることができますか?
コード:
interactBase:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class interactBase : MonoBehaviour {
public interactBase(){
}
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
}
public void interact(){
}
}
rockInteract:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class rockInteract : interactBase {
public bool triggered;
public rockInteract(){
}
// Use this for initialization
void Start() {
triggered = false;
}
// Update is called once per frame
void Update() {
}
public new void interact(){
triggered = true;
print ("working");
}
}
呼び出すスクリプト:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class triggerScript : MonoBehaviour {
Animator anim;
SpriteRenderer sprite;
public bool triggered;
public GameObject toTrigger;
interactBase baseFunc;
// Use this for initialization
void Start() {
anim = GetComponent<Animator>();
sprite = GetComponent<SpriteRenderer>();
triggered = false;
baseFunc = toTrigger.GetComponent<interactBase>();
print (baseFunc);
}
// Update is called once per frame
void Update() {
transform.position += Vector3.zero;
if (triggered == true) {
//print (baseFunc.interact());
baseFunc.interact();
triggered = false;
}
}
}
が
ありがとう
労働者(Y)ありがとう – Maik