前提・実現したいこと
Visual Studio Community で、スクリプト間で型の参照をしたい
ここに質問の内容を詳しく書いてください。
現在、Unityでゲーム開発をしており、コーディングするのにVisual Studio Communityを使用しております。
AとBという.csのスクリプトファイルが2つあり、AのメソッドをBで呼び出したいためAの型をBで宣言しました。
ところが「型または名前空間の名前 'A'(クラス名) が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)」というエラーメッセージが表示され、参照することが出来ません。コード側の問題なのか、はたまたスクリプト間が紐づいていないのか問題も切り分けられず苦慮しております。以下に貼り付けさせて頂く NewBehaviourScript が問題の参照出来ない型になります。
該当ソースコード、試したことなど記載させて頂きますので、何かアドバイスを頂けますと幸いです。
宜しくお願いいたします。
発生している問題・エラーメッセージ
型または名前空間の名前 'A'(クラス名) が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
該当のソースコード
A呼び出される側のメソッドを記述 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class NewBehaviourScript : MonoBehaviour { public GameObject text_object1 = null; // Textオブジェクト public GameObject panel_object1 = null; //Canvasオブジェクト private bool active_status = false; // Panelの表示/非表示 // メッセージフラグ private int msg_flg; // 初期表示 void Start() { // オブジェクトからTextコンポーネントを取得 Text search_text = text_object1.GetComponent<Text>(); // 1つ目のメッセージを表示 search_text.text = "喉が乾いたなあ。。"; msg_flg = 0; } // 更新時 void Update() { } // テキストメッセージの表示/非表示を切り替えます public void DisplayMassage(GameObject target_objectet) { if (active_status == true) { target_objectet.SetActive(false); active_status = false; } else { target_objectet.SetActive(true); active_status = true; } } }
B 呼び出し側のスクリプト using System; using UnityEngine; using UnityStandardAssets.CrossPlatformInput; using UnityStandardAssets.Utility; using Random = UnityEngine.Random; namespace UnityStandardAssets.Characters.FirstPerson { [RequireComponent(typeof (CharacterController))] [RequireComponent(typeof (AudioSource))] public class FirstPersonController : MonoBehaviour { [SerializeField] private bool m_IsWalking; [SerializeField] private float m_WalkSpeed; [SerializeField] private float m_RunSpeed; [SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten; [SerializeField] private float m_JumpSpeed; [SerializeField] private float m_StickToGroundForce; [SerializeField] private float m_GravityMultiplier; [SerializeField] private MouseLook m_MouseLook; [SerializeField] private bool m_UseFovKick; [SerializeField] private FOVKick m_FovKick = new FOVKick(); [SerializeField] private bool m_UseHeadBob; [SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob(); [SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob(); [SerializeField] private float m_StepInterval; [SerializeField] private AudioClip[] m_FootstepSounds; // an array of footstep sounds that will be randomly selected from. [SerializeField] private AudioClip m_JumpSound; // the sound played when character leaves the ground. [SerializeField] private AudioClip m_LandSound; // the sound played when character touches back on ground. private Camera m_Camera; private bool m_Jump; private float m_YRotation; private Vector2 m_Input; private Vector3 m_MoveDir = Vector3.zero; private CharacterController m_CharacterController; private CollisionFlags m_CollisionFlags; private bool m_PreviouslyGrounded; private Vector3 m_OriginalCameraPosition; private float m_StepCycle; private float m_NextStep; private bool m_Jumping; private AudioSource m_AudioSource; private NewBehaviourScript displayText; // Use this for initialization private void Start() { m_CharacterController = GetComponent<CharacterController>(); m_Camera = Camera.main; m_OriginalCameraPosition = m_Camera.transform.localPosition; m_FovKick.Setup(m_Camera); m_HeadBob.Setup(m_Camera, m_StepInterval); m_StepCycle = 0f; m_NextStep = m_StepCycle/2f; m_Jumping = false; m_AudioSource = GetComponent<AudioSource>(); m_MouseLook.Init(transform , m_Camera.transform); } // Update is called once per frame private void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 5)) { if (hit.transform.gameObject.name == "VendingMachine (1)") { GameObject displayTextGameObject = GameObject.Find("MachineTextManager"); NewBehaviourScript displayText = displayTextGameObject.GetComponent<NewBehaviourScript>(); } } }
試したこと
・Visual Studio の再起動
・Visual Studio の「プロジェクト」⇨「参照の編集」 ⇨ 参照の編集がグレーアウトされており押下出来ず。
・それぞれのソースコードはUnityで動作することは確認済み
補足情報(FW/ツールのバージョンなど)
Visual Studio for Mac(Ver.8.2.1(build19))
回答2件
あなたの回答
tips
プレビュー