Showing posts with label unity3d. Show all posts
Showing posts with label unity3d. Show all posts

Tuesday, April 14, 2015

Instantiate a prefab

I keep having to look up how to instantiate a prefab.  This is an easier place for me to look for it.

Put this as a method variable

// C# 

public Transform prefabMovePath;

Once you have that method variable in your Unity script, then you will see this.
Simply drag and drop the prefab you want to the script to instantiate to the PrefabMovePath in unity.


Since I'll probably forget that too, the way you create a prefab is pretty simple, build it up in the hierarchy/scene, then drag it from the hierarchy to the project.  It will have a blue cube icon.

Use this Instantiate code to create an instance of that prefab.

private Transform curMove;
void Start() 
{
    curMove = (Transform)Instantiate(prefabMovePath, new Vector3(0, 0, 0), Quaternion.identity);
}

Then, since that prefab has a script I need access to, use this when wanting to call code in the script that prefab is attached to.

        MovePath mp = curMove.GetComponent();
        mp.rotateLeft();

Tuesday, January 20, 2015

How to configure a Unity project to use VisualStudio

I started a new 2D project to try and see if I could port an old game I did in Java called EmPathMe (http://www.woodsgoods.com/gaw, Good luck getting it to run).

When I went to launch a script in VisualStudio it complained there wasn't a .sln file so I had to figure it out again. I'm leaving myself this post so I don't have to figure it out again.

You select Assets/Import Package/Custom Package...
 
Then you navigate to the location where the VisualStudio Tools for Unity were installed (http://unityvs.com/). I installed them in the default location C:\Program Files (x86)\Microsoft Visual Studio Tools for Unity\2013. The debug only works well with VisualStudioPro and I have no idea how I'm going to pay for the pro version once my  That's one reason I'm setting this up so I can get the touch code working well before my trial license expires

 
Choose all the package assets.

 
Now you will have the Visual Studio Tools menu and you can generate the project files so you don't see the error about not having a .sln file when launching the Unity editor.


Wednesday, January 14, 2015

Unity script referencing



I wanted my keyboard input script to retrieve a value from a grid generator script so it knew how far to move one of my game objects. It took me a while to figure it out even though it's simple so I figure it's best to leave myself a bread crumb so I don't have to search so much next time.

//this is how you get a reference and value out of another script
scriptholder = GameObject.Find("EmptyScriptHolder");
GridManager script = scriptholder.GetComponent<GridManager>();
print("Grid gap =" + script.stepsize);


This shows how to get a reference to the actual script, in this case it's my EmptyObject I use to hold scripts that are not associated with actual GameObjects.  I call it EmptyScriptHolder.  I then get the reference to the GridManager script.  This is the actual type name of the script.  Within that script is a method variable called stepsize.  Overall it's very simple to get a value out of another script once you know how to do it.

This site was very helpful even though it's documentation from a few versions back.
http://docs.unity3d.com/412/Documentation/ScriptReference/index.Accessing_Other_Game_Objects.html

Thursday, November 27, 2014

Unity touch debugging

I mentioned this in an earlier post, but thought I would go into more detail. I think this is  a great solution for testing touch input with Unity.

http://docs.unity3d.com/ScriptReference/Input.GetTouch.html

I'm using Visual Studio Pro 2013 to do this and I don't see a way to do it with Mono.  The only other way I've found is to use an actual device and connect a debugger to the device. This way I've found allows me to simply run a Visual Studio project directly on my touch device/development environment and test my touch code.

The first thing is to Build the project using File/Build and Run

 

 Select Windows Store app and then click Build or Build and Run.

 
The default location is to use the winout directory in the current Unity project. This worked well for me so I just used the default.
 
 
This creates a .sln file in that winout directory with all the necessary Visual Studio project files. Simply double click on the .sln file to launch Visual Studio Pro 2013.
 
 
 
I tested the project and one really nice thing is that the .cs files associated with behaviors in my project are actually linked back to the same files in my Unity project. So after making changes, they are already in my Unity project and I don't have to copy them back.
 
 
 
One thing to note is that this is only for script debugging. If I want to make changes to my layout or the models I've laid out in my Scene I will have to close Visual Studio, return to Unity to make the changes, then rebuild the winout project to work on my scripts again.  It's a small thing and this is still a much easier way to debug touch input than anything I've had to do before.

 

 

 

Friday, November 21, 2014

Surface Pro 3 and Unity for Windows Store

Recently received a Surface Pro 3 as a gift and really love it.  Was using a 5 year old Toshiba that was limping along even with the 128GB SSD. The SSD made it viable for quite a while, but it was really getting behind. Enjoying the new Surface. First loaded Unity and Visual Studio Express 2013.  It seems like I can finally develop on an airplane even if the seat in front of me is reclined and I'm next to a 300 pounded.  The laptop was just too bulky to use when someone was sitting next to me.

So far I spent a lot of time getting Unity and Visual Studio connected together using UnityVS. Not that I don't think Mono Develop isn't good enough, I do like that, but for some reason I'm drawn to Windows Store app development and need to use VS to build Unity apps for Windows Store.

It isn't well documented, but don't try to use Visual Studio Express with UnityVS.  It won't give you an error, but will only have a message that it can't find Visual Studio.   You have to install Visual Studio Pro to work with UnityVS.  I'm now running a 90 day trial and everything is working, but will have to write quick and decide if I want to upgrade my older version of Visual Studio Pro.  I spent a lot of time uninstalling and reinstalling UnityVS to get this to work. Many messages from Visual Studio that the project type wasn't recognized.  Once I installed Visual Studio Pro it still had the same message and I reinstalled UnityVS and everything worked well.

Another thing that led me in this direcetion was trying to figure out how to debug the touch screen interface in my Unity game. This seems like it will work well.  In Unity, you have to Build the solution for the Windows Store application which will create a new folder with a Visual Studio Windows Store project.  This has the C# scripts linked in it so you can debug and change those directly and debug your Windows Store application directly.  I could have done something similar and connected my Android tablet directly to Unity and ADB debugged on hardware, but this seems like a better way and I will be using that.