コード例 #1
0
 void Wheel_Linkage_for_StaticTrack(int Temp_Direction)
 {
     if (Type == 8 && Temp_Direction == Direction)             // Wheel.
     {
         if (Drive_Wheel_Script)
         {
             Destroy(Drive_Wheel_Script);
         }
         // Lock the wheels.
         if (This_Rigidbody)
         {
             This_Rigidbody.angularDrag = Mathf.Infinity;                  // Constraint spin.
         }
         // Switch the collider.
         MeshCollider[] Temp_MeshColliders = GetComponents <MeshCollider> ();
         if (Temp_MeshColliders.Length != 0)
         {
             if (Wheel_SphereCollider)
             {
                 Destroy(Wheel_SphereCollider);
             }
             foreach (MeshCollider Temp_MeshCollider in Temp_MeshColliders)
             {
                 Temp_MeshCollider.enabled = true;
             }
         }
         // Remove useless script.
         Static_Wheel_CS Temp_Script = GetComponent <Static_Wheel_CS> ();
         if (Temp_Script)
         {
             Destroy(Temp_Script);
         }
     }
 }
コード例 #2
0
    void Create_Static_Wheel(string Temp_Direction, Vector3 Temp_Pos)
    {
        GameObject Temp_Object = Create_GameObject("SprocketWheel", Temp_Direction, Temp_Pos);

        Add_Mesh(Temp_Object);
        if (Invisible_Physics_WheelProp.boolValue == false)
        {
            Add_Colliders(Temp_Object);
        }
        Add_Damage_Control_Script(Temp_Object, Temp_Direction);
        // Static_Wheel_CS script
        Static_Wheel_CS Temp_Script = Temp_Object.AddComponent <Static_Wheel_CS> ();

        Temp_Script.Radius_Offset = Radius_OffsetProp.floatValue;
    }
コード例 #3
0
    void Create_Wheel(string Temp_Direction, Vector3 Temp_Pos, int Temp_Count)
    {
        //Create_Gameobject
        GameObject Temp_Object = new GameObject("SupportWheel_" + Temp_Direction + "_" + Temp_Count);

        Temp_Object.transform.parent        = Parent_Transform;
        Temp_Object.transform.localPosition = Temp_Pos;
        if (Temp_Direction == "R")
        {
            Temp_Object.transform.localRotation = Quaternion.Euler(0.0f, 0.0f, 180.0f);
        }
        else
        {
            Temp_Object.transform.localRotation = Quaternion.Euler(Vector3.zero);
        }
        Temp_Object.layer = 9;          // Ignore eachother.
        // Mesh
        MeshRenderer Temp_MeshRenderer = Temp_Object.AddComponent <MeshRenderer> ();

        Temp_MeshRenderer.material = Wheel_MaterialProp.objectReferenceValue as Material;
        MeshFilter Temp_MeshFilter;

        Temp_MeshFilter      = Temp_Object.AddComponent <MeshFilter> ();
        Temp_MeshFilter.mesh = Wheel_MeshProp.objectReferenceValue as Mesh;
        // SphereCollider
        SphereCollider Temp_SphereCollider;

        Temp_SphereCollider          = Temp_Object.AddComponent <SphereCollider> ();
        Temp_SphereCollider.radius   = Wheel_RadiusProp.floatValue;
        Temp_SphereCollider.material = Collider_MaterialProp.objectReferenceValue as PhysicMaterial;

        if (Static_FlagProp.boolValue == false)             // for Physics Wheel.
        // MeshCollider
        {
            if (Collider_MeshProp.objectReferenceValue != null)
            {
                MeshCollider Temp_MeshCollider;
                Temp_MeshCollider            = Temp_Object.AddComponent <MeshCollider> ();
                Temp_MeshCollider.material   = Collider_MaterialProp.objectReferenceValue as PhysicMaterial;
                Temp_MeshCollider.sharedMesh = Collider_MeshProp.objectReferenceValue as Mesh;
                Temp_MeshCollider.convex     = true;
                Temp_MeshCollider.enabled    = false;
            }
            // Sub MeshCollider
            if (Collider_Mesh_SubProp.objectReferenceValue != null)
            {
                MeshCollider Temp_MeshCollider_Sub;
                Temp_MeshCollider_Sub            = Temp_Object.AddComponent <MeshCollider> ();
                Temp_MeshCollider_Sub.material   = Collider_MaterialProp.objectReferenceValue as PhysicMaterial;
                Temp_MeshCollider_Sub.sharedMesh = Collider_Mesh_SubProp.objectReferenceValue as Mesh;
                Temp_MeshCollider_Sub.convex     = true;
                Temp_MeshCollider_Sub.enabled    = false;
            }
            // Rigidbody
            Rigidbody Temp_Rigidbody = Temp_Object.AddComponent <Rigidbody> ();
            Temp_Rigidbody.mass = Wheel_MassProp.floatValue;
            // HingeJoint
            HingeJoint Temp_HingeJoint;
            Temp_HingeJoint               = Temp_Object.AddComponent <HingeJoint> ();
            Temp_HingeJoint.anchor        = Vector3.zero;
            Temp_HingeJoint.axis          = new Vector3(0.0f, 1.0f, 0.0f);
            Temp_HingeJoint.connectedBody = Parent_Transform.parent.gameObject.GetComponent <Rigidbody> ();
            // Drive_Wheel_CS
            Drive_Wheel_CS Temp_Drive_Wheel_CS;
            Temp_Drive_Wheel_CS            = Temp_Object.AddComponent <Drive_Wheel_CS> ();
            Temp_Drive_Wheel_CS.Radius     = Wheel_RadiusProp.floatValue;
            Temp_Drive_Wheel_CS.Drive_Flag = Drive_WheelProp.boolValue;
            // Wheel_Resize_CS
            if (Wheel_ResizeProp.boolValue)
            {
                Wheel_Resize_CS Temp_Wheel_Resize_CS;
                Temp_Wheel_Resize_CS = Temp_Object.AddComponent <Wheel_Resize_CS> ();
                Temp_Wheel_Resize_CS.ScaleDown_Size = ScaleDown_SizeProp.floatValue;
                Temp_Wheel_Resize_CS.Return_Speed   = Return_SpeedProp.floatValue;
            }
            // Stabilizer_CS
            Temp_Object.AddComponent <Stabilizer_CS> ();
        }
        else             // for Static Wheel
        {
            Static_Wheel_CS Temp_Script = Temp_Object.AddComponent <Static_Wheel_CS> ();
            Temp_Script.Radius_Offset = Radius_OffsetProp.floatValue;
        }
        // Damage_Control_CS
        Damage_Control_CS Temp_Damage_Control_CS;

        Temp_Damage_Control_CS      = Temp_Object.AddComponent <Damage_Control_CS> ();
        Temp_Damage_Control_CS.Type = 8;          // 8 = Wheel in "Damage_Control"
        if (Static_FlagProp.boolValue)
        {
            Temp_Damage_Control_CS.Durability = Mathf.Infinity;
        }
        else
        {
            Temp_Damage_Control_CS.Durability = Wheel_DurabilityProp.floatValue;
        }
        if (Temp_Direction == "L")
        {
            Temp_Damage_Control_CS.Direction = 0;
        }
        else
        {
            Temp_Damage_Control_CS.Direction = 1;
        }
    }