

段差を登るシステムを作っていたのですが、  
スクリプトからgetcomponentしようとすると、

> c:\Users\user\Documents\New Unity Project 3\Assets\Standard
> Assets\Characters\ThirdPersonCharacter\Scripts\ThirdPersonCharacter.cs(4,4):
> Error CS0246: 型または名前空間名 'dansacollider1' が見つかりませんでした。using
> ディレクティブまたはアセンブリ参照が不足しています。 (CS0246) (Assembly-CSharp-firstpass)

とでてビルドエラーになります。

[参考サイト](http://myoujing.wpblog.jp/2014/06/760/)

・構造

・Thirdpersoncontroller  
・モデル  
・dansacolloder1  
・dansacolloder2  
・dansacolloder3  
・dansacolloder4  
・dansacolloder5

・スクリプト

・thirdpersoncontroller.cs

[code]

    using UnityEngine;
    using System.Collections;
    
    namespace UnityStandardAssets.Characters.ThirdPerson
    {
        [RequireComponent(typeof(Rigidbody))]
        [RequireComponent(typeof(CapsuleCollider))]
        [RequireComponent(typeof(Animator))]
        public class ThirdPersonCharacter : MonoBehaviour
        {
            [SerializeField] float m_MovingTurnSpeed = 360;
            [SerializeField] float m_StationaryTurnSpeed = 180;
            [SerializeField] float m_JumpPower = 12f;
            [Range(1f, 4f)][SerializeField] float m_GravityMultiplier = 2f;
            [SerializeField] float m_RunCycleLegOffset = 0.2f; //specific to the      character in sample assets, will need to be modified to work with others
        [SerializeField] float m_MoveSpeedMultiplier = 1f;
        [SerializeField] float m_AnimSpeedMultiplier = 1f;
        [SerializeField] float m_GroundCheckDistance = 0.1f;
    
        Rigidbody m_Rigidbody;
        Animator m_Animator;
        bool m_IsGrounded;
        float m_OrigGroundCheckDistance;
        const float k_Half = 0.5f;
        float m_TurnAmount;
        float m_ForwardAmount;
        Vector3 m_GroundNormal;
        float m_CapsuleHeight;
        Vector3 m_CapsuleCenter;
        CapsuleCollider m_Capsule;
        bool m_Crouching;
    
    
        //段差システム
    
        bool dansatrigger = false;
        bool dc1 = false;
        bool dc2 = false;
        bool dc3 = false;
        bool dc4 = false;
        bool dc5 = false;
    
    
        void Start()
        {
            m_Animator = GetComponent<Animator>();
            m_Rigidbody = GetComponent<Rigidbody>();
            m_Capsule = GetComponent<CapsuleCollider>();
            m_CapsuleHeight = m_Capsule.height;
            m_CapsuleCenter = m_Capsule.center;
    
            m_Rigidbody.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ;
            m_OrigGroundCheckDistance = m_GroundCheckDistance;
    
            //段差システム
    
    
    
    
    
        }
    
        public void update()
        {
    
            //段差システム
    
            var f_dc1 = GameObject.Find("dansacollider1");
    
            dansacollider1 g_dc1 = f_dc1.GetComponent<dansacollider1>();
    
            g_dc1.dansatrigger1 = dc1;
    
            var f_dc2 = GameObject.Find("dansacollider2");
    
            dansacollider1 g_dc2 = f_dc2.GetComponent<dansacollider2>();
    
            g_dc2.dansatrigger2 = dc2;
    
            var f_dc3 = GameObject.Find("dansacollider3");
    
            dansacollider3 g_dc3 = f_dc3.GetComponent<dansacollider3>();
    
            g_dc3.dansatrigger3 = dc3;
    
            var f_dc4 = GameObject.Find("dansacollider4");
    
            dansacollider4 g_dc4 = f_dc4.GetComponent<dansacollider4>();
    
            g_dc4.dansatrigger4 = dc4;
    
            var f_dc5 = GameObject.Find("dansacollider5");
    
            dansacollider5 g_dc5 = f_dc5.GetComponent<dansacollider5>();
    
            g_dc5.dansatrigger5 = dc5;
    
    
    
    
            if (dc1){
    
                                //段差１処理
                m_Animator.SetFloat("dansaheight",1);
                dansatrigger = true;
    
    
                if(dc2){
                    //段差２処理
                    m_Animator.SetFloat("dansaheight",2);
                    dansatrigger = true;
    
                    if(dc3){
                        //段差３処理
                        m_Animator.SetFloat("dansaheight",3);
                        dansatrigger = true;
    
    
                        if(dc4){
                            //段差４処理
                            m_Animator.SetFloat("dansaheight",4);
                            dansatrigger = true;
    
    
                            if(dc5){
                                //段差５処理
                                m_Animator.SetFloat("dansaheight",5);
                                dansatrigger = true;
                            }
    
                        }
    
                    }
    
    
                }
    
    
    
                        }
            else{
    
                dansatrigger = false;
    
                        }
    
                }
    
[/code]

・dansacollider1~5

[code]

    using UnityEngine;
    using System.Collections;
    
    public class dansacollider1 : MonoBehaviour {
    
    public bool dansatrigger1;
    
    
    
    // Use this for initialization
    public void Start () {
    
        dansatrigger1 = false;
    
    }
    
    // 衝突した瞬間に呼ばれる
    public void OnTriggerEnter(Collider other) {
        if (other.gameObject.tag == "dansa"){
            dansatrigger1 = true;
        }
    }
    
    // 衝突から離れた瞬間に呼ばれる
    public void OnTriggerExit(Collider other) {
        if (other.gameObject.tag == "dansa") {
            dansatrigger1 = false;
        }
    }
    // Update is called once per frame
    void Update () {
    
    }
    }
    
[/code]


CC BY-SA 3.0
2015-08-13T07:24:19.993
14359
2016-01-21T02:29:08.767
10907
question
c# unity3d
親子関係にある多層boxcolliderによる処理においてのエラー


Unityのプロジェクト内スクリプトは、特定のフォルダによってコンパイル順が異なります。  
コンパイル順は以下のリンクのUnityドキュメントに記載してあります。  
<http://docs.unity3d.com/ja/current/Manual/ScriptCompileOrderFolders.html>  
  
質問内容を見るとThirdPersonCharacter.csはStandard Assetsフォルダに含まれていることがわかります。  
Standard Assetsフォルダは早い段階でコンパイルされるため、Standard Assetsフォルダ外のスクリプトは参照できません。  
質問内容からはdansacollider1.csがどのフォルダの中に入っているのは分かりませんが、Standard
Assetsフォルダ外のフォルダに入っているのではないでしょうか。  
ご確認ください。


CC BY-SA 3.0
2015-09-22T23:35:23.787
16858
2015-09-22T23:35:23.787
12383
14359
answer