public void Create(Transform parent) { ProjectileData data = ProjectileData.GetProjectileData(m_ID); if (data == null || m_Caster == null) { return; } GameObject go = Resources.Load(data._path) as GameObject; if (go != null) { GameObject obj = Instantiate(go) as GameObject; obj.transform.parent = parent; obj.transform.position = GetPosition(); obj.transform.rotation = GetRotation(); SkProjectile projectile = obj.GetComponent <SkProjectile>(); if (projectile != null) { projectile.SetData(data, m_Caster, m_Emitter, GetTargetTrans(), GetTargetPosition(), m_Index); } EffectLateupdateHelper helper = obj.GetComponent <EffectLateupdateHelper>(); if (null != helper) { helper.Init(m_Emitter); } } }
static void ResetProjectile() { GameObject[] selectedObjArray = Selection.gameObjects; for (int i = 0; i < selectedObjArray.Length; ++i) { Pathea.Projectile.SkProjectile projectile = selectedObjArray[i].GetComponent <Pathea.Projectile.SkProjectile>(); if (null != projectile) { projectile.ResetProjectile(); UnityEditor.EditorUtility.SetDirty(selectedObjArray[i]); } } }
public virtual void SetData(ProjectileData data, Transform caster, Transform emitter, Transform target, Vector3 targetPosition, int index = 0) { //m_Data = data; m_Caster = caster; m_Emitter = emitter; m_Target = target; m_TargetPosition = targetPosition; m_Valid = true; float atk = 0.0f; SkEntity skCaster = m_Caster.GetComponentInParent <SkEntity>(); if (skCaster != null) { SetNet(skCaster._net, false); atk = skCaster.GetAttribute((int)AttribType.Atk); } parentSkEntity = skCaster; SkProjectile skPro = skCaster as SkProjectile; if (skPro != null) { parentSkEntity = skPro.GetSkEntityCaster(); if (parentSkEntity != null) { m_Caster = parentSkEntity.transform; } } SetAttribute((int)AttribType.Atk, m_Atk + atk); if (m_Trajectory != null) { m_Trajectory.SetData(m_Caster, m_Emitter, m_Target, m_TargetPosition, index); } if (null != m_Emitter && !m_Explode) { CheckInTrigger(m_Emitter.position); } }