Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
0
Question by Sebulec · Dec 01, 2013 at 05:33 PM · for loopjava to c#

Problem with TD script.

Hi guys. I'm making Tower Defence game and i stuck in scrip which i translated from java to c#. i dont know how to do for loops could you help me? (and also i use ngui free) using UnityEngine; using System.Collections;

 public class INGAme : MonoBehaviour {
     //GUI
     public bool buildPanelOpen =false;
     public TweenPosition BuildPanelTweener; 
     public TweenRotation BuildPanelArrowTweener;
     
     //Placement
     public Transform placementPlanesRoot;
     public Material hoverMat;
     public LayerMask placementLayrerMask;
     private Material originalMat;
     public GameObject lastHitObj;
     
     // build
     public Color onColor;
     public Color offColor;
     public GameObject[] allStructures;
     public UISlicedSprite[] buildBtnGraphics;
     private int structureIndex = 0;
     
     void Start()
     {
         structureIndex = 0;
         ApdateGUI();
     }
     
     void ToggleBuildPanel() {
             if(buildPanelOpen) 
         {
             //ray
             ray = Camera.main.ScreenPointToRay(Input.mousePosition);
             RaycastHit hit;
             if(Physics.Raycast(ray, hit, 1000, placementLayerMask));
             {
                 if(lastHitObj)
                 {
                     lastHitObj.renderer.material = originalMat;
                 }
                 lastHitObj = hit.collider.gameObject;
                 originalMat = lastHitObj.renderer.material;
                 lastHitObj.renderer.material = hoverMat;
             }
 
 
 
             BuildPanelTweener.Play(false);
             BuildPanelArrowTweener.Play(false);
             buildPanelOpen = false;
         }
         
         else 
         {
             if(lastHitObj);
             {
             
                 lastHitObj.renderer.material = originalMat;
                 lastHitObj = null;
             }
         
             BuildPanelTweener.Play(true);
             BuildPanelArrowTweener.Play(true);
             buildPanelOpen = true;
         }
         if(Input.GetMouseButtonDown(0) && lastHitObj)
         {
             if(lastHitObj.tag == "PlacementPlane_Open")
             {
                 GameObject newStructure = instantiane(allStructures[structureIndex], lasHitObj.transform.position, Quaternion.identity);
                 newStructure.transform.localEulerAngles.y = ( Random.Range ( 0, 360 ) );
                 lastHitObj.tag = "PlacementPlane_Taken";
             }
     
         }
         }
     void UpdateGUI () {
         
         //Go through all structure buttons (buttons in the build panel). and set them to “off”
         for(UISlicedSprite theBtnGraphic )//in buildBtnGraphics
         {
             theBtnGraphic.color = offColor;
         }
         //set the selected build button to “on”
         buildBtnGraphics[structureIndex].color = onColor;
     }
     void SetBuildChoice ( GameObject btnObj )
     {
         string btnName = btnObj.name;
         if ( btnName == "Btn_Canoon")
         {
             structureIndex = 0;
         }
         else if ( btnName == "Btn_Missle" )
         {
             structureIndex = 1;
         }
 
         UpdateGUI ();
     }
 }
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

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by bompi88 · Dec 01, 2013 at 05:40 PM

C# has foreach loops, so you could do:

 foreach (UISlicedSprite theBtnGraphic in buildBtnGraphics) {
    theBtnGraphic.color = offColor;
 }

or you can do a regular for loop:

 for (int i = 0; i < buildBtnGraphics.Length; i++) {
     buildBtnGraphics[i].color = offColor;
 }
Comment
Add comment · Show 1 · Share
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
avatar image Sebulec · Dec 01, 2013 at 07:09 PM 0
Share

Oh god thanks i used foreach in my last project and i forgot about it ...

avatar image
-1

Answer by Sebulec · Dec 08, 2013 at 03:16 PM

I made few correct but still there are three errors. I have no ide whats wrong... using UnityEngine; using System.Collections; public class InGAmeGUI : MonoBehaviour { //NGU items public bool buildPanelOpen = false; public TweenPosition BuildPanelTweener; public TweenRotation BuildPanelArrowTweener; //Placement Plane Items public Transform placementPlanesRoot; // attach the placement plane root public Material hoverMat; // attach the hover material to this slot public LayerMask placementLayerMask; // calls up the layer mask selection private Material originalMat; private GameObject lastHitObj; //Build Selection Items public Color onColor; public Color offColor; public GameObject[] allStructures; public UISlicedSprite[] buildBtnGraphics; private int structureIndex = 0; void Start () { //reset the structure index, refresh the GUI structureIndex = 0; UpdateGUI(); } void Update () { if ( buildPanelOpen ) { var ray = Camera.main.ScreenPointToRay ( Input.mousePosition ); RaycastHit hit; if ( Physics.Raycast ( ray,out hit, 1000, placementLayerMask ) ) { if ( lastHitObj ) { lastHitObj.renderer.material = originalMat; } lastHitObj = hit.collider.gameObject; originalMat = lastHitObj.renderer.material; lastHitObj.renderer.material = hoverMat; // sets the planes material to the highlighted material } else // if the raycast didn’t hit anything { if ( lastHitObj ) // if we had previously hit something { lastHitObj.renderer.material = originalMat; // visually de select that object lastHitObj = null; // nullify the plane selection } } // drops a turrent on click if ( Input.GetMouseButtonDown(0) && lastHitObj ) //left mouse button was clicked and there is a last hitObject // if left mouse button (0) is clicked and we have something selected { if(lastHitObj.tag =="PlacementPlane_Open") { // drop the chosen structure exactly at the tile’s position and rotation of Zero. See how the “index” comes into play here? GameObject newStructure = Instantiate( allStructures[structureIndex], lastHitObj.transform.position, Quaternion.identity ); // set the new structure to have a random rotation. just for looks newStructure.transform.localEulerAngles.y = (Random.Range(0, 360)); //newStructure.transform.localEulerAngles.y = ( Random.Range ( 0, 360 ) ); // set this tile’s tag to “Taken” so we can’t double place a structure lastHitObj.tag = "PlacementPlane_Taken"; } } } } void UpdateGUI () { //Go through all structure buttons (buttons in the build panel). and set them to “off” foreach(UISlicedSprite theBtnGraphic in buildBtnGraphics )//in buildBtnGraphics { theBtnGraphic.color = offColor; } //set the selected build button to “on” buildBtnGraphics[structureIndex].color = onColor; } // this happens whenever the build arrow is clicked void ToggleBuildPanel () { if ( buildPanelOpen ) { // hide all build tiles foreach(Transform thePlane in placementPlanesRoot) { thePlane.gameObject.renderer.enabled =false; } // plays the build panel tweener script backward ( false ) buildPanelTweener.Play ( false ); // sets the boolean to false ( closed ) buildPanelOpen = false; } else // the build panel was closed, so instead do this… { BuildPanelTweener.Play(true); BuildPanelArrowTweener.Play(true); foreach ( Transform thePlane in placementPlanesRoot ) { thePlane.gameObject.renderer.enabled = true; } } } // Called whenever a structure choice is clicked ( the button in the build panel ) void SetBuildChoice ( GameObject btnObj ) { string btnName = btnObj.name; if ( btnName == "Btn_Farmer") { structureIndex = 0; } else if ( btnName == "Btn_Cow" ) { structureIndex = 1; } else if ( btnName == "Btn_Alien") { structureIndex = 2; } UpdateGUI (); } }

Comment
Add comment · Show 1 · Share
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
avatar image bompi88 · Dec 08, 2013 at 04:18 PM 0
Share

Unity answers is not a forum, please post a new question (not answer) and at least show us which errors you got. It's a lots of lines of code you got there.

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

17 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

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

Instantiate script crashes unity 3 Answers

How to make spaces in between Gui boxes being made in for loops? 1 Answer

How to import the object from server to unity 2 Answers

Can someone help me fix my Javascript for Flickering Light? 6 Answers


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