コード例 #1
0
 private IEnumerator UpdateByFrameCoroutine()
 {
     foreach (var t in MultiplayerStatic.transforms)
     {
         MultiplayerStatic.UpdateByFrame(t.Key);
         yield return(null);
     }
 }
コード例 #2
0
    private static void RefreshTTL(string id)
    {
        var ttl = MultiplayerStatic.GetTTLById(id);

        if (ttl == -1)
        {
            return;
        }
        TTLDictionary[id] = TTL;
    }
コード例 #3
0
    private static int ReduceTTL(string id)
    {
        var ttl = MultiplayerStatic.GetTTLById(id);

        if (ttl == -1)
        {
            return(-1);
        }
        ttl -= 1;
        if (ttl < 0)
        {
            ttl = 0;
        }
        TTLDictionary[id] = ttl;
        return(ttl);
    }
コード例 #4
0
    public static void OnPositionListener()
    {
        if (message == null)
        {
            return;
        }
        if (message.type != MessageType.Position)
        {
            return;
        }
        var m = message;

        message = null;
        PositionMessage positionMessage = JsonUtility.FromJson <PositionMessage>(m.message);

        MultiplayerStatic.UpdatePositionById(positionMessage.id, positionMessage.name, positionMessage.position);
    }
コード例 #5
0
    public static void UpdateByFrame(string id)
    {
        var       ttl       = ReduceTTL(id);
        Target    target    = MultiplayerStatic.GetTargetById(id);
        Transform transform = MultiplayerStatic.GetTransformById(id);

        if (ttl == 0)
        {
            RemovePlayer(id, transform);
        }
        if (target == null || transform == null)
        {
            return;
        }
        MultiplayerStatic.Animate(transform, target);
        MultiplayerStatic.UpdateTextPosition(transform);
        var   updatedPosition = Vector3.SmoothDamp(transform.position, target.position, ref target.velocity, smoothTime);
        float updatedYAngle   = Mathf.SmoothDampAngle(transform.eulerAngles.y, target.yAngle, ref target.angularVelocity, smoothTime);

        transform.rotation = Quaternion.Euler(0, updatedYAngle, 0);
        transform.position = updatedPosition;
    }
コード例 #6
0
    }    // Debug

    public static void SendPositionDebug(string name, PositionStructure structure)
    {
        structure.z += 2f;
        MultiplayerStatic.UpdatePositionById("1", "Ratto", structure);
    }