Exemplo n.º 1
0
        public ReplicationCreateProjectilePacket Create(Projectile p)
        {
            var status = new ProjectileStatus()
            {
                ID             = p.ID,
                Position       = p.Position,
                FinalPosition  = p.FinalPosition,
                LifeTimeMillis = (short)(p.LifeTime * 1000),
                MoveTimeMillis = (short)(p.MoveTime * 1000),
            };

            return(new ReplicationCreateProjectilePacket(status));
        }
Exemplo n.º 2
0
        Projectile CreateProjectile(ProjectileStatus status)
        {
            //Debug.Log($"create projectile id={status.ID} ts={TimeUtils.NowTimestamp}");

            var id = status.ID;

            Debug.Assert(projectileTable.ContainsKey(id) == false, $"projectile={id} already exists in projectile table");
            var projectile = Instantiate(prefab_projectile);

            projectileTable[id] = projectile;
            projectile.transform.SetParent(transform);
            projectile.id = id;
            projectile.transform.position = status.Position.ToVector3();
            projectile.finalPosition      = status.FinalPosition.ToVector3();
            projectile.velocity           = status.Direction.ToVector3() * Config.ProjectileSpeed;
            projectile.moveTime           = status.MoveTimeMillis * 0.001f;
            projectile.lifeTime           = status.LifeTimeMillis * 0.001f;
            projectile.Subscribe();
            return(projectile);
        }