コード例 #1
0
 public void CreateDestroyEffect(Unit caster, Missile missile, GameObject prefab)
 {
     if (prefab != null)
     {
         Gamef.Instantiate(prefab, missile.transform.position, missile.transform.rotation);
     }
 }
コード例 #2
0
        //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;
            }
        }
コード例 #3
0
    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;
        }
    }
コード例 #4
0
    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);
        }
    }
コード例 #5
0
 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());
 }
コード例 #6
0
 protected override void Start()
 {
     Debug.Log("哦豁,您成功释放了生命恢复技能!");
     // 生命恢复速度
     Caster.attributes.SPRegenerationRate.Bonus += Data.Params[0];
     tmp = Gamef.Instantiate(skillPrefab, SpawnTransform.position, new Quaternion());
 }
コード例 #7
0
    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);
    }
コード例 #8
0
    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);
    }
コード例 #9
0
    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);
    }
コード例 #10
0
    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);
    }
コード例 #11
0
    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);
    }