Initial commit: Unity WordConnect project
This commit is contained in:
@ -0,0 +1,56 @@
|
||||
// // ©2015 - 2025 Candy Smith
|
||||
// // All rights reserved
|
||||
// // Redistribution of this software is strictly not allowed.
|
||||
// // Copy of this software can be obtained from unity asset store only.
|
||||
// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// // THE SOFTWARE.
|
||||
|
||||
using System;
|
||||
|
||||
namespace WordsToolkit.Scripts.Services.Ads.AdUnits
|
||||
{
|
||||
public class AdLifecycleManager : IAdLifecycleManager
|
||||
{
|
||||
private readonly AdsHandlerBase _adsHandler;
|
||||
|
||||
public AdLifecycleManager(AdsHandlerBase adsHandler)
|
||||
{
|
||||
_adsHandler = adsHandler;
|
||||
}
|
||||
|
||||
public void Load(AdUnit adUnit)
|
||||
{
|
||||
_adsHandler?.Load(adUnit);
|
||||
}
|
||||
|
||||
public void Show(AdUnit adUnit)
|
||||
{
|
||||
_adsHandler?.Show(adUnit);
|
||||
}
|
||||
|
||||
public void Hide(AdUnit adUnit)
|
||||
{
|
||||
_adsHandler?.Hide(adUnit);
|
||||
}
|
||||
|
||||
public bool IsAvailable(AdUnit adUnit)
|
||||
{
|
||||
return _adsHandler != null && (_adsHandler.IsAvailable(adUnit) || adUnit.Loaded);
|
||||
}
|
||||
|
||||
public void Complete(AdUnit adUnit)
|
||||
{
|
||||
adUnit.OnShown?.Invoke(adUnit.PlacementId);
|
||||
}
|
||||
|
||||
public void Initialize(AdUnit adUnit)
|
||||
{
|
||||
adUnit.OnInitialized?.Invoke(adUnit.PlacementId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 572fd5f113dad43b6b492120fbd965ae
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,22 @@
|
||||
// // ©2015 - 2025 Candy Smith
|
||||
// // All rights reserved
|
||||
// // Redistribution of this software is strictly not allowed.
|
||||
// // Copy of this software can be obtained from unity asset store only.
|
||||
// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// // THE SOFTWARE.
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace WordsToolkit.Scripts.Services.Ads.AdUnits
|
||||
{
|
||||
[CreateAssetMenu(fileName = "AdReference", menuName ="WordConnectGameToolkit/Ads/AdReference")]
|
||||
public class AdReference : ScriptableObject
|
||||
{
|
||||
public EAdType adType;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8151ae330add46d49f409e031f774236
|
||||
timeCreated: 1709625749
|
||||
@ -0,0 +1,63 @@
|
||||
// // ©2015 - 2025 Candy Smith
|
||||
// // All rights reserved
|
||||
// // Redistribution of this software is strictly not allowed.
|
||||
// // Copy of this software can be obtained from unity asset store only.
|
||||
// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// // THE SOFTWARE.
|
||||
|
||||
using System;
|
||||
|
||||
namespace WordsToolkit.Scripts.Services.Ads.AdUnits
|
||||
{
|
||||
public class AdUnit
|
||||
{
|
||||
public string PlacementId { get; }
|
||||
public AdReference AdReference { get; }
|
||||
public bool Loaded { get; set; }
|
||||
public Action<string> OnShown { get; set; }
|
||||
public Action<string> OnInitialized { get; set; }
|
||||
|
||||
public AdUnit(string placementId, AdReference adReference)
|
||||
{
|
||||
PlacementId = placementId;
|
||||
AdReference = adReference;
|
||||
}
|
||||
|
||||
public AdsHandlerBase AdsHandler { get; set; }
|
||||
|
||||
public void Complete()
|
||||
{
|
||||
OnShown?.Invoke(PlacementId);
|
||||
}
|
||||
|
||||
public void Initialized()
|
||||
{
|
||||
OnInitialized?.Invoke(PlacementId);
|
||||
}
|
||||
|
||||
public void Load()
|
||||
{
|
||||
AdsHandler?.Load(this);
|
||||
}
|
||||
|
||||
public void Show()
|
||||
{
|
||||
AdsHandler?.Show(this);
|
||||
}
|
||||
|
||||
public bool IsAvailable()
|
||||
{
|
||||
return AdsHandler != null && (AdsHandler.IsAvailable(this) || Loaded);
|
||||
}
|
||||
|
||||
public void Hide()
|
||||
{
|
||||
AdsHandler?.Hide(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bd76f366cfc84bfab6c025eb8ebc1b5e
|
||||
timeCreated: 1709541000
|
||||
@ -0,0 +1,28 @@
|
||||
// // ©2015 - 2025 Candy Smith
|
||||
// // All rights reserved
|
||||
// // Redistribution of this software is strictly not allowed.
|
||||
// // Copy of this software can be obtained from unity asset store only.
|
||||
// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// // THE SOFTWARE.
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace WordsToolkit.Scripts.Services.Ads.AdUnits
|
||||
{
|
||||
public abstract class AdsHandlerBase : ScriptableObject
|
||||
{
|
||||
public abstract void Init(string _id, bool adSettingTestMode, IAdsListener listener);
|
||||
public abstract void Show(AdUnit adUnit);
|
||||
public abstract void Load(AdUnit adUnit);
|
||||
|
||||
/// set false if adapter doesn't have availability method
|
||||
public abstract bool IsAvailable(AdUnit adUnit);
|
||||
|
||||
public abstract void Hide(AdUnit adUnit);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f71ea344e49b486dbea6a85fb3422111
|
||||
timeCreated: 1709485645
|
||||
@ -0,0 +1,21 @@
|
||||
// // ©2015 - 2025 Candy Smith
|
||||
// // All rights reserved
|
||||
// // Redistribution of this software is strictly not allowed.
|
||||
// // Copy of this software can be obtained from unity asset store only.
|
||||
// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// // THE SOFTWARE.
|
||||
|
||||
namespace WordsToolkit.Scripts.Services.Ads.AdUnits
|
||||
{
|
||||
public enum EAdType
|
||||
{
|
||||
Banner,
|
||||
Interstitial,
|
||||
Rewarded
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0b34f9ec5c8244b79a5b7eca99ddaee8
|
||||
timeCreated: 1709539401
|
||||
@ -0,0 +1,26 @@
|
||||
// // ©2015 - 2025 Candy Smith
|
||||
// // All rights reserved
|
||||
// // Redistribution of this software is strictly not allowed.
|
||||
// // Copy of this software can be obtained from unity asset store only.
|
||||
// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// // THE SOFTWARE.
|
||||
|
||||
using System;
|
||||
|
||||
namespace WordsToolkit.Scripts.Services.Ads.AdUnits
|
||||
{
|
||||
public interface IAdLifecycleManager
|
||||
{
|
||||
void Load(AdUnit adUnit);
|
||||
void Show(AdUnit adUnit);
|
||||
void Hide(AdUnit adUnit);
|
||||
bool IsAvailable(AdUnit adUnit);
|
||||
void Complete(AdUnit adUnit);
|
||||
void Initialize(AdUnit adUnit);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15053b0564ace4fcdae31ceeb36d5e23
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,27 @@
|
||||
// // ©2015 - 2025 Candy Smith
|
||||
// // All rights reserved
|
||||
// // Redistribution of this software is strictly not allowed.
|
||||
// // Copy of this software can be obtained from unity asset store only.
|
||||
// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// // THE SOFTWARE.
|
||||
|
||||
namespace WordsToolkit.Scripts.Services.Ads.AdUnits
|
||||
{
|
||||
public interface IAdsListener
|
||||
{
|
||||
void Show(AdUnit adUnit);
|
||||
void OnAdsInitialized();
|
||||
void OnAdsLoaded(string placementId);
|
||||
void OnAdsLoadFailed();
|
||||
void OnAdsShowFailed();
|
||||
void OnAdsShowStart();
|
||||
void OnAdsShowClick();
|
||||
void OnAdsShowComplete();
|
||||
void OnInitFailed();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c85c74df67b4b7a928492e027e61311
|
||||
timeCreated: 1709539029
|
||||
Reference in New Issue
Block a user