public void CreateDestroyEffect(Unit caster, Missile missile, GameObject prefab) { if (prefab != null) { Gamef.Instantiate(prefab, missile.transform.position, missile.transform.rotation); } }
//UnitName unit, Vector3 position, Quaternion rotation public static void CreateObject(ProtocolBase protocol) { int start = 0; ProtocolBytes proto = (ProtocolBytes)protocol; proto.GetNameX(start, ref start); UnitName unitName = (UnitName)proto.GetByte(start, ref start); Vector3 pos = ParseVector3(proto, ref start); Quaternion rot = ParseQuaternion(proto, ref start); int unitId = proto.GetByte(start, ref start); bool isLocal = proto.GetByte(start, ref start) == 1; UnitData unitData = Gamef.LoadUnitData(unitName); GameObject prefab = isLocal ? unitData.LocalPrefab : unitData.NetPrefab; GameObject gameObj = Gamef.Instantiate(prefab, pos, rot); //set id Unit unit = gameObj.GetComponent <Unit>(); unit.InitAttributes(unitId); if (unitName == UnitName.Player && isLocal) { CameraGroupController.Instance.ResetTransform(pos, rot); GameCtrl.PlayerUnit = unit; } }
public void StartCreatePlayer(int playerID) { Debug.Log("Player ID = " + playerID); if (GameSceneInfo.Instance == null) { Debug.Log("Null instance"); } else if (GameSceneInfo.Instance.spawnPoints[playerID] == null) { Debug.Log("Null spawnPoint"); } Transform t = GameSceneInfo.Instance.spawnPoints[playerID].transform; if (GameCtrl.IsOnlineGame) { DataSync.CreateObject(UnitName.Player, t.position, t.rotation); } else { UnitData data = Gamef.LoadUnitData(UnitName.Player); Unit unit = Gamef.Instantiate(data.LocalPrefab, t.position, t.rotation).GetComponent <Unit>(); CameraGroupController.Instance.ResetTransform(t.position, t.rotation); GameCtrl.PlayerUnit = unit; } }
public void CreateDestroyEffect(Collider other, Missile missile, GameObject prefab) { if (prefab != null) { Vector3 fwd = missile.transform.forward; if (other != null) { switch (other.gameObject.layer) { case Layer.Unit: fwd = (missile.transform.position - other.transform.position).normalized; break; case Layer.Missile: fwd = (missile.transform.position - other.transform.position).normalized; break; default: RaycastHit hit; Ray ray = new Ray(missile.transform.position - 0.2f * missile.transform.forward, missile.transform.forward); if (Physics.Raycast(ray, out hit, 0.25f, 0x1)) { fwd = hit.normal; } break; } } Quaternion rot = Quaternion.LookRotation(fwd); Gamef.Instantiate(prefab, missile.transform.position, rot); } }
protected override void Start() { Debug.Log("哦豁,您成功释放了速度提升技能!"); original = Caster.attributes.MaxV_bonus; Caster.attributes.MaxV_bonus += Data.Params[0]; tmp = Gamef.Instantiate(skillPrefab, SpawnTransform.position, new Quaternion()); }
protected override void Start() { Debug.Log("哦豁,您成功释放了生命恢复技能!"); // 生命恢复速度 Caster.attributes.SPRegenerationRate.Bonus += Data.Params[0]; tmp = Gamef.Instantiate(skillPrefab, SpawnTransform.position, new Quaternion()); }
protected override void Shoot() { Vector3 dir = Gamef.GenerateRandomDirection(Caster.transform.forward, Caster.RuntimeAccuracy); tmp = Gamef.Instantiate(fireballPrefab, SpawnTransform.position, Quaternion.LookRotation(dir)); tmp.GetComponent <Missile>().Init(Caster, AimController.Instance.TargetForStrafeSkill, this); }
protected override Missile Shoot() { Vector3 dir = Gamef.GenerateRandomDirection(Caster.SpawnTransform.forward, Caster.RuntimeAccuracy, random); tmp = Gamef.Instantiate(missilePrefab, SpawnTransform.position, Quaternion.LookRotation(dir)); Missile missile = tmp.GetComponent <Missile>(); missile.Init(Caster, Target, this); Caster.RuntimeAccuracy -= Data.AccuracyHeatupSpeed; return(missile); }
protected override Missile Shoot() { Vector3 dir = Gamef.GenerateRandomDirection(Caster.SpawnTransform.forward, Caster.RuntimeAccuracy, random); tmp = Gamef.Instantiate(missilePrefab, SpawnTransform.position, Quaternion.LookRotation(dir)); Missile missile = tmp.GetComponent <Missile>(); missile.Init(Caster, Target, this, new MissileHitBasicHandler(), new FireBallEffectHandler()); //Debug.Log("Strafe Accuracy : " + Caster.RuntimeAccuracy); Caster.RuntimeAccuracy -= Data.AccuracyHeatupSpeed; return(missile); }
protected override Missile Shoot() { Debug.Log(string.Format("ID {0} test burst start at {1}", Caster.attributes.ID, Gamef.SystemTimeInMillisecond)); Vector3 dir = Gamef.GenerateRandomDirection(Caster.SpawnTransform.forward, Caster.RuntimeAccuracy, random); tmp = Gamef.Instantiate(missilePrefab, SpawnTransform.position, Quaternion.LookRotation(dir)); Missile missile = tmp.GetComponent <Missile>(); missile.Init(Caster, Target, this, new MissileHitBasicHandler(), new FireBallEffectHandler()); //Debug.Log("Strafe Accuracy : " + Caster.RuntimeAccuracy); Caster.RuntimeAccuracy -= Data.AccuracyHeatupSpeed; return(missile); }
protected override Missile Shoot() { Vector3 dir = Gamef.GenerateRandomDirection(Caster.SpawnTransform.forward, Caster.RuntimeAccuracy, random); tmp = Gamef.Instantiate(missilePrefab, SpawnTransform.position, Quaternion.LookRotation(dir)); //if (GameCtrl.IsVR) // Gamef.ControllerVibration(0f, 0.1f, 160, 0.5f, Valve.VR.SteamVR_Input_Sources.RightHand); Missile missile = tmp.GetComponent <Missile>(); missile.Init(Caster, Target, this); //Debug.Log("Strafe Accuracy : " + Caster.RuntimeAccuracy); Caster.RuntimeAccuracy -= Data.AccuracyHeatupSpeed; return(missile); }