Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by shubhamshetkar25 · Feb 01, 2019 at 05:50 PM · mobilebeginnertower-defensetower defensescipting

Unity Tower Defense Template Customization Help

[Please help if You have seen Tower Defense Template by Unity]

I am building mobile game with Tower Defense Template. Here I have rewarded Video Ad Button on MainMenu scene, and when I press button I want to add +10 currency to every level. [startCurrency + 10] How to do it?? . My scripts : LevelManager.cs

 using System;
 using Core.Economy;
 using Core.Health;
 using Core.Utilities;
 using TowerDefense.Economy;
 using TowerDefense.Towers.Data;
 using UnityEngine;
 using UnityEngine.UI;
 
 namespace TowerDefense.Level
 {
     /// <summary>
     /// The level manager - handles the level states and tracks the player's currency
     /// </summary>
     [RequireComponent(typeof(WaveManager))]
     public class LevelManager : Singleton<LevelManager>
     {
         /// <summary>
         /// The configured level intro. If this is null the LevelManager will fall through to the gameplay state (i.e. SpawningEnemies)
         /// </summary>
         public LevelIntro intro;
 
         /// <summary>
         /// The tower library for this level
         /// </summary>
         public TowerLibrary towerLibrary;
 
         /// <summary>
         /// The currency that the player starts with
         /// </summary>
         public int startingCurrency;
 
         /// <summary>
         /// The controller for gaining currency
         /// </summary>
         public CurrencyGainer currencyGainer;
 
         /// <summary>
         /// Configuration for if the player gains currency even in pre-build phase
         /// </summary>
         [Header("Setting this will allow currency gain during the Intro and Pre-Build phase")]
         public bool alwaysGainCurrency;
 
         /// <summary>
         /// The home bases that the player must defend
         /// </summary>
         public PlayerHomeBase[] homeBases;
 
         public Collider[] environmentColliders;
 
         /// <summary>
         /// The attached wave manager
         /// </summary>
         public WaveManager waveManager { get; protected set; }
 
         /// <summary>
         /// Number of enemies currently in the level
         /// </summary>
         public int numberOfEnemies { get; protected set; }
 
         /// <summary>
         /// The current state of the level
         /// </summary>
         public LevelState levelState { get; protected set; }
 
         /// <summary>
         /// The currency controller
         /// </summary>
         public Currency currency { get; protected set; }
 
         /// <summary>
         /// Number of home bases left
         /// </summary>
         public int numberOfHomeBasesLeft { get; protected set; }
 
         /// <summary>
         /// Starting number of home bases
         /// </summary>
         public int numberOfHomeBases { get; protected set; }
 
 
         /// <summary>
         /// An accessor for the home bases
         /// </summary>
         public PlayerHomeBase[] playerHomeBases
         {
             get { return homeBases; }
         }
 
         /// <summary>
         /// If the game is over
         /// </summary>
         public bool isGameOver
         {
             get { return (levelState == LevelState.Win) || (levelState == LevelState.Lose); }
         }
 
         /// <summary>
         /// Fired when all the waves are done and there are no more enemies left
         /// </summary>
         public event Action levelCompleted;
 
         /// <summary>
         /// Fired when all of the home bases are destroyed
         /// </summary>
         public event Action levelFailed;
 
         /// <summary>
         /// Fired when the level state is changed - first parameter is the old state, second parameter is the new state
         /// </summary>
         public event Action<LevelState, LevelState> levelStateChanged;
 
         /// <summary>
         /// Fired when the number of enemies has changed
         /// </summary>
         public event Action<int> numberOfEnemiesChanged;
 
         /// <summary>
         /// Event for home base being destroyed
         /// </summary>
         public event Action homeBaseDestroyed;
 
         /// <summary>
         /// Increments the number of enemies. Called on Agent spawn
         /// </summary>
         public virtual void IncrementNumberOfEnemies()
         {
             numberOfEnemies++;
             SafelyCallNumberOfEnemiesChanged();
         }
 
         /// <summary>
         /// Returns the sum of all HomeBases' health
         /// </summary>
         public float GetAllHomeBasesHealth()
         {
             float health = 0.0f;
             foreach (PlayerHomeBase homebase in homeBases)
             {
                 health += homebase.configuration.currentHealth;
             }
             return health;
         }
 
         /// <summary>
         /// Decrements the number of enemies. Called on Agent death
         /// </summary>
         public virtual void DecrementNumberOfEnemies()
         {
             numberOfEnemies--;
             SafelyCallNumberOfEnemiesChanged();
             if (numberOfEnemies < 0)
             {
                 Debug.LogError("[LEVEL] There should never be a negative number of enemies. Something broke!");
                 numberOfEnemies = 0;
             }
 
             if (numberOfEnemies == 0 && levelState == LevelState.AllEnemiesSpawned)
             {
                 ChangeLevelState(LevelState.Win);
             }
         }
 
         /// <summary>
         /// Completes building phase, setting state to spawn enemies
         /// </summary>
         public virtual void BuildingCompleted()
         {
             ChangeLevelState(LevelState.SpawningEnemies);
         }
 
         /// <summary>
         /// Caches the attached wave manager and subscribes to the spawning completed event
         /// Sets the level state to intro and ensures that the number of enemies is set to 0
         /// </summary>
         protected override void Awake()
         {
             base.Awake();
             waveManager = GetComponent<WaveManager>();
             waveManager.spawningCompleted += OnSpawningCompleted;
 
             // Does not use the change state function as we don't need to broadcast the event for this default value
             levelState = LevelState.Intro;
             numberOfEnemies = 0;
 
             // Ensure currency change listener is assigned
             currency = new Currency(startingCurrency);
             currencyGainer.Initialize(currency);
 
 
             // If there's an intro use it, otherwise fall through to gameplay
             if (intro != null)
             {
                 intro.introCompleted += IntroCompleted;
             }
             else
             {
                 IntroCompleted();
             }
 
             // Iterate through home bases and subscribe
             numberOfHomeBases = homeBases.Length;
             numberOfHomeBasesLeft = numberOfHomeBases;
             for (int i = 0; i < numberOfHomeBases; i++)
             {
                 homeBases[i].died += OnHomeBaseDestroyed;
             }
         }
 
         /// <summary>
         /// Updates the currency gain controller
         /// </summary>
         protected virtual void Update()
         {
             if (alwaysGainCurrency ||
                 (!alwaysGainCurrency && levelState != LevelState.Building && levelState != LevelState.Intro))
             {
                 currencyGainer.Tick(Time.deltaTime);
             }
         }
 
         /// <summary>
         /// Unsubscribes from events
         /// </summary>
         protected override void OnDestroy()
         {
             base.OnDestroy();
             if (waveManager != null)
             {
                 waveManager.spawningCompleted -= OnSpawningCompleted;
             }
             if (intro != null)
             {
                 intro.introCompleted -= IntroCompleted;
             }
 
             // Iterate through home bases and unsubscribe
             for (int i = 0; i < numberOfHomeBases; i++)
             {
                 homeBases[i].died -= OnHomeBaseDestroyed;
             }
         }
 
         /// <summary>
         /// Fired when Intro is completed or immediately, if no intro is specified
         /// </summary>
         protected virtual void IntroCompleted()
         {
             ChangeLevelState(LevelState.Building);
         }
 
         /// <summary>
         /// Fired when the WaveManager has finished spawning enemies
         /// </summary>
         protected virtual void OnSpawningCompleted()
         {
             ChangeLevelState(LevelState.AllEnemiesSpawned);
         }
 
         /// <summary>
         /// Changes the state and broadcasts the event
         /// </summary>
         /// <param name="newState">The new state to transitioned to</param>
         protected virtual void ChangeLevelState(LevelState newState)
         {
             // If the state hasn't changed then return
             if (levelState == newState)
             {
                 return;
             }
 
             LevelState oldState = levelState;
             levelState = newState;
             if (levelStateChanged != null)
             {
                 levelStateChanged(oldState, newState);
             }
             
             switch (newState)
             {
                 case LevelState.SpawningEnemies:
                     waveManager.StartWaves();
                     break;
                 case LevelState.AllEnemiesSpawned:
                     // Win immediately if all enemies are already dead
                     if (numberOfEnemies == 0)
                     {
                         ChangeLevelState(LevelState.Win);
                     }
                     break;
                 case LevelState.Lose:
                     SafelyCallLevelFailed();
                     break;
                 case LevelState.Win:
                     SafelyCallLevelCompleted();
                     break;
             }
         }
 
         /// <summary>
         /// Fired when a home base is destroyed
         /// </summary>
         protected virtual void OnHomeBaseDestroyed(DamageableBehaviour homeBase)
         {
             // Decrement the number of home bases
             numberOfHomeBasesLeft--;
 
             // Call the destroyed event
             if (homeBaseDestroyed != null)
             {
                 homeBaseDestroyed();
             }
 
             // If there are no home bases left and the level is not over then set the level to lost
             if ((numberOfHomeBasesLeft == 0) && !isGameOver)
             {
                 ChangeLevelState(LevelState.Lose);
             }
         }
 
         /// <summary>
         /// Calls the <see cref="levelCompleted"/> event
         /// </summary>
         protected virtual void SafelyCallLevelCompleted()
         {
             if (levelCompleted != null)
             {
                 levelCompleted();
             }
         }
 
         /// <summary>
         /// Calls the <see cref="numberOfEnemiesChanged"/> event
         /// </summary>
         protected virtual void SafelyCallNumberOfEnemiesChanged()
         {
             if (numberOfEnemiesChanged != null)
             {
                 numberOfEnemiesChanged(numberOfEnemies);
             }
         }
 
         /// <summary>
         /// Calls the <see cref="levelFailed"/> event
         /// </summary>
         protected virtual void SafelyCallLevelFailed()
         {
             if (levelFailed != null)
             {
                 levelFailed();
             }
         }
     }
 }


RewardedVideo.cs located on MainMenu Button, its empty. can anyone please tell how should I do it.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

223 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

I have problems adapting my game to different screens 1 Answer

Rect or Camera transform? 0 Answers

Beginner script questions 0 Answers

Rolodex for viewing cards 2 Answers

How to write a script for an existing button 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges