コード例 #1
0
ファイル: ObjectPool.cs プロジェクト: raywind/ObjectPooling
    public static GameObject PhotonRpcInstantiateAsChild(string prefabPath, Vector3 position, Quaternion rotation, object[] data, int parentTokenId)
    {
        InstantiationData i = InstantiationData(prefabPath, position, rotation, data);

        i.PoolType = PoolType.RPC;

        var g = ObjectPoolManager.Instantiate(i);

        g.transform.parent = ManagedObjects.Find(parentTokenId).transform;
        ObjectPoolRpcManager.InstantiateAsChild(i, parentTokenId);
        return(g);
    }
コード例 #2
0
ファイル: ObjectPool.cs プロジェクト: raywind/ObjectPooling
    private static bool TryGetId(out int Id)
    {
        bool foundVal = false;
        int  returnId = PhotonNetwork.player.ID * MAX_ITEMS + itemsCreated % (MAX_ITEMS);

        if (ManagedObjects.Find(returnId) == null)
        {
            Id       = returnId;
            foundVal = true;
        }
        else
        {
            Id       = -1;
            foundVal = false;
        }

        if (++itemsCreated >= MAX_ITEMS)
        {
            itemsCreated = 0;
        }
        return(foundVal);
    }
コード例 #3
0
ファイル: ObjectPool.cs プロジェクト: raywind/ObjectPooling
 public static GameObject Find(int tokenId)
 {
     return(ManagedObjects.Find(tokenId));
 }