void CreateMeshObj(XWeaponTrail owner, Material material)
        {
            GameObject obj = new GameObject("_XWeaponTrailMesh:" + "|material:" + material.name);

            obj.layer = owner.gameObject.layer;
            obj.AddComponent <MeshFilter>();
            obj.AddComponent <MeshRenderer>();

            obj.transform.position = Vector3.zero;
            obj.transform.rotation = Quaternion.identity;


            MeshRenderer Meshrenderer;

            _meshFilter  = (MeshFilter)obj.GetComponent(typeof(MeshFilter));
            Meshrenderer = (MeshRenderer)obj.GetComponent(typeof(MeshRenderer));
#if UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8
            Meshrenderer.castShadows = false;
#else
            Meshrenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
#endif
            Meshrenderer.receiveShadows = false;
            Meshrenderer.GetComponent <Renderer>().sharedMaterial = material;
            Meshrenderer.sortingLayerName = _owner.SortingLayerName;
            Meshrenderer.sortingOrder     = _owner.SortingOrder;
            _meshFilter.sharedMesh        = new Mesh();
        }
 public VertexPool(Material material, XWeaponTrail owner)
 {
     VertexTotal      = VertexUsed = 0;
     VertCountChanged = false;
     _owner           = owner;
     if (owner.UseWith2D)
     {
         CreateMeshObj(owner, material);
     }
     else
     {
         _mesh2d = new Mesh();
     }
     _material = material;
     InitArrays();
     IndiceChanged = ColorChanged = UVChanged = UV2Changed = VertChanged = true;
 }
    private void Awake()
    {
        m_Material = new Material(m_Material);
        MeshRenderer renderer = GetComponentInChildren <MeshRenderer>();

        Material[] oriMats = renderer.materials;
        Material[] mats    = new Material[oriMats.Length + 1];
        for (int i = 0; i < oriMats.Length; ++i)
        {
            mats[i] = oriMats[i];
        }

        mats[mats.Length - 1] = m_Material;
        renderer.materials    = mats;

        m_Trail            = GetComponentInChildren <XftWeapon.XWeaponTrail>();
        m_TrailEnableTimer = m_TrailEnableTime;
        if (m_TrailEnableTimer > 0.0f)
        {
            m_Trail.gameObject.SetActive(false);
        }
    }