GetInstance() public method

public GetInstance ( Vector3 position = newVector3() ) : Transform
position Vector3
return Transform
示例#1
0
    // Start is called before the first frame update
    new void Start()
    {
        _anim = GetComponent <Animator>();
        base.Start();
        _machine.RegisterState(new Enemy_5_PartolState("partol", this));
        _machine.RegisterState(new Enemy_5_AttackState("attack", this));
        _machine.ChangeState("partol");
        _hurtcontroller._DieCallBack = () => {
            GetComponent <BoxCollider2D>().enabled = false; GetComponent <Rigidbody2D>().gravityScale = 0;
            _anim.SetBool("walk", false);
            _anim.SetBool("run", false);
            _anim.SetTrigger("die");
            trigger.enabled = false;
            Destroy(gameObject, 1.5f);
        };
        _hurtcontroller._HurtCallBack = new HurtCallBack(() => {
            if (_machine.m_curretstate != _machine.GetState("attack"))
            {
                _machine.ChangeState("attack");
            }

            GameObject temp2 = GameObjectPool.GetInstance().GetGameObject("主角攻击特效", transform.position, Quaternion.identity);

            GameObjectPool.GetInstance().ReleaseGameObject("主角攻击特效", temp2, 0.5f);
        });
    }
示例#2
0
    HexSubMapView CreateSubMapView(int x, int y)
    {
#if UNITY_EDITOR
        if (MapEditorEntry.Instance != null)
        {
            return(CreateSubMapViewInEditor(x, y));
        }
#endif
        HexSubMapView sub      = null;
        var           cachedGo = GameObjectPool.GetInstance().WithdrawGo(MapPrefabDef.MAP_SUB_VIEW);
        if (null == cachedGo)
        {
            sub = Instantiate(subMapViewTemplate);
            LogModule.WarningLog("HexSubMapView Allocated!");
        }
        else
        {
            sub = cachedGo.GetComponent <HexSubMapView>();
        }

        sub.name = string.Format("({0}, {1})", x, y);
        //sub.tileTmpDict = App.MapTileLoader.TileTmpDict;
        sub.hex              = hex;
        sub.layout           = Layout;
        sub.xIdx             = x;
        sub.yIdx             = y;
        sub.transform.parent = transform;
        return(sub);
    }
示例#3
0
    // Start is called before the first frame update

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Player")
        {
            GameObjectPool.GetInstance().ReleaseGameObject(gameObject.name.Split('(')[0], gameObject, 0);
        }
    }
示例#4
0
    new void Start()
    {
        base.Start();


        _hurtcontroller._DieCallBack = new DieCallBack(() => {
            _anim.SetTrigger("disappear");
            CancelInvoke();
            Timer.Register(1, () => { transform.position = new Vector3(diePos.position.x, diePos.position.y + 15); _anim.SetTrigger("die"); GetComponent <BoxCollider2D>().enabled = false; Timer.Register(0.5f, () => { transform.DOMoveY(diePos.position.y, 0.5f).SetEase(Ease.Linear); Timer.Register(0.5f, () =>
                    {
                        AudioManager._instance.PlayBgm("普通");
                        DOTween.Shake(() => game.Scene._instance.VirtualCamera.GetComponent <CinemachineCameraOffset>().m_Offset, x => game.Scene._instance.VirtualCamera.GetComponent <CinemachineCameraOffset>().m_Offset = x, 0.3f, 1f);
                    }); }); });
            Timer.Register(4.5f, () => {
                _anim.SetTrigger("diedisappear"); game.Scene._instance.ChangeCamera(0); DashBook.SetActive(true); BossTrigger.SetActive(false);
            });
            Destroy(gameObject, 5);
        });
        _hurtcontroller._HurtCallBack = new HurtCallBack(() => {
            GameObject temp2 = GameObjectPool.GetInstance().GetGameObject("主角攻击特效", transform.position, Quaternion.identity);


            GameObjectPool.GetInstance().ReleaseGameObject("主角攻击特效", temp2, 0.5f);
            if (_anim.IsAnim("下冲出现"))
            {
                if (NextTimer != null)
                {
                    NextTimer.Cancel();
                }
                ReleaseSkill();
            }
        });
    }
示例#5
0
    int mAutoFight = 1;//the value 1 is AutoFight
    void Awake()
    {
        GameObject tbattleRoot = GameObjectCreater.CreateGo("BattleRoot");

        mEmb = transform.GetComponent <Embattling>();
        GameObjectPool.GetInstance().root = tbattleRoot;

        mSquadDataList    = new List <SquadData>();
        mSquadGameObjDict = new Dictionary <int, GameObject>();

        mBattleSceneConfig = TableManager.GetSceneClassByID(1)[0];
        StartCoroutine(AssetLoadManager.LoadFromResource(mPosPath, GeneratePos));

        //EventManager.GetInstance().AddEventListener(EventId.LoadSquad, LoadSquad);
        EventManager.GetInstance().AddEventListener(EventId.StartBattle, StartBattle);
        //EventManager.GetInstance().AddEventListener(EventId.StartFight, StartFight);
        //EventManager.GetInstance().AddEventListener(EventId.ReceiveFight, ReceiveFight);
        //EventManager.GetInstance().AddEventListener(EventId.SendMarch, SendMerch);
        EventManager.GetInstance().AddEventListener(EventId.UseSkill, UseSkill);
        EventManager.GetInstance().AddEventListener(EventId.AutoFight, AutoFight);


        EventManager.GetInstance().AddEventListener(EventId.ReceiveBattleInfor, ReceiveBattleInfor);
        EventManager.GetInstance().AddEventListener(EventId.ReceiveSquadPosInfor, ReceivePosList);
        EventManager.GetInstance().AddEventListener(EventId.ReceiveCommandPursue, ReceiveCommandPursue);
        EventManager.GetInstance().AddEventListener(EventId.ReceivePrepareForAttack, ReceivePrepareForAttack);
        EventManager.GetInstance().AddEventListener(EventId.ReceiveObjGetHurt, ReceiveObjGetHurt);
        EventManager.GetInstance().AddEventListener(EventId.ReceiveSkill, ReceiveSkill);
        EventManager.GetInstance().AddEventListener(EventId.ReceiveBattleEnd, ReceiveBattleEnd);
        //EventManager.GetInstance().AddEventListener(EventId.ReceiveUpdateMarchMsg, ReceiveSendMarch);

        LoadSquad(null);
        //GetBattlerInfor();
    }
示例#6
0
    /// <summary>
    /// 发射冰冻攻击
    /// </summary>
    private void Ice_Shoot()
    {
        GameObject IceProjectile = GameObjectPool.GetInstance().GetObj("IceProjectile", IceProjectile_Pf);

        IceProjectile.transform.position = transform.position;
        IceProjectile.GetComponent <IceProjectile>().Init(this);
    }
    void Awake()
    {
        GameObject tbattleRoot = GameObjectCreater.CreateGo("BattleRoot");

        GameObjectPool.GetInstance().root = tbattleRoot;

        mCampRedSquadList  = new List <GameObject>();
        mCampBlueSquadList = new List <GameObject>();

        mSquadSpace = 30;
        mUnitSpace  = 4;

        mTemRedRowCount      = 3;
        mTemRedSquadNumbers  = 6;
        mTemBlueRowCount     = 3;
        mTemBlueSquadNumbers = 6;

        mBattleSceneConfig = TableManager.GetSceneClassByID(100001)[0];

        mTemRedBornPos  = SetPosition(mBattleSceneConfig.GetAttackPosXbyIndex(0), mBattleSceneConfig.GetAttackPosZbyIndex(0));
        mTemBlueBornPos = SetPosition(mBattleSceneConfig.GetDefencePosXbyIndex(0), mBattleSceneConfig.GetDefencePosZbyIndex(0));

        StartCoroutine(LoadUnitAssets());

        EventManager.GetInstance().AddEventListener(EventId.LoadSquad, LoadSquad);
        EventManager.GetInstance().AddEventListener(EventId.StartBattle, StartBattleTest);
    }
示例#8
0
    // Update is called once per frame
    void Update()
    {
        if (Random.Range(0, 100) <= bubble_create_speed)
        {
            if (Random.Range(0, 2) < 0.5f)
            {
                y = Random.Range(0, 1);
                y = (y < 0.5f) ? create_position_y: -create_position_y;
                x = Random.Range(-create_position_x, create_position_x);
            }
            else
            {
                x = Random.Range(0, 2);
                x = (x < 0.5f) ? create_position_x : -create_position_x;
                y = Random.Range(-create_position_y, create_position_y);
            }


            GameObjectPool.GetInstance().Object_Instantiate(bubble, x, y, 0);
        }
        if (bubble_create_speed < bubble_create_speed_max)
        {
            bubble_create_speed += 0.0002f;
        }
        //print(bubble_create_speed);
    }
示例#9
0
    public void  Mobile_Sword_Shoot()
    {
        if (!isOnWall && Sword.GetComponent <SwordCtr>().isCanSingal)
        {
            if (PlayerInfoController._instance.pi.mp >= 30)
            {
                pic.MinusMP(30);
            }
            else
            {
                return;
            }

            Sword.GetComponent <SwordCtr>().Skill(AttackType.单剑发射);


            if (!isGround)
            {
                Inputable          = false;
                _rigi.velocity     = Vector2.zero;
                _rigi.gravityScale = 0;
            }
            Timer.Register(0.2f, () =>
            {
                GameObject temp2 = GameObjectPool.GetInstance().GetGameObject("飞剑枪火特效", transform.position + new Vector3(transform.right.x * 4, -0.7f, 0), Quaternion.Euler(0, -90, 90));
                GameObjectPool.GetInstance().ReleaseGameObject("飞剑枪火特效", temp2, 1.5f);
                Timer.Register(0.25f, () =>
                {
                    Inputable          = true;
                    _rigi.gravityScale = _gravityscale;
                });
            });
        }
    }
示例#10
0
    //初始化游戏基础
    static public void InitGameBase()
    {
        //设置Log
        Application.logMessageReceived         += OnLog;
        Application.logMessageReceivedThreaded += OnLog;
        //初始化游戏引擎的一些设置
        GameSettings.OnInit();
        // MVC
        GameFacade.GetInstance().OnInit();
        // 场景管理
        mSceneManager = MySceneManager.GetInstance();
        mSceneManager.OnInit();
        //添加全局FPS组件
        Main.Instance.AddMainComponent <ShowFPS>();
        //添加全局InGameLog组件
        Main.Instance.AddMainComponent <InGameLog>();
        // 对象池管理
        GameObject poolRoot = new GameObject("GameObjectPool");

        poolRoot.transform.SetParent(Main.Instance.transform);
        GameObjectPool.GetInstance().root = poolRoot;
        //Network
        NetManager.GetInstance().OnInit();
        //Add temp entrance.
        Main.Instance.AddMainComponent <TempEntrance>();

        initState = GameInitState.GameBaseInited;
    }
示例#11
0
    public void Mobile_Jump_Down()
    {
        if (!Inputable)
        {
            return;
        }

        if (isOnWall || isGround || (_jumpindex < _maxjumpindex))
        {
            if (_jumpindex == 1 && !isOnWall)
            {
                if (!PlayerInfoController._instance.pi.SkillDic["doublejump"])
                {
                    return;
                }
            }

            GameObject temp = GameObjectPool.GetInstance().GetGameObject("跳跃灰尘", transform.position - new Vector3(0, 1f, 0), Quaternion.identity);

            GameObjectPool.GetInstance().ReleaseGameObject("跳跃灰尘", temp, 1.5f);

            _rigi.velocity  = Vector2.zero;
            ispressjump     = true;
            isjumpstate     = true;
            _rigi.velocity += new Vector2(0, _jumpspeed);
        }
    }
示例#12
0
    // key down 计时  按下的时间 如果超过最大时间 直接按照最大高度起跳
    // key up 判断 是否超过最大时间 如果超过的话  什么都不做  否则 按照按下的时间 进行跳跃
    void Jump()
    {
        if (isjumpstate)
        {
            if (_jumpindex == 1 && !isOnWall)
            {
                if (!PlayerInfoController._instance.pi.SkillDic["doublejump"])
                {
                    return;
                }
                GameObject temp = GameObjectPool.GetInstance().GetGameObject("二段跳特效", transform);
                AudioManager._instance.PlayAudio("二段跳");
                temp.transform.localPosition = new Vector3(-0.5f, -3, 0);
                GameObjectPool.GetInstance().ReleaseGameObject("二段跳特效", temp, 1.5f);
            }
            _rigi.gravityScale = _gravityscale;
            AudioManager._instance.PlayAudio("跳跃");

            _jumpindex++;

            if (isOnWall && !isGround)
            {
                if (horizontal > 0)
                {
                    StartCoroutine(MoveControlRight());
                }
                if (horizontal < 0)
                {
                    StartCoroutine(MoveControlleft());
                }
                _rigi.velocity = new Vector2(-transform.right.x * 5, _rigi.velocity.y);
            }
            isjumpstate = false;
        }
    }
示例#13
0
    public new void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Player")
        {
            if (collision.gameObject.transform.position.x > transform.position.x)
            {
                collision.gameObject.transform.rotation = Quaternion.Euler(0, 180, 0);
            }
            else
            {
                collision.gameObject.transform.rotation = Quaternion.identity;
            }
            collision.gameObject.GetComponent <PlayerHurtTrigger>()._hurtcontroller.GetHurt(1);
        }
        base.OnTriggerEnter2D(collision);
        if (collision.gameObject.layer == LayerMask.NameToLayer("ground") && _machine.NowStateIs("dashdown") && !(_machine.GetState("dashdown") as FishBoss_DashDownState).isProduce)
        {
            DOTween.Shake(() => game.Scene._instance.VirtualCamera.GetComponent <CinemachineCameraOffset>().m_Offset, x => game.Scene._instance.VirtualCamera.GetComponent <CinemachineCameraOffset>().m_Offset = x, 0.3f, 1f);
            Debug.Log("sb!");
            (_machine.GetState("dashdown") as FishBoss_DashDownState).isProduce = true;
            GameObject temp = GameObjectPool.GetInstance().GetGameObject("DashEffect", new Vector3(transform.position.x, dashpos[0].position.y) + new Vector3(0, 3.5f), Quaternion.identity);

            GameObjectPool.GetInstance().ReleaseGameObject("DashEffect", temp, 1);

            GameObject temp1 = GameObjectPool.GetInstance().GetGameObject("DashAttack", new Vector3(transform.position.x, dashpos[0].position.y) + new Vector3(0, 0.25f), Quaternion.identity);
            temp1.transform.rotation = Quaternion.identity;
            GameObjectPool.GetInstance().ReleaseGameObject("DashAttack", temp1, 1);

            GameObject temp2 = GameObjectPool.GetInstance().GetGameObject("DashAttack", new Vector3(transform.position.x, dashpos[0].position.y) + new Vector3(0, 0.25f), Quaternion.identity);
            temp2.transform.rotation = Quaternion.Euler(0, 180, 0);
            GameObjectPool.GetInstance().ReleaseGameObject("DashAttack", temp2, 1);
        }
    }
    SpriteRenderer GetAMark()
    {
        SpriteRenderer mark = GameObjectPool.GetInstance().SpawnGo(markTemplate).GetComponent <SpriteRenderer>();

        mark.transform.parent = markRoot;
        mark.gameObject.SetActive(true);
        return(mark);
    }
示例#15
0
    //子弹消失的方法
    IEnumerator DelayDisable(float time)
    {
        //等待三秒
        yield return(new WaitForSeconds(time));

        //调用单例中向对象池里面存对象的方法
        GameObjectPool.GetInstance().MyDisable(gameObject);
    }
示例#16
0
 public void InstanteEffect()
 {
     if (Stage == 2)
     {
         GameObject temp = GameObjectPool.GetInstance().GetGameObject("SecondAirAttack", new Vector2(transform.position.x - 2.5f, effect.position.y + 5), Quaternion.identity);
         GameObjectPool.GetInstance().ReleaseGameObject("SecondAirAttack", temp, 1);
     }
 }
示例#17
0
    public void AirAttackEffect()
    {
        GameObject temp2 = GameObjectPool.GetInstance().GetGameObject("风刃", WindAttackPos.position, Quaternion.identity);
        Vector3    pos   = player.transform.position - transform.position;

        pos.z = 0;
        temp2.transform.right = pos;
        GameObjectPool.GetInstance().ReleaseGameObject("风刃", temp2, 2f);
    }
示例#18
0
 public void OnDashReadyEnter()
 {
     Inputable          = false;
     _rigi.gravityScale = 0;
     if (GatherEffect == null || !GatherEffect.activeSelf)
     {
         GatherEffect = GameObjectPool.GetInstance().GetGameObject("蓄力特效", transform.position + new Vector3(transform.right.x * 0.5f, 0.5f, 0), transform.rotation);
     }
 }
示例#19
0
    /// <summary>
    /// 发射火焰攻击
    /// </summary>
    private void Fire_Shoot()
    {
        //生成子弹Pf
        GameObject FireProjectile = GameObjectPool.GetInstance().GetObj("FireProjectile", FireProjectile_Pf);

        FireProjectile.transform.position = transform.position;
        //初始化子弹
        FireProjectile.GetComponent <FireProjectile>().Init(this);
    }
示例#20
0
    public void ShootWaterBall()
    {
        AudioManager._instance.PlayAudio("水球");
        DOTween.Shake(() => game.Scene._instance.VirtualCamera.GetComponent <CinemachineCameraOffset>().m_Offset, x => game.Scene._instance.VirtualCamera.GetComponent <CinemachineCameraOffset>().m_Offset = x, 0.3f, 1f);
        GameObject temp = GameObjectPool.GetInstance().GetGameObject("水球", shootpos.position, shootpos.rotation);

        temp.transform.right = (player.transform.position - transform.position).normalized;
        GameObjectPool.GetInstance().ReleaseGameObject("水球", temp, 1);
    }
示例#21
0
    public void ProduceArrow()
    {
        GameObject temp = GameObjectPool.GetInstance().GetGameObject("Arrow", Arrow[index].position, Quaternion.identity);

        GameObjectPool.GetInstance().ReleaseGameObject("Arrow", temp, 2f);
        temp.transform.right = player.transform.position - temp.transform.position;
        index++;
        index %= Arrow.Length;
    }
示例#22
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.layer == 8)
        {
            Destroy(gameObject);

            GameObject temp3 = GameObjectPool.GetInstance().GetGameObject("小火", transform.position + new Vector3(0, 0.25f, 0), Quaternion.identity);
            GameObjectPool.GetInstance().ReleaseGameObject("小火", temp3, 1f);
        }
    }
示例#23
0
    public void OnFallExit()
    {
        if (isGround)
        {
            GroundEffect = GameObjectPool.GetInstance().GetGameObject("落地特效", transform.position + new Vector3(0, -0.5f, 0), transform.rotation);

            GameObjectPool.GetInstance().ReleaseGameObject("落地特效", GroundEffect, 1f);
            AudioManager._instance.PlayAudio("落地");
        }
    }
示例#24
0
    public override void CreateObject()
    {
        //random position
        float newPosition_y = Random.Range(-Sphere_Radius, Sphere_Radius);
        float new_radius    = Mathf.Sqrt(Sphere_Radius * Sphere_Radius - newPosition_y * newPosition_y);
        float newPosition_x = Random.Range(-new_radius, new_radius);
        float newPosition_z = Mathf.Sqrt(new_radius * new_radius - newPosition_x * newPosition_x);

        //
        object_cur[0] = GameObjectPool.GetInstance().Object_Instantiate(object_prefeb, newPosition_x, newPosition_y, newPosition_z, Quaternion.identity, -1);
    }
示例#25
0
    //void InitiateLand()
    //{
    //    //start at x=-10
    //    rightIndex_x = -10;
    //    rightIndex_y = 0;

    //    for (; rightIndex_x <= rightLimit; rightIndex_x++)
    //    {
    //        for (rightIndex_z = 0; rightIndex_z <= landWidth + 1;)
    //        {
    //            if (rightIndex_z == 0 || rightIndex_z == landWidth + 1)
    //            {
    //                GameObjectPool.GetInstance().Object_Instantiate(LandCube, rightIndex_x, 1, rightIndex_z);
    //            }
    //            GameObjectPool.GetInstance().Object_Instantiate(LandCube, rightIndex_x, rightIndex_y, rightIndex_z);
    //            rightIndex_z++;
    //        }
    //    }
    //}

    void InitiateLand()
    {
        //start at x=-10
        rightIndex_x = -10;
        //rightIndex_y = 0;
        for (; rightIndex_x <= rightLimit;)
        {
            GameObjectPool.GetInstance().Object_Instantiate(LandCube_X_5, rightIndex_x, 0, 0);
            rightIndex_x += 5;
        }
    }
示例#26
0
 void DeathTrigger()                 // Activated by Death Triggers, also called on Reset and LevelComplete
 {
     // spawn a death particle
     deathParticlePool.GetInstance(thisTransform.position);
     thisTransform.rotation = Quaternion.identity;                                   // Reset rotation, velocity, etc
     rb2D.velocity          = Vector2.zero;
     rb2D.angularVelocity   = 0f;
     ChangeDirections(1);                                                                                    // Make sure chip is facing forwards
     // Disable this gameObject
     chipPool.ReleaseInstance(thisTransform);
 }
 public void DestroyBlocks()
 {
     foreach (var item in blocks)
     {
         if (item.Value != null)
         {
             GameObjectPool.GetInstance().RecycleGo(blockTmp.name, item.Value.gameObject);
         }
     }
     blocks.Clear();
 }
 public void DestroyTiles()
 {
     foreach (var item in tiles)
     {
         if (item.Value != null)
         {
             //item.Value.OnRecycle();
             GameObjectPool.GetInstance().RecycleGo(item.Value.gameObject.name, item.Value.gameObject);
         }
     }
     tiles.Clear();
 }
示例#29
0
    public void Produce()
    {
        if (SmallBeeAmount >= MaxSmallBeeAmount)
        {
            return;
        }

        SmallBeeAmount++;
        GameObject temp2 = GameObjectPool.GetInstance().GetGameObject("小蜜蜂", transform.position, Quaternion.identity);

        temp2.GetComponent <SmallEnemy_4_Controller>().father = this;
    }
示例#30
0
    // Update is called once per frame
    void Update()
    {
        this.transform.Translate(bubble_direction * bubble_speed);

        float x = this.transform.position.x;
        float y = this.transform.position.y;

        if (x >= bubble_disable_x || x <= -bubble_disable_x || y >= bubble_disable_y || y <= -bubble_disable_y)
        {
            GameObjectPool.GetInstance().Object_Disable(this.gameObject);
        }
    }