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 /
avatar image
0
Question by Agent27765 · Oct 24, 2017 at 08:30 PM · c#scripting problemsystembuilding

How to make object visible without instantiating it?

Hello! I am making a building system to place turrets in my top down shooter but my problem is that when someone has selected a type of turret but decides to change the turret, when they select the new type of turret the previous turret is built. The problem I realized that I had was that I was already instantiating the object before placing it. What I need to do is make the object visible before placing without instantiating it so that when I change the type of turret it wont just be placed in a random place. Another possible solution is that if my mouse is over a UI I set TurretChoosen to false. The problem is that I don't know how to check if my mouse is over UI.

Placing Script

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class PointClickPlace : MonoBehaviour {
 
     public Transform currentTurretPreview;
     public Transform currentTurret;
 
     public Camera MainCamera;
 
     private OpenBulletChooser TurretChooser;
 
     public bool TurretChoosen;
     public int TypeTurretChoosen;
 
     // Use this for initialization
     void Start () {
         TurretChooser = GetComponent<OpenBulletChooser>();
     }
     
     // Update is called once per frame
     void Update () {
         if (TurretChoosen == true)
         {
             Vector3 mPosition = Input.mousePosition;
             mPosition = new Vector3(mPosition.x, mPosition.y, transform.position.y);
             Vector3 Camera = MainCamera.ScreenToWorldPoint(mPosition);
             currentTurretPreview.position = new Vector3(Camera.x, 1, Camera.z);
 
 
             if (Input.GetMouseButtonDown(1) && TurretChoosen == true)
             {
               Instantiate(currentTurret, new Vector3(Camera.x, 1, Camera.z), currentTurret.rotation);
                   TurretChoosen = false;
             }
         }
     }
 
     public void SetTurret(GameObject Turret, GameObject TurretPrev)
     {
         currentTurretPreview = ((GameObject)Instantiate(TurretPrev)).transform;
         currentTurret = Turret.transform;
         TurretChoosen = true;
     }
 }


Comment
Add comment · Show 2
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 andrew-lukasik · Oct 24, 2017 at 09:05 PM 1
Share

To render something without instantiation you can use Graphics.Draw$$anonymous$$esh

PS: don't let $$anonymous$$atrix4x4 scare you, use $$anonymous$$atrix4x4.TRS(pos,rot,scale) to create it.

avatar image Agent27765 andrew-lukasik · Oct 24, 2017 at 09:30 PM 0
Share

Can you give me an example of it for the (currentTurretPreview = ((GameObject)Instantiate(TurretPrev)).transform;) script? Like change it to a Draw$$anonymous$$esh to whatever TurretPrev Gameobject is.Sorry its just I have never used this before and I dont understand the unity learn page.

2 Replies

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

Answer by JonPQ · Oct 24, 2017 at 10:47 PM

if there is only one Renderer / mesh you can enable or disable the renderer component. GetComponent(Renderer).enabled = true; //or false but you should cache this in a variable. avoid using GetComponent when possible.

Or gameObject.SetActiveInHierarchy( true)

Or you use pooling... create a bunch of objects at level start that you will need later, and turn them all off, with setActiveInHierarchy.... then grab them from the list and enable them again when you need them. Pooling is much faster than instantiating.

Comment
Add comment · Show 2 · 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 MaxGuernseyIII · Oct 25, 2017 at 01:01 AM 0
Share

I would recommend encapsulating whether you are instantiating or pooling.

Then again, I would recommend encapsulating everything.

avatar image JonPQ · Oct 25, 2017 at 04:12 PM 0
Share

There are also lots of good Pooling assets on the asset store if you don't feel like writing one.

avatar image
0

Answer by heybaw · Oct 25, 2017 at 12:30 AM

To add to @JonPQ's answer, I would definitely recommend that you use an object pool. Give each turret a 'placed' flag to make things easy for yourself, and then place them somewhere in your game, in List objects. Every time the user seems like he might use that turret, you search for the first one that doesn't have a 'placed' flag. If the user clicks anywhere, without that flag changing, you return the object back to the pool. Once the pool reaches one, you replenish it.

I'm not sure how clear this answer is, so if you are having trouble, look up "Object Pooling" on codeproject, until you find the tutorial that speaks to you.

Comment
Add comment · 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

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

429 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 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

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

check If Building will collide with something before placed? 1 Answer

Question about Instantiation 1 Answer

How do you destroy a GameObject during the build process? 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