Skip navigation
Help

unity3d

warning: Creating default object from empty value in /var/www/vhosts/sayforward.com/subdomains/recorder/httpdocs/modules/taxonomy/taxonomy.pages.inc on line 33.


Well, people often wonder why I tweet so little and why there are such long stretches in between.  The answer is simple enough:  I work.  Well, it’s more complicated than that, I work, I’m headcoach for my son’s football team, my daughter is in both soccer AND volley ball and I’m involved in all of them in some way or another.  That, and I just came off of a really nice game project that took 7 months of my life, and I can’t seem to do social network stuff while working and still be productive.  I don’t know how you all do it!  Anyway, I’d been wanting to do SOMETHING of a blog post just to get back into contributing to the Unity community, and so when I came off this current project, it was my turn to post something on the IR5 blog – YAY!

So, since Unite 11 is starting today and I’d promised to do a demo on this back in 09′ while speaking at Unite 09, I figured it was time to make good on my promise.  I’ve finally put it all together in a very simple, yet flushed out, demo of how I did dog fighting in The Trench Run.

Check out the post, files and demo over at infrared5.com

Enjoy!

0
Your rating: None

There are other improvements I wanted to include, but they’re somewhat tangled in the experimental changes, so they’ll have to wait until the experimental branch is ready for mass consumption.

You can find the source on Github, or download the updated examples project.

0
Your rating: None

About

Being able to create geometry on-the-fly is a really cool Unity feature. And Unity's scripting engine is fast enough that you can even do it from JavaScript. This project contains 10 examples, as well as 2 useful base functionality providers you can drop into your existing projects.

Base Functionality

These are located in the Plugins folder of the project and they are used extensively in these examples. They are read for easy inclusion within your existing projects.

MeshExtrusion
Extrude arbitrary meshes thorugh a range of transformations
Perlin
A useful base class for generating Perlin noise

Examples

This project contains 10 procedural examples in all.

Perlin Noise

Here are the procedural examples involving Perlin noise:

Perlin Noise
Perlin noise is incredibly useful when you want to have randomness that is smoothed as you 'zoom' in.
Fractal Textures
Generates a hybrid Perlin multifractal texture on the fly.
Lightning Bolt
Generates a lightning bolt particle system connecting points. Each particle is offset from the direct line using Perlin noise.

Download

Procedural.zip

1.8M

-->

Meshes

Here are the procedural examples involving mesh manipulation:

Crumple mesh modifier
A mesh deformed by Perlin Noise
Sinus curve modifier
A mesh deformed by Sinus functions
Extrusion
Shows how to use the extrusion script by etxtruding two objects along a physics-defined path
Sculpt Vertices
Sculpt a sphere using the mouse.
Tron Trail
An example of how to generate meshes that looks like the racing trails from Tron.
Twist
Implements a procedural twist deformation in runtime.
0
Your rating: None

Features

Easy to set up
Requires no external data or code libraries
Very fast (see performance)
Can use multiple grids
Runtime changing of a grid, for example, placing a building on the ground
Custom node linking
Free for non-commercial projects (see license for info about commercial use)
Can execute over several frames (meaning no lag)
Path caching
Path simplification and smoothing
Support for navmeshes
Support for creating your own procedural grid generators
Works with Unity iPhone (U3 iPhone is not tested, but it shouldn’t be any problem)

Performance

For example, a path request which resulted in a 148 node path and searched 3030 nodes took about 3 milliseconds to complete.

A longer path, probably longer than you are going to use in a game, resulted in 294 nodes and searched about 22 thousand nodes. Because it was so long, the computation was spread over 3 frames. The path took 24.6 ms to compute, or 8 ms per frame.

If you download the project and open up the RTS scene, you can get a quite good picture on how fast it is, press the Send All At Once button, this will calculate paths for all 240 units to random positions on the map, on my computer this takes about 0.6 seconds while running at 40-50 fps, usually with 0.1-1 ms per path.

Results can vary very much depending on computer specs and things like that, so it is hard to give a good example. These tests were done in the Unity editor.

Licence

Creative Commons License

A* Pathfinding by Aron Granberg is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License.
If you want to use the code for commercial projects please contact me at aron.g@me.com.
A license to use the project/code in commercial applications/games costs US $100, although other options such as profit sharing can be discussed if that suits the person/company in question better.

Download

Download A* Pathfinding Project version 2.95

Documentation

All Docs
Get Started Guide?
FAQ
How do I use my code with the A* script?
API and components
Using Unity iPhone

How does A* pathfinding work?

0
Your rating: None

UnityCar is a realistic and complete vehicle simulation package for Unity3D Game Engine. With UnityCar you can easly integrate (without scripting) any kind of vehicle in your game, from a simple city car to a powerful Formula 1, from an offroad to an heavy truck.
You can obtain any level of simulation accuracy, from an arcade behavior to a almost hardcore simulation.

0
Your rating: None

The aim of this project is to provide a cross platform all inclusive plug-in based library for Unity3d Pro users to aid developers trying to create runtime application based functionality in there own unity projects. Although primarily the focus will be on creating a solution that runs perfectly for PC /Mac standalone solutions, some functionality where appropriate will also be focused on web-applications and possibly may work  on other unity supported platforms although I will not be testing these currently. 

The library will hopefully offer Unity users things such as a file browser, processing bar, access to runtime mesh, texture, audio, video and material libraries, import support for OBJ, DAE, 3DS, standalone use of  a DLL for conversion of H264, MP4, WMV to OGG THEORA and MP3, WAV, AIFF to OGG VORBIS.

The library will be released under MIT and certain import modules under their own MIT licenses, so it will be fine for anyone to play with and utilise, just let me know of any ammendments, optimisations or improvements (and I am sure there will be many!), so I can update future versions for other users.

Although much further work needs to be done on this project, so much has been done already:-

  • Load via inbuilt file browser complete with skinned GUI (non-web platforms only) 
  • Load via path (all target platforms)
  • Load .OBJ & meshes & materials (all target platforms)
  • Load .DAE & meshes & materials (all target platforms)
  • Auto Progressive Mesh LowPoly Collision Generation
  • Auto Scaling, Centering, Handles Parenting and Instances
  • Project Creation Generation and File/Folder Handling
  • Mesh Serialisation and Texture Saving to Project Folder

Note: I have ommitted any DAE importing of bone structures, physics, animations and shaders through the Collada specification for the moment, however that is not to say that one day they might be added as a feature. Also currently project load and save is not fully functional, you will have to wait for this as it is currently being worked on.

Alot of personal time hard-work and effort has already gone into making this possible, please read the licenses at the top of each script and donate if you it will help you commercially.

ANNOUNCEMENT:
You can now download the Runtime Library version Alpha 0.4 here (also contains a cut down slightly older version for indy users)
You can also download some model import tests here.

0
Your rating: None

What I needed and wanted was easy and simple: to load a 3d object (geometry + some materials and textures) at runtime, using just a URL as parameter. The only solution seemed to write my own importer.

Basically, I had the choice between Collada and Wavefornt OBJ. I would choose OBJ any time of the day because it's a simple, concise plain-text format, while Collada is bloated and is XML-based.

It's not that I hate XML (although I'm not a big fan either) but in order to parse XML you need to include a pretty weighty DLL in your *.unity3d file, around 850Kb, which in this case (and in many others) defeats the purpose. Still, it's good to know that it possible, and there are situations when it's ok to use it. If you want to learn more about Unity3D and XML there's a awesome article on this topic by Paul Tondeur.

It turned out that while it's not rocket science to write an OBJ importer, it's not exactly banal either. I spent a few days coding it so I thought I'll share this with everyone - maybe someone will make good use of it.

Here's a package with the source code (v1.1) (or a version that works in Unity 3 (v 1.2)), along with a simple scene demonstrating how it works. In fact it couldn't be simpler. All you have to do is to create an instance of the OBJ class and start a coroutine to load the contents, like this:

PLAIN TEXT
C#:

  1. string path = "http://www.everyday3d/unity3d/obj/monkey.obj";
  2. OBJ obj = new OBJ();
  3. StartCoroutine(obj.Load(path));

Supported features

  • Vertex, normals and UV data
  • Multiple objects per file
  • Vertex groups and multiple materials per object
  • MTL files, diffuse and specular materials
  • Basic textures

And it's all at a cost of ~12Kb extra added to your final file!

0
Your rating: None

Specs:

* Available for unity indie as well as pro licensees.
* Can run on all Unity target platforms.
* Requires no additional installations at runtime.

Features:

* Implements behaviour trees.
* Re-use common behaviour by reference.
* Drag and drop editor interface inside the unity editor.
* Simple connection to character actions via C# interface.
* Designed trees are built to .NET assembly code for maximum performance.
* Action and decorator handlers are reflected automatically runtime.
* Runtime behaviour tree debugger.

4
Your rating: None Average: 4 (1 vote)

Bitverse-unity-gui, aka bit-gui, allows developers to visually edit the gui layout, skin and animation using the unity3d editor.

It works on top of the default immediate mode gui from unity3d engine, but it is not immediate mode, it is more like a traditional component based frameworks.

Layout, skin and animation may be packaged in unity3d prefabs, scenes and assetbundles and treated as assets of your game development pipeline.

Current version screenshot:

0
Your rating: None

This session covers writing native plugins and getting funky with Unity's provided languages.

About

Advanced programmers have two options to extend Unity: Write native plugins, or get funky with Unity's provided languages. This session covers both solutions. Learn how to write C++ plugins with Unity Pro and how to get down with metaprogramming in Boo.

0
Your rating: None