Ejemplo n.º 1
0
            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);
                    }
                }
            }
Ejemplo n.º 2
0
    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]);
            }
        }
    }
Ejemplo n.º 3
0
        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);
            }
        }