public virtual void OnEnable() { GetInstances().Add(this); m_trans = GetComponent <Transform>(); m_rigid = GetComponent <Rigidbody>(); m_bcol = GetComponent <ExampleBulletCollider>(); }
public virtual void OnEnable() { GetInstances().Add(this); m_trans = GetComponent<Transform>(); m_rigid = GetComponent<Rigidbody>(); m_bcol = GetComponent<ExampleBulletCollider>(); }
void Update() { for (int i = 0; i < m_add_index; ++i) { m_entities[m_index++] = m_entities_to_add[i]; m_index %= m_max_entities; } m_add_index = 0; m_work_data.delta_time = Time.deltaTime; // gather hit target data var targets = ExampleBulletCollider.GetInstances(); if (m_work_data.targets.Length < targets.Count) { m_work_data.targets = new HitTarget[Mathf.Max(m_work_data.targets.Length * 2, targets.Count)]; } m_work_data.num_targets = targets.Count; for (int i = 0; i < targets.Count; ++i) { ExampleBulletCollider t = targets[i]; m_work_data.targets[i].position = t.GetTransform().position; m_work_data.targets[i].radius = t.m_hit_radius; m_work_data.targets[i].id = t.m_id; m_work_data.targets[i].collider = t; } m_num_active_tasks = m_num_tasks; if (m_use_multithread) { for (int i = 0; i < m_num_tasks; ++i) { ThreadPool.QueueUserWorkItem(UpdateTask, i); } } else { for (int i = 0; i < m_num_tasks; ++i) { UpdateTask(i); } } }