void Awake() { m_renderer = GetComponent<BatchRenderer>(); int num = m_renderer.GetMaxInstanceCount(); m_instance_t = new Vector3[num]; m_instance_color = new Color[num]; m_instance_uv = new Vector4[num]; m_instance_time = new float[num]; for (int i = 0; i < num; ++i) { m_instance_t[i] = new Vector3(R(10.0f), R(10.0f), R(10.0f)); m_instance_time[i] = Random.Range(0.0f, 10.0f); } }
void Awake() { m_renderer = GetComponent<BatchRenderer>(); int num = m_renderer.GetMaxInstanceCount(); m_instance_t = new Vector3[num]; m_instance_r = new Quaternion[num]; m_instance_s = new Vector3[num]; Quaternion rot = Quaternion.AngleAxis(45.0f, Vector3.forward); for (int i = 0; i < num; ++i) { Vector3 pos = new Vector3( 0.1f * (i / 256) - 12.8f, Random.Range(-1.5f, -0.1f), 0.1f * (i % 256) - 12.8f); float s = 1.0f + Mathf.Sin((float)i*0.1f) * 0.5f; Vector3 scale = new Vector3(s,s,s); m_instance_t[i] = pos; m_instance_r[i] = rot; m_instance_s[i] = scale; } }
public void RemoveRenderer(BatchRenderer _batchRenderer) { List <string> toBeRemoved = new List <string>(); foreach (var pair in m_materialTable) { List <_Batch> batchList = pair.Value; for (int i = 0; i < batchList.Count; i++) { _Batch batch = batchList[i]; if (batch != null) { if (batch.RemoveUnit(_batchRenderer)) { if (batch.UnitCount() == 0) { batch.Destroy(); batchList.RemoveAt(i); } } } else { batchList.RemoveAt(i); } } if (pair.Value.Count == 0) { toBeRemoved.Add(pair.Key); } } foreach (string name in toBeRemoved) { m_materialTable.Remove(name); } }
public void AddRenderer(BatchRenderer _batchRenderer, int _stablePeriod = -1) { BatchRenderer u = _batchRenderer; _Batch batch; List <_Batch> batchList; if (m_materialTable.TryGetValue(u.m_meshRenderer.sharedMaterial.name, out batchList)) { int i = batchList.Count - 1; while (i >= 0) { batch = batchList[i]; if (batch.VertexCount + _batchRenderer.m_meshFilter.sharedMesh.vertexCount < ushort.MaxValue) { batch.AddUnit(u); break; } --i; } if (i < 0) // all full, need a new batch { batch = new _Batch(this, _stablePeriod); batch.AddUnit(_batchRenderer); batchList.Add(batch); } } else { batch = new _Batch(this, _stablePeriod); batch.AddUnit(u); batchList = new List <_Batch>(); batchList.Add(batch); m_materialTable.Add(u.m_meshRenderer.sharedMaterial.name, batchList); } }
void Awake() { m_renderer = GetComponent <BatchRenderer>(); int num = m_renderer.GetMaxInstanceCount(); m_instance_t = new Vector3[num]; m_instance_r = new Quaternion[num]; m_instance_s = new Vector3[num]; Quaternion rot = Quaternion.AngleAxis(45.0f, Vector3.forward); for (int i = 0; i < num; ++i) { Vector3 pos = new Vector3( 0.1f * (i / 256) - 12.8f, Random.Range(-1.5f, -0.1f), 0.1f * (i % 256) - 12.8f); float s = 1.0f + Mathf.Sin((float)i * 0.1f) * 0.5f; Vector3 scale = new Vector3(s, s, s); m_instance_t[i] = pos; m_instance_r[i] = rot; m_instance_s[i] = scale; } }
void Awake() { m_renderer = GetComponent<BatchRenderer>(); m_renderer.m_flush_on_LateUpdate = false; m_entities = new BulletEntity[m_max_entities]; m_entities_to_add = new BulletEntity[m_max_entities]; m_num_tasks = m_max_entities / m_entities_par_task + (m_max_entities % m_entities_par_task != 0 ? 1 : 0); m_work_data = new WorkData(); m_work_data.targets = new HitTarget[128]; m_task_work_data = new TaskWorkData[m_num_tasks]; }
public Particle2DRenderer(BatchRenderer renderer) { this.renderer = renderer; }
private void OnDestroy() { Bullets = null; Mobs = null; batchRenderer = null; }
void Start() { Bullets = new List <EnemyShot>(); Mobs = new List <Mob>(); batchRenderer = GetComponent <BatchRenderer>(); }
public void AddUnit(BatchRenderer _unit) { m_units.Add(_unit); m_VertexCount += _unit.m_meshFilter.sharedMesh.vertexCount; m_sm.ChangeState(Status.Unstable); }
public FontRenderer(BatchRenderer renderer) { this.renderer = renderer; }