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); } }