public void SpawnOne(int meteorType, Vector3 pos) { GameObject newMeteor = Instantiate(Meteorites[meteorType], pos, Quaternion.identity); MeteorBehaviour mScript = newMeteor.GetComponent <MeteorBehaviour>(); mScript.newSpawned = true; mScript.StartingVelocity(-pos); }
private void Awake() { Ins = this; Log = new Log(); ActiveState = new List <PersistState>(); GameOverlay = new GameOverlayDialogState(); FightState = new FightState(); ReplayState = new ReplayState(); NickNameDialogState = new NickNameDialogState(); BattleStatusDialogState = new BattleStatusDialogState(); PlayerDialogState = new PlayerDialogState(); ChatDialogState = new ChatDialogState(); PsdEditDialogState = new PsdEditDialogState(); RoomChatDialogState = new RoomChatDialogState(); LoadingEx = new LoadingEXDialogState(); ItemInfoDialogState = new ItemInfoDialogState(); GunShootDialogStatus = new GunShootDialogStatus(); //面板管理器. DialogStateManager = new MainDialogStateManager(); //顺序排队弹出框. PopupStateManager = new MainPopupStateManager(); //各类游戏数据. GameStateMgr = new GameStateMgr(); UpdateHelper = new UpdateHelper(); AppInfo = new AppInfo(); CombatData = new CombatData(); GameNotice = new GameNotice(); MeteorManager = new MeteorManager(); ScriptMng = new ScriptMng(); SFXLoader = new SFXLoader(); ActionInterrupt = new ActionInterrupt(); BuffMng = new BuffMng(); EventBus = new EventBus(); NetWorkBattle = new NetWorkBattle(); SceneMng = new SceneMng(); FrameSync = new FrameSync(); MeteorBehaviour = new MeteorBehaviour(); DropMng = new DropMng(); //原版相关资源的加载器. MenuResLoader = new MenuResLoader(); SkcLoader = new SkcLoader(); BncLoader = new BncLoader(); FMCLoader = new FMCLoader(); GMBLoader = new GMBLoader(); GMCLoader = new GMCLoader(); DesLoader = new DesLoader(); FMCPoseLoader = new FMCPoseLoader(); DataMgr = new DataMgr(); SfxMeshGenerator = new SfxMeshGenerator(); RoomMng = new RoomMng(); SoundManager = new SoundManager(); ResMng = new ResMng(); DlcMng = new DlcMng(); DontDestroyOnLoad(gameObject); Log.WriteError(string.Format("GameStart AppVersion:{0}", Main.Ins.AppInfo.AppVersion())); }
void Create() { Log = new Log(); LayerManager.Init(); //不受状态机控制,仅打开和关闭的 PersistMgr = PersistDialogMgr.Ins; //面板管理器. DialogStateManager = new MainDialogMgr(); //顺序排队弹出框. PopupStateManager = new MainPopupStateManager(); //各类游戏数据. GameStateMgr = GameStateMgr.Ins; AppInfo = AppInfo.Ins; CombatData = CombatData.Ins; GameNotice = new GameNotice(); MeteorManager = MeteorManager.Ins; ScriptMng = ScriptMng.Ins; ActionInterrupt = ActionInterrupt.Ins; BuffMng = BuffMng.Ins; EventBus = new EventBus(); NetWorkBattle = NetWorkBattle.Ins; SceneMng = SceneMng.Ins; //FrameSyncLocal = FrameSyncLocal.Ins; FrameSyncServer = FrameSyncServer.Ins; MeteorBehaviour = MeteorBehaviour.Ins; DropMng = DropMng.Ins; //原版相关资源的加载器. MenuResLoader = MenuResLoader.Ins; SkcLoader = SkcLoader.Ins; BncLoader = BncLoader.Ins; FMCLoader = FMCLoader.Ins; GMBLoader = GMBLoader.Ins; GMCLoader = GMCLoader.Ins; DesLoader = DesLoader.Ins; FMCPoseLoader = FMCPoseLoader.Ins; SFXLoader = SFXLoader.Ins; AmbLoader = AmbLoader.Ins; DataMgr = DataMgr.Ins; SfxMeshGenerator = SfxMeshGenerator.Ins; RoomMng = RoomMng.Ins; SoundManager = SoundManager.Ins; DlcMng = DlcMng.Ins; PathMng = PathMng.Ins; DownloadManager = DownloadManager.Ins; DontDestroyOnLoad(gameObject); Log.WriteError(string.Format("GameStart AppVersion:{0}", Main.Ins.AppInfo.AppVersion())); }
void SplitAttack(Transform otherPos) { SpawnDestroyEffect(); if (meteorLevel != 0) { GameObject newMeteor0 = Instantiate(meteorSubtype, transform.position + otherPos.transform.right * dist, Quaternion.identity); GameObject newMeteor1 = Instantiate(meteorSubtype, transform.position + otherPos.transform.right * -dist, Quaternion.identity); newMeteor0.transform.position = new Vector3(transform.position.x, 0, transform.position.z); newMeteor1.transform.position = new Vector3(transform.position.x, 0, transform.position.z); MeteorBehaviour nM0 = newMeteor0.GetComponent <MeteorBehaviour>(); MeteorBehaviour nM1 = newMeteor1.GetComponent <MeteorBehaviour>(); Vector3 combDir = otherPos.gameObject.GetComponent <Rigidbody>().velocity; nM0.StartingVelocity(myRB.velocity); nM1.StartingVelocity(combDir); } }
private void OnCollisionEnter(Collision other) { if (other.gameObject.GetComponent <MeteorBehaviour>() != null) { MeteorBehaviour otherScript = other.gameObject.GetComponent <MeteorBehaviour>(); otherScript.DamageMe(maxHealth / 2, transform, false); } if (other.gameObject.GetComponent <PlayerBehaviour>() != null) { PlayerBehaviour playerScript = other.gameObject.GetComponent <PlayerBehaviour>(); playerScript.DamageMe(transform, false); } if (other.gameObject.GetComponent <BulletCheck>() != null) { BulletCheck bulletScript = other.gameObject.GetComponent <BulletCheck>(); DamageMe(bulletScript.damage, other.transform, true); Destroy(other.gameObject); } }
private void Place() { GameObject meteor = new GameObject(options.meteorSprite ? options.meteorSprite.name : "meteor"); meteor.layer = 16; SpriteRenderer spriteRenderer = meteor.AddComponent <SpriteRenderer>(); spriteRenderer.sprite = options.meteorSprite; spriteRenderer.sortingLayerName = "Front"; meteor.AddComponent <PolygonCollider2D>(); Rigidbody2D rigidbody = meteor.AddComponent <Rigidbody2D>(); rigidbody.bodyType = RigidbodyType2D.Kinematic; MeteorBehaviour meteorBehaviour = meteor.AddComponent <MeteorBehaviour>(); TouchHandler touchHandler; switch (options.touchMode) { case MeteorCreatorOptions.TouchMode.Nothing: touchHandler = meteor.AddComponent <NothingOnTouch>(); break; case MeteorCreatorOptions.TouchMode.Die: touchHandler = meteor.AddComponent <DieOnTouch>(); break; case MeteorCreatorOptions.TouchMode.Trigger: touchHandler = meteor.AddComponent <TriggerOnTouch>(); break; } if (options.isMobile) { GameObject path = Instantiate(pathCreator.gameObject); path.name = "Path: " + (options.meteorSprite ? options.meteorSprite.name : "unknown"); PathFollower pathFollower = meteor.AddComponent <PathFollower>(); pathFollower.pathCreator = path.GetComponent <PathCreator>(); pathFollower.fullCycleTime = options.fullCycleTime; pathFollower.offset = options.offsetTime; } else { meteor.AddComponent <Stationary>(); meteor.transform.position = new Vector3(0, 0, 0); } if (options.isRotating) { RotationFollower rotationFollower = meteor.AddComponent <RotationFollower>(); rotationFollower.rotationScript = options.rotationScript; meteor.transform.rotation = Quaternion.Euler(0, 0, options.rotationScript.GetRotation(0f)); } else { meteor.transform.rotation = Quaternion.Euler(0, 0, 0); } if (options.isHunter) { Hunter hunter = meteor.AddComponent <Hunter>(); hunter.properties = options.huntProperties; GameObject zone = Instantiate(huntZone); zone.name = "Hunting Zone: " + (options.meteorSprite ? options.meteorSprite.name : "unknown"); zone.layer = 16; TriggerOnTouch triggerZone = zone.AddComponent <TriggerOnTouch>(); triggerZone.triggerHandlers = new List <Component> { hunter }; EditorUtility.FocusProjectWindow(); } }