// 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); }); }
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); }
// 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); } }
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(); } }); }
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(); }
/// <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); }
// 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); }
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; }); }); } }
//初始化游戏基础 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; }
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); } }
// 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; } }
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); }
//子弹消失的方法 IEnumerator DelayDisable(float time) { //等待三秒 yield return(new WaitForSeconds(time)); //调用单例中向对象池里面存对象的方法 GameObjectPool.GetInstance().MyDisable(gameObject); }
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); } }
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); }
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); } }
/// <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); }
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); }
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; }
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); } }
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("落地"); } }
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); }
//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; } }
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(); }
public void Produce() { if (SmallBeeAmount >= MaxSmallBeeAmount) { return; } SmallBeeAmount++; GameObject temp2 = GameObjectPool.GetInstance().GetGameObject("小蜜蜂", transform.position, Quaternion.identity); temp2.GetComponent <SmallEnemy_4_Controller>().father = this; }
// 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); } }