これが重複している可能性がありますが、私はこれを機能させるように試みましたが、おそらく単純なものです。
1つのオブジェクトで相互作用する2つのスクリプトを取得しようとしています。すべてのオブジェクトのすべての相互作用を処理する基本的な汎用物理スクリプトが必要です。
スクリプト1:
// Simple Player1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player1 : MonoBehaviour
{
Physics physics_script;
void Start(){
physics_script = gameObject.GetComponent<Physics>();
}
// Update is called once per frame
void Update() {
physics_script.helloWorldFromAnotherScript();
}
}
スクリプト2:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Physics : MonoBehaviour
{
void Start(){
}
void Update() {
}
public void helloWorldFromAnotherScript()
{
Debug.Log("Hello world from player");
}
}
編集:私は問題がここにあるとかなり確信しています:
しかし、命を救うためにそれを変えることはできません。
動作するはずです。両方のスクリプトがgameObjectに追加されていますか?画像ではplayer1しか表示されておらず、Physicsが追加されているかどうかは疑問です。他の場所では、physics_scriptsを公開するか、([SerializeField]を使用して)シリアル化することができ、エディターでスクリプトをフォームフィールドにドラッグアンドドロップできます。これにより、開始時にGetComponent <>を使用できなくなります。使用しない場合は、startメソッドとupdateメソッドを削除することを忘れないでください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加