コード例 #1
0
ファイル: TankManager.cs プロジェクト: IgorCH/md
    public void Setup()
    {
        // Get references to the components.
        m_Movement = m_Instance.GetComponent<TankMovement>();
        m_Shooting = m_Instance.GetComponent<TankShooting>();
        m_Health = m_Instance.GetComponent<TankHealth>();
        m_Setup = m_Instance.GetComponent<TankSetup>();

        // Get references to the child objects.
        m_TankRenderers = m_Health.m_TankRenderers;

        //Set a reference to that amanger in the health script, to disable control when dying
        m_Health.m_Manager = this;

        // Set the player numbers to be consistent across the scripts.
        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Movement.m_LocalID = m_LocalPlayerID;

        m_Shooting.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_localID = m_LocalPlayerID;

        //setup is use for diverse Network Related sync
        m_Setup.m_Color = m_PlayerColor;
        m_Setup.m_PlayerName = m_PlayerName;
        m_Setup.m_PlayerNumber = m_PlayerNumber;
        m_Setup.m_LocalID = m_LocalPlayerID;
    }
コード例 #2
0
    // Use this for initialization
    void Start()
    {
        GameObject playObj = GameObject.FindGameObjectWithTag("Player");

        playerScript     = (PlayerMovement)playObj.GetComponent(typeof(PlayerMovement));
        playerFireScript = (TankShooting)playObj.GetComponent(typeof(TankShooting));
    }
コード例 #3
0
    private float degreesPerSecond = 200;       // Magnitude of spin of death rotation.

    private void Awake()
    {
        m_Rigidbody    = GetComponent <Rigidbody>();
        m_TankShooting = GetComponent <TankShooting>();
        frame          = 0;
        spinToWin      = false;
    }
コード例 #4
0
ファイル: TankManager.cs プロジェクト: Fmccline/TankFriends
    public void Setup()
    {
        m_Movement = m_Instance.GetComponent <TankMovement>();
        m_Shooting = m_Instance.GetComponent <TankShooting>();
        m_Health   = m_Instance.GetComponent <TankHealth>();

        m_TankInput            = TankInputFactory.MakeTankWithInput(m_InputType);
        m_Movement.m_TankInput = m_TankInput;
        m_Shooting.m_TankInput = m_TankInput;

        m_TankScore        = new Score(m_PlayerNumber);
        m_Shooting.m_Score = m_TankScore;
        m_Health.m_Score   = m_TankScore;

        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;

        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";

        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();

        for (int i = 0; i < renderers.Length; i++)
        {
            renderers[i].material.color = m_PlayerColor;
        }
        m_CurrentColor = m_PlayerColor;
    }
コード例 #5
0
ファイル: TankManager.cs プロジェクト: kimkimkimkimkim/tank
    public void Setup()
    {
        m_Movement         = m_Instance.GetComponent <TankMovement>();
        m_Shooting         = m_Instance.GetComponent <TankShooting>();
        m_NavMeshAgent     = m_Instance.GetComponent <NavMeshAgent>();
        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;

        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        if (m_PlayerNumber == 1)
        {
            //Playerだったら
            m_Movement.movementType = MovementType.Player;
            m_Shooting.movementType = MovementType.Player;
            m_Instance.GetComponent <Cpu1Controller>().enabled = false;
        }
        else
        {
            m_Movement.movementType = MovementType.CPU1;
            m_Shooting.movementType = MovementType.CPU1;
            m_Instance.GetComponent <Cpu1Controller>().TargetObject = playerTank;
            m_Shooting.playerTank = playerTank;
        }

        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";

        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();

        for (int i = 0; i < renderers.Length; i++)
        {
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #6
0
ファイル: TankManager.cs プロジェクト: jamiemjohnston/TANKS
    private GameObject m_CanvasGameObject;                              // Used to disable the world space UI during the Starting and Ending phases of each round.


    public void Setup()
    {
        // Get references to the components.
        m_Movement         = m_Instance.GetComponent <TankMovement> ();
        m_Shooting         = m_Instance.GetComponent <TankShooting> ();
        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas> ().gameObject;

        // Set the player numbers to be consistent across the scripts.
        Debug.Log(m_Instance);
        Debug.Log(m_PlayerNumber);
        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        // Create a string using the correct color that says 'PLAYER 1' etc based on the tank's color and the player's number.
        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";

        // Get all of the renderers of the tank.
        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer> ();

        // Go through all the renderers...
        for (int i = 0; i < renderers.Length; i++)
        {
            // ... set their material color to the color specific to this tank.
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #7
0
    void Start()
    {
        GameObject player = GameObject.FindGameObjectWithTag("Player");

        mover = (PlayerMovement)player.GetComponent(typeof(PlayerMovement));
        firer = (TankShooting)player.GetComponent(typeof(TankShooting));
    }
コード例 #8
0
 void Start()
 {
     movement   = GetComponent <TankMovement>();
     shooting   = GetComponent <TankShooting>();
     health     = GetComponent <TankHealth>();
     mainCamera = Camera.main;
 }
コード例 #9
0
 private void SetupPlayer()
 {
     Movement = Instance.GetComponent<TankMovement>();
     Shooting = Instance.GetComponent<TankShooting>();
     Movement.PlayerNumber = Player.Number;
     Shooting.PlayerNumber = Player.Number;
 }
コード例 #10
0
    public void Run(bool debug, int portOffset, TankMovement mv, TankObservation obv, TankShooting shoot, GenerateMaze generateMaze)
    {
        DebugMode     = debug;
        m_Movement    = mv;
        m_Observation = obv;
        m_Shooting    = shoot;

        m_GenerateMaze = generateMaze;
        m_running      = true;
        m_portOffset   = portOffset;

        m_ControllerClient = new UdpClient(CONTROL_PORT + m_portOffset);
        //m_ObservationClient = new UdpClient(OBSERVATION_PORT + m_portOffset);
        m_ipEndPoint = new IPEndPoint(IPAddress.Any, OBSERVATION_PORT + m_portOffset);
        var debugString = DebugMode ? "Debug" : "";
        var startString = $"Starting {debugString} Server: {m_ipEndPoint.Address}";

        Debug.Log(startString);

        // Control thread
        ThreadStart controlThreadDelegate = new ThreadStart(ControlListener);
        Thread      controlThread         = new Thread(controlThreadDelegate);

        controlThread.Start();

        // Obervation thread
        ThreadStart observationThreadDelegate = new ThreadStart(ObservationListener);
        Thread      observationThread         = new Thread(observationThreadDelegate);

        observationThread.Start();
    }
コード例 #11
0
    public void Setup()
    {
        // Get references to the components.
        m_Movement = m_Instance.GetComponent <TankMovement>();
        m_Shooting = m_Instance.GetComponent <TankShooting>();
        m_Health   = m_Instance.GetComponent <TankHealth>();
        m_Setup    = m_Instance.GetComponent <TankSetup>();

        // Get references to the child objects.
        m_TankRenderers = m_Health.m_TankRenderers;

        //Set a reference to that amanger in the health script, to disable control when dying
        m_Health.m_Manager = this;

        // Set the player numbers to be consistent across the scripts.
        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Movement.m_LocalID      = m_LocalPlayerID;

        m_Shooting.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_localID      = m_LocalPlayerID;

        //setup is use for diverse Network Related sync
        m_Setup.m_Color        = m_PlayerColor;
        m_Setup.m_PlayerName   = m_PlayerName;
        m_Setup.m_PlayerNumber = m_PlayerNumber;
        m_Setup.m_LocalID      = m_LocalPlayerID;
    }
コード例 #12
0
    public void Setup()
    {
        m_Instance.GetComponent <Collider>().enabled = isPlayer;
        // Get references to the components.
        m_movement         = m_Instance.GetComponent <TankMovement>();
        m_shooting         = m_Instance.GetComponent <TankShooting>();
        m_health           = m_Instance.GetComponent <TankHealth>();
        m_propBehavior     = m_Instance.GetComponent <TankPropBehavior>();
        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;

        m_movement.m_avatar          = m_avatar;
        m_shooting.m_isPlayer        = isPlayer;
        m_shooting.m_tankmanager     = this;
        m_propBehavior.m_isPlayer    = isPlayer;
        m_propBehavior.m_tankmanager = this;

        m_health.SetIDText(m_avatarName);
        // Create a string using the correct color that says 'PLAYER 1' etc based on the tank's color and the player's number.
        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";

        // Get all of the renderers of the tank.
        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();

        // Go through all the renderers...
        for (int i = 0; i < renderers.Length; i++)
        {
            // ... set their material color to the color specific to this tank.
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #13
0
 public void Start()
 {
     navMeshAgent       = GetComponent <NavMeshAgent>();
     shooting           = GetComponent <TankShooting>();
     health             = GetComponent <TankHealth>();
     navMeshAgent.speed = moveSpeed;
 }
コード例 #14
0
    private string getAmmoDisplay(int Player_i)
    {
        TankManager   player = m_Tanks[Player_i - 1];
        TankShooting  playerShootComponent = player.m_Instance.GetComponent <TankShooting>();
        StringBuilder Player_Info          = new StringBuilder("<color=#" + ColorUtility.ToHtmlStringRGB(player.m_PlayerColor) + ">Ammo: " + playerShootComponent.m_CurrentAmmo + "</color>");

        Player_Info.Append("\n");
        Player_Info.Append("<color=#" + ColorUtility.ToHtmlStringRGB(player.m_PlayerColor) + ">Special: ");
        if (playerShootComponent.m_HasThreeBurst)
        {
            Player_Info.Append("Three Burst Shot</color>");
        }
        else if (playerShootComponent.m_HasConeShot)
        {
            Player_Info.Append("Cone Shot</color>");
        }
        else if (playerShootComponent.m_HasBigBullet)
        {
            Player_Info.Append("Big Bullet</color>");
        }
        else if (playerShootComponent.m_HasAlienSwarmBullet)
        {
            Player_Info.Append("Alien Swarm Bullet</color>");
        }
        else
        {
            Player_Info.Append("None</color>");
        }
        return(Player_Info.ToString());
    }
コード例 #15
0
ファイル: TankManager.cs プロジェクト: WJSWebster/Tanks-2
    public void Setup()
    {
        m_Movement         = m_Instance.GetComponent <TankMovement>();
        m_Shooting         = m_Instance.GetComponent <TankShooting>();
        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;

        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        // if the player pref exists, reassign m_PlayerColor to this
        if (PlayerPrefs.HasKey("hue" + m_PlayerNumber))
        {
            float customHue = PlayerPrefs.GetFloat("hue" + m_PlayerNumber);
            m_PlayerColor = Color.HSVToRGB(customHue, 0.8f, 0.8f);
        }
        else // m_PlayerColor == the value set in inspector
        {
            Debug.LogWarning("TankManager::Setup: could not find 'hue" + m_PlayerNumber + "'");
        }

        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";

        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();

        for (int i = 0; i < renderers.Length; i++)
        {
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #16
0
    public float distanceToFlag; //can change to public getter and setters instead

    public void Setup(Transform spawnPoint, Transform flag, GenerateMaze generateMaze)
    {
        //sets random spawn point for tank
        this.spawnPoint = m_SpawnPoint.position;
        m_GenerateMaze  = generateMaze;

        m_Movement = m_Instance.GetComponent <TankMovement>();
        m_Movement.m_PlayerNumber = teamNumber;

        m_Shooting = m_Instance.GetComponent <TankShooting>();
        m_Shooting.m_PlayerNumber = teamNumber;

        //UI Healthbar manager
        m_Health                 = m_Instance.GetComponent <TankHealth>();
        healthCanvas             = GameObject.FindGameObjectWithTag("HealthBar" + teamNumber);
        m_Health.ui_HealthSlider = healthCanvas.GetComponentInChildren <Slider>();

        //Kill count Ui manager
        killCountCanvas = GameObject.FindGameObjectWithTag("KillCount" + teamNumber);
        killCount       = killCountCanvas.GetComponent <Text>();
        killCount.text  = "KILL COUNT: " + getKillCount().ToString();//Not updating for some reason

        // Observation
        m_tankObservation = m_Instance.GetComponent <TankObservation>();
        m_tankObservation.SetFlag(flag);

        m_Instance.GetComponentsInChildren <ScreenshotHandler>()[0].SetScreenshotName($"Player{teamNumber}");


        // Player server
        m_playerServer = new PlayerServer();

        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;

        if (teamNumber == 1)
        {
            m_PlayerColor = Color.red;
        }
        else if (teamNumber == 2)
        {
            m_PlayerColor = Color.blue;
        }
        else //this one shouldn't matter so long as I did the mod operation correctly
        {
            m_PlayerColor = Color.black;
        }

        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">TEAM " + teamNumber + "</color>"; //html like text to handle the text colour

        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();                                      //gets all mesh renderers in tank prefab

        //set all renderers in tank's meshrenderers to the player's colour
        for (int i = 0; i < renderers.Length; i++)
        {
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #17
0
ファイル: TankLoad.cs プロジェクト: SunnySunnyOMG/TanksOnline
    // Use this for initialization
    void Start()
    {
        if (isLocalPlayer)    //if  client
        {
            Debug.Log("Finding reference...");
            playerSpawnPoint = FindObjectsOfType <NetworkStartPosition>();
            //   worldCam = GameObject.FindGameObjectWithTag("WorldCam");
            screenText = FindObjectOfType <Text>();

            scriptMovement = GetComponent <TankMovement>();
            scriptShooting = GetComponent <TankShooting>();

            if (screenText != null)
            {
                screenText.text = "";
            }
            else
            {
                Debug.Log("cannot find the screen text");
            }

            enableColor = color;
        }



        renderers = GetComponentsInChildren <MeshRenderer>();
//        tankHealth = GetComponent<TankHealth>();
        ChangeColor(color);
        //get the player text display with color
        coloredPlayerNameText = "<color=#" + ColorUtility.ToHtmlStringRGB(color) + ">" + playerName + "</color>";
        waitOneSec            = new WaitForSeconds(1f);
    }
コード例 #18
0
 private void Awake()
 {
     _movement = gameObject.GetComponent <TankMovement>();
     _shooting = gameObject.GetComponent <TankShooting>();
     instance  = gameObject;
     Setup();
 }
コード例 #19
0
    public void SelfDestruction()
    {
        TakeDamage(100.0f);
        TankShooting shooting = GetComponent <TankShooting>();

        shooting.FireAndExplode();
    }
コード例 #20
0
    void onPlay(SocketIOEvent socketIOEvent)
    {
        string     data            = socketIOEvent.data.ToString();
        UserJSON   currentUserData = UserJSON.CreateFromJSON(data);
        Vector3    position        = new Vector3(currentUserData.position [0], currentUserData.position [1], currentUserData.position [2]);
        Quaternion rotation        = Quaternion.Euler(0f, currentUserData.rotation, 0f);
        Color      playerColor;

        ColorUtility.TryParseHtmlString(currentUserData.playerColor, out playerColor);

        GameObject p = Instantiate(player, position, rotation) as GameObject;

        p.name = currentUserData.name;

        TankShooting shooting = p.GetComponent <TankShooting> ();

        shooting.isLocalPlayer = true;
        shooting.playerName    = currentUserData.name;

        TankMovement movement = p.GetComponent <TankMovement> ();

        movement.isLocalPlayer = true;

        MeshRenderer[] renderers = p.GetComponentsInChildren <MeshRenderer> ();
        for (int i = 0; i < renderers.Length; i++)
        {
            renderers[i].material.color = playerColor;
        }
    }
コード例 #21
0
    public void Setup()
    {
        // Get references to the components.
        m_Movement = m_Instance.GetComponent<TankMovement>();
        m_Shooting = m_Instance.GetComponent<TankShooting>();
        m_Percepts = m_Instance.GetComponent<TankPercepts>();
        m_Health = m_Instance.GetComponent<TankHealth>();
        m_CanvasGameObject = m_Instance.GetComponentInChildren<Canvas>().gameObject;

        // Set the player numbers to be consistent across the scripts.
        m_Movement.m_PlayerNumber = pid;
        m_Shooting.m_PlayerNumber = pid;

        // Create a string using the correct color that says 'PLAYER 1' etc based on the tank's color and the player's number.
        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + pid + "</color>";
        m_Instance.name = "Tank - Player " + pid;

        // Get all of the renderers of the tank.
        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren<MeshRenderer>();

        // Go through all the renderers...
        for (int i = 0; i < renderers.Length; i++)
        {
            // ... set their material color to the color specific to this tank.
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #22
0
    private GameObject m_CanvasGameObject;                  // Refrence to the UI Cavas gameobject to turn UI on or off.



    // Setup Method... Called by the game manager to initialize tank stats.
    public void Setup()
    {
        // assign ref. from tank movement script
        // assign ref. from tank shooting script
        // assign ref. from patrol movement AI script
        // assign ref. from rage movement AI script
        // assign ref from child UI canavas
        m_Movement         = m_Instance.GetComponent <TankMovement>();
        m_Shooting         = m_Instance.GetComponent <TankShooting>();
        m_PatrolMove       = m_Instance.GetComponent <PatrolMovement>();
        m_RageMove         = m_Instance.GetComponent <RageMovement>();
        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;

        // setting the player number for moving script
        // setting the player number for shooting script
        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        // player text readout to UI uses tags "<color> </color>".
        // READS: (Player Color) PLAYER(#)
        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";

        // assign an array of mesh renderers setting to the components in children that are mesh renderers.
        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();

        // Takes all these mesh renderers and goes through each and sets this to the players number color.
        for (int i = 0; i < renderers.Length; i++)
        {
            // Set color.
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #23
0
 void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.tag == "Player")
     {
         ts = collision.gameObject.GetComponent <TankShooting>();
         ts.laserAmmo++;
     }
 }
コード例 #24
0
ファイル: Ammo.cs プロジェクト: Lord-killer-bee/Swaggy-tanks
 void OnCollisionEnter(Collision target)
 {
     if (target.gameObject.tag == "Player")
     {
         ts      = target.gameObject.GetComponent <TankShooting>();
         ts.ammo = 20;
     }
 }
コード例 #25
0
 private void Awake()
 {
     m_MovementScript = GetComponent <TankMovement>();
     m_ShootingScript = GetComponent <TankShooting>();
     m_HealthScript   = GetComponent <TankHealth>();
     m_RadarScript    = GetComponent <TankRadar>();
     m_Agent          = GetComponent <NavMeshAgent>();
 }
コード例 #26
0
ファイル: PowerUp.cs プロジェクト: rohitrtk/UnityTanks
    /// <summary>
    /// Rework this method!
    /// </summary>
    private void BonusDamage()
    {
        TankShooting   ts = _rb.GetComponent <TankShooting>();
        ShellExplosion se = ts.m_Shell.GetComponent <ShellExplosion>();

        se.m_MaxDamage = _maxDamage;

        Destroy(gameObject);
    }
コード例 #27
0
ファイル: TankHealth.cs プロジェクト: Cecilia7768/Unity_K
    IEnumerator WhenMeetCoin_About_Power()
    {
        TankShooting tankShooting = GetComponent <TankShooting>();

        tankShooting.m_bEatenPowerCoin += 2;
        yield return(new WaitForSeconds(4f));

        tankShooting.m_bEatenPowerCoin = 0;
    }
コード例 #28
0
ファイル: PowerUpPill.cs プロジェクト: tom-bea/Tanks-Game
    private void OnCollisionEnter(Collision collision)
    {
        TankShooting tank = collision.collider.GetComponent <TankShooting>();

        if (tank != null)
        {
            tank.ActivatePowerUp();
        }
    }
コード例 #29
0
ファイル: ControlsFire.cs プロジェクト: Etherkon/Tank-Arena
 void Start()
 {
     m_AimSlider.value = m_MinLaunchForce;
     loads             = false;
     m_ChargeSpeed     = (m_MaxLaunchForce - m_MinLaunchForce) / m_MaxChargeTime;
     gun       = player.GetComponent <TankShooting>();
     current   = m_MinLaunchForce;
     m_EndWait = new WaitForSeconds(2f);
 }
コード例 #30
0
 // Start is called before the first frame update
 void Start()
 {
     rigid             = GetComponent <Rigidbody>();
     FloorTrans        = transform.parent.GetChild(0).transform;
     rayPer            = GetComponent <RayPerception>();
     detectableObjects = new string[] { "wall", "Agent", "block" };
     enemyHealthScript = Target.GetComponent <TankHealth>();
     healthScript      = GetComponent <TankHealth>();
     tankShooting      = GetComponent <TankShooting>();
 }
コード例 #31
0
ファイル: PowerUpManager.cs プロジェクト: tomwallace/Tanks
        private IEnumerator SetMegaShell(GameObject gameObject, float duration)
        {
            TankShooting tankShooting = gameObject.GetComponent <TankShooting>();

            tankShooting.SetShellRigidBody(MegaShell);

            yield return(new WaitForSeconds(duration));

            tankShooting.EnableDefaultShellRigidBody();
        }
コード例 #32
0
    private GameObject m_CanvasGameObject;                  // Used to disable the world space UI during the Starting and Ending phases of each round.


    public void Setup()
    {
        // Get references to the components.
        m_Movement         = m_Instance.GetComponent <TankMovement>();
        m_Shooting         = m_Instance.GetComponent <TankShooting>();
        m_CanvasGameObject = m_Instance.GetComponentInChildren <Canvas>().gameObject;


        // Atribuindo a cor escolhida pelo usuário ao tank
        // Verifica se o jogador 1 já teve cor atribuida
        // Se sim, atribui a cor para o 2° player
        if (1 == m_PlayerNumber)
        {
            ColorUtility.TryParseHtmlString("#" + PlayerPrefs.GetString("Player1"), out m_PlayerColor);
        }
        else
        {
            ColorUtility.TryParseHtmlString("#" + PlayerPrefs.GetString("Player2"), out m_PlayerColor);
        }


        // Set the player numbers to be consistent across the scripts.
        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        Color botColorref = RandomColorGenerator();

        if (m_Instance.layer == LayerMask.NameToLayer("Players"))
        {
            // Create a string using the correct color that says 'PLAYER 1' etc based on the tank's color and the player's number.
            m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGBA(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";
        }
        else
        {
            // Create a string using the correct color that says 'Bot 1' etc based on the tank's color and the Bot's number.
            m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGBA(botColorref) + ">Bot " + m_PlayerNumber + "</color>";
        }

        // Get all of the renderers of the tank.
        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren <MeshRenderer>();

        // Go through all the renderers...
        for (int i = 0; i < renderers.Length; i++)
        {
            // ... set their material color to the color specific to this tank.
            if (m_Instance.layer == LayerMask.NameToLayer("Players"))
            {
                renderers[i].material.color = m_PlayerColor;
            }
            else
            {
                renderers[i].material.color = botColorref;
            }
        }
    }
コード例 #33
0
 public void UpdateTankObject()
 {
     for (int i = 0; i < m_Tanks.Length; i++)
     {
         TankObject   tankObject   = m_Tanks [i].m_TankObject;
         TankShooting tankShooting = m_Tanks[i].m_Instance.GetComponent <TankShooting>();
         tankObject.m_BomberAmmo      = tankShooting.m_BomberAmmo;
         tankObject.m_ShellAmmo       = tankShooting.m_ShellAmmo;
         tankObject.m_GuidedShellAmmo = tankShooting.m_GuidedShellAmmo;
     }
 }
コード例 #34
0
ファイル: TankManager.cs プロジェクト: DylanHobbs/Tanks
    public void Setup(){
        m_Movement = m_Instance.GetComponent<TankMovement>();
        m_Shooting = m_Instance.GetComponent<TankShooting>();
        m_CanvasGameObject = m_Instance.GetComponentInChildren<Canvas>().gameObject;

        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;

        m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";

        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren<MeshRenderer>();

        for (int i = 0; i < renderers.Length; i++){
            renderers[i].material.color = m_PlayerColor;
        }
    }
コード例 #35
0
ファイル: CarePackage.cs プロジェクト: twils1337/CSharp
 private void RemoveBulletBuffs(ref TankShooting tank)
 {
     tank.RemoveAllBulletBuffs();
 }
コード例 #36
0
ファイル: CarePackage.cs プロジェクト: twils1337/CSharp
 private void ReloadAndUpdateBullets(ref TankShooting shootingComponent, PackageType bulletType, int reload)
 {
     if (OverCapacity(shootingComponent.m_CurrentAmmo, reload, shootingComponent.m_AmmoCapacity))
     {
         shootingComponent.m_CurrentAmmo = shootingComponent.m_AmmoCapacity;
     }
     else
     {
         shootingComponent.m_CurrentAmmo += reload;
     }
     if (bulletType != PackageType.Bullet)
     {
         RemoveBulletBuffs(ref shootingComponent);
     }
     switch (bulletType)
     {
         case PackageType.ThreeBurst:
             shootingComponent.m_HasThreeBurst = true;
             break;
         case PackageType.ConeShot:
             shootingComponent.m_HasConeShot = true;
             break;
         case PackageType.BigBullet:
             shootingComponent.m_HasBigBullet = true;
             break;
         case PackageType.AlienSwarmBullet:
             shootingComponent.m_HasAlienSwarmBullet = true;
             break;
         default:
             break;
     }
 }
コード例 #37
0
 public void SetShootingScipt(TankShooting m_Shooting)
 {
     this.m_Shooting = m_Shooting;
 }
コード例 #38
0
    public TankEffect m_Effect;                        // Reference to tank's movement script, used to disable and enable control.



    public void Setup(int type)
    {
        // Get references to the components.
        m_Movement = m_Instance.GetComponent<TankMovement>();
        m_Shooting = m_Instance.GetComponent<TankShooting>();
        m_Health = m_Instance.GetComponent<TankHealth>();
        m_Effect = m_Instance.GetComponent<TankEffect>();

        // Set the player numbers to be consistent across the scripts.
        m_Movement.m_PlayerNumber = m_PlayerNumber;
        m_Shooting.m_PlayerNumber = m_PlayerNumber;
        m_Health.m_PlayerNumber = m_PlayerNumber;
        m_Effect.m_PlayerNumber = m_PlayerNumber;

        m_Movement.m_PlayerType = type;
        m_Shooting.m_PlayerType = type;
        m_Health.m_PlayerType = type;
        m_Effect.m_PlayerType = type;

        if (m_PlayerNumber == 1 || m_PlayerNumber == 2)
        {
            m_Shooting.m_CurrentFireDame = 1;
            m_Shooting.m_CurrentFireSpeed = 25;
            m_Movement.m_Speed = 12;
        }
        else {
            if (m_Movement.m_PlayerType == 0)//normal
            {
                m_Shooting.m_CurrentFireDame = 1;
                m_Shooting.m_CurrentFireSpeed = 25;
                m_Movement.m_Speed = 10;
            }
            else if (m_Movement.m_PlayerType == 1)//fast
            {
                m_Shooting.m_CurrentFireDame = 1;
                m_Shooting.m_CurrentFireSpeed = 30;
                m_Movement.m_Speed = 14;
            }
            else if (m_Movement.m_PlayerType == 2)//power
            {
                m_Shooting.m_CurrentFireDame = 1;
                m_Shooting.m_CurrentFireSpeed = 35;
                m_Movement.m_Speed = 12;
            }
            else if (m_Movement.m_PlayerType == 3)//armo
            {
                m_Shooting.m_CurrentFireDame = 1;
                m_Shooting.m_CurrentFireSpeed = 30;
                m_Movement.m_Speed = 8;
            }

        }

        m_Health.m_CurrentLive = 3;

        // Create a string using the correct color that says 'PLAYER 1' etc based on the tank's color and the player's number.
        if (m_PlayerNumber != 0)
        {
            m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(m_PlayerColor) + ">PLAYER " + m_PlayerNumber + "</color>";
        }
        else
        {
            m_ColoredPlayerText = "<color=#" + ColorUtility.ToHtmlStringRGB(Color.grey) + ">ENEMY</color>";
        }

        // Get all of the renderers of the tank.
        MeshRenderer[] renderers = m_Instance.GetComponentsInChildren<MeshRenderer>();

        // Go through all the renderers...
        for (int i = 0; i < renderers.Length; i++)
        {
            // ... set their material color to the color specific to this tank.
            if (m_PlayerNumber == 1 || m_PlayerNumber == 2)
                renderers[i].material.color = m_PlayerColor;
            else if (m_Shooting.m_PlayerType != 1)
                renderers[i].material.color = Color.grey;

        }
        m_Effect.initEffect(this);

        if (m_PlayerNumber == 1 || m_PlayerNumber == 2)
        {
            m_Shooting.m_Star = GameObject.Instantiate(GameManager.m_Instancce.m_StarFrefab, m_Health.transform.position, Quaternion.identity) as GameObject;
            m_Shooting.m_Star.transform.position = new Vector3(m_Shooting.m_Star.transform.position.x, 2, m_Shooting.m_Star.transform.position.z);
            m_Shooting.m_Star.transform.parent = m_Health.transform;

            if (m_PlayerNumber == 1)
                m_Shooting.InitNewStar(GameManager.m_TanksStarSave[0]);
            else
                m_Shooting.InitNewStar(GameManager.m_TanksStarSave[1]);
        }

        //if (!SoundEngine.m_isSoundEnable)
       // {
        //    m_Movement.m_MovementAudio.enabled = false;
       // }
       // else
        //    m_Movement.m_MovementAudio.enabled = true;
    }