示例#1
0
        Airplane_Engine[] FindAllEngines()
        {
            Airplane_Engine[] engines = new Airplane_Engine[0];
            if (targetController)
            {
                engines = targetController.transform.GetComponentsInChildren <Airplane_Engine>(true);
            }

            return(engines);
        }
        public static void BuildDefaultAirplane(string aName)
        {
            //Create the root GO
            GameObject rootGO = new GameObject(aName, typeof(Airplane_Controller), typeof(BaseAirplane_Input));

            //Create the Center of Gravity
            GameObject cogGO = new GameObject("COG");

            cogGO.transform.SetParent(rootGO.transform, false);

            //Create the Base Components or Find them
            BaseAirplane_Input       input           = rootGO.GetComponent <BaseAirplane_Input>();
            Airplane_Controller      controller      = rootGO.GetComponent <Airplane_Controller>();
            Airplane_Characteristics characteristics = rootGO.GetComponent <Airplane_Characteristics>();

            //Setup the Airplane
            if (controller)
            {
                //Assing core Components
                controller.input           = input;
                controller.charactistics   = characteristics;
                controller.centerOfGravity = cogGO.transform;

                //Create Structure
                GameObject graphicsGrp       = new GameObject("Graphics_GRP");
                GameObject collisionGrp      = new GameObject("Collision_GRP");
                GameObject controlSurfaceGrp = new GameObject("ControlSurfaces_GRP");

                graphicsGrp.transform.SetParent(rootGO.transform, false);
                collisionGrp.transform.SetParent(rootGO.transform, false);
                controlSurfaceGrp.transform.SetParent(rootGO.transform, false);

                //Create First Engine
                GameObject      engineGO = new GameObject("Engine", typeof(Airplane_Engine));
                Airplane_Engine engine   = engineGO.GetComponent <Airplane_Engine>();
                controller.engines.Add(engine);
                engineGO.transform.SetParent(rootGO.transform, false);

                //Create the base Airplane
                GameObject defaultAirplane = (GameObject)AssetDatabase.LoadAssetAtPath("Assets/AirplanePhysics/Art/Objects/Airplanes/Indie-Pixel_Airplane/IndiePixel_Airplane.fbx", typeof(GameObject));
                if (defaultAirplane)
                {
                    GameObject.Instantiate(defaultAirplane, graphicsGrp.transform);
                }
            }

            //Select the Airplane Setup
            Selection.activeGameObject = rootGO;
        }