Exemplo n.º 1
0
 public void CopyFrom(EnemyEmerge e)
 {
     emergeType  = e.emergeType;
     emergeValue = e.emergeValue;
     emergeTime  = e.emergeTime;
 }
Exemplo n.º 2
0
    bool SpwanObjectAt(GameObject obj, Transform parent)
    {
        if (parent == null)
        {
            return(false);
        }
        GameObject swpanObj = null;

        var posProperty = parent.GetComponent <PositionProperty>();

        if (posProperty == null)
        {
            return(false);
        }

        if (posProperty.positionType == EnemySpwanPosition.FixedPosition)
        {
            swpanObj = (GameObject)Instantiate(obj, parent.position, parent.rotation);
            swpanObj.transform.parent = parent.transform;
        }
        else if (posProperty.positionType == EnemySpwanPosition.RandomPosition)
        {
            Vector3 postion = new Vector3(posProperty.GetRandomX(), parent.position.y, parent.position.z);
            swpanObj = (GameObject)Instantiate(obj);
            swpanObj.transform.SetParent(parent);
            swpanObj.transform.position = postion;
        }
        if (swpanObj != null)
        {
            //避免重叠
            float timeFlag = Time.time / 100000;
            timeFlag = timeFlag - Mathf.FloorToInt(timeFlag);
            swpanObj.transform.position += new Vector3(0, 0, -timeFlag);
            //swpanObj.transform. = parent.transform;
            swpanObj.transform.localScale = parent.transform.lossyScale;

            //disable mask
            if (!posProperty.enableMask)
            {
                var mask = swpanObj.transform.FindChild("mask");
                mask.gameObject.SetActive(false);
            }
            EnemyEmerge ee = parent.GetComponent <EnemyEmerge>();
            if (ee != null)
            {
                EnemyEmerge enew = swpanObj.AddComponent <EnemyEmerge>();
                enew.CopyFrom(ee);
                enew.RunEmerge();
            }

            //敌人的属性
            GAFEnemy e = swpanObj.GetComponent <GAFEnemy>();
            if (e == null)
            {
                Debug.Log("Dont have Enemy component!");
                e = swpanObj.AddComponent <GAFEnemy>();
            }

            e.EnhanceByTurn(1 + currentTurn * enhancePerTurn + currentWave * enhancePerWave);
            SortLayer sl = parent.GetComponent <SortLayer>();
            if (sl != null && sl.layerName != "")
            {
                SpriteRenderer[] render = swpanObj.GetComponentsInChildren <SpriteRenderer>();
                if (render != null && render.Length > 0)
                {
                    for (int i = 0; i < render.Length; i++)
                    {
                        render[i].sortingLayerName = sl.layerName;
                    }
                }

                var sortlayer = swpanObj.AddComponent <GAFSortLayer>();
                sortlayer.sortLayerName = sl.layerName;
            }
            //是否能够横向漫游
            EnemyWanderX[] wanders = swpanObj.GetComponents <EnemyWanderX>();
            if (wanders != null && wanders.Length > 0)
            {
                for (int i = 0; i < wanders.Length; i++)
                {
                    if (wanders[i].GetType() == typeof(EnemyWanderRunX))
                    {
                        wanders[i].enabled = posProperty.allowRunX;
                    }
                    else
                    {
                        wanders[i].enabled = posProperty.allowWanderX;
                    }
                    wanders[i].minMovementX = posProperty.minMovementX;
                    wanders[i].maxMovementX = posProperty.maxMovementX;
                }
            }

            //通知GameManager ,产生了敌人
            AddAliveEmeny();
            needCreateEnemy--;
            return(true);
        }
        return(false);
    }
Exemplo n.º 3
0
 public void CopyFrom(EnemyEmerge e)
 {
     emergeType = e.emergeType;
     emergeValue = e.emergeValue;
     emergeTime = e.emergeTime;
 }