<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>ByDesign Games &#187; Unity3D</title> <atom:link href="http://www.bydesigngames.com/tag/unity3d/feed/" rel="self" type="application/rss+xml" /><link>http://www.bydesigngames.com</link> <description>Next-Generation Casual Entertainment</description> <lastBuildDate>Wed, 08 Sep 2010 08:52:00 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>[Unify Wiki] Webservices In Unity</title><link>http://www.bydesigngames.com/2010/09/06/unify-wiki-webservices-in-unity/</link> <comments>http://www.bydesigngames.com/2010/09/06/unify-wiki-webservices-in-unity/#comments</comments> <pubDate>Mon, 06 Sep 2010 18:48:42 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:This will show you how to set up webservices and how to consume these services, and services from 3rd partys, from within Unity. It will also expand into using the ''Windows Communication Framework'' (''WCF'') which adds a lot of communicati...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>This will show you how to set up webservices and how to consume these services, and services from 3rd partys, from within Unity. It will also expand into using the ''Windows Communication Framework'' (''WCF'') which adds a lot of communication options, like JSON, built-in security and communicating directly over TCP/IP.<br
/> <br
/> All code is written in C# on both the server and the client side.<br
/> <br
/> == Introduction ==<br
/> <br
/> Using webservices you can talk to your webserver from within Unity using [http://en.wikipedia.org/wiki/SOAP SOAP].<br
/> <br
/> By using ''System.Web.Services'', or ''System.Servicemodel'' for ''WCF'', as well as some Mono utilities - ''wsdl'' and ''svcutil'' for generating service descriptions and ''xsp'' as a development webserver, we can call the webserver functions directly from within our clients and even receive complex .Net objects as a response.<br
/> <br
/> Unfortunately, as an oversight (I hope) this is currently not possible from within the webplayer - only in standalone builds.<br
/> <br
/> == Requirements ==<br
/> <br
/> All of the below is written with the assumption that you have ''Unity 3'' installed, aswell as a separate installation of ''Mono 2.7.6''. To host the webservices in a production environment you should use ''Apache'' and ''mod_mono'' or ''Microsoft IIS'' - whichever you prefer.<br
/> <br
/> I have only tested this on Windows, but there should be nothing very system specific here.<br
/> <br
/> == Getting started with a webservice ==<br
/> <br
/> We will start by using the webservices from System.Web.Services, as these are the simplest. It only gives us basic SOAP but for many cases this might be sufficient.<br
/> <br
/> On the server side we will use what ASP.NET calls .asmx files, which contain the definition of the service. We will then use the Mono utility ''wsdl'' to automatically generate a source code file for the client.<br
/> <br
/> === Setting up the project ===<br
/> <br
/> Create a new project and name it '''''asmxtest'''''. In your Assets folder, create a new folder and rename it to &lt;tt&gt;Plugins&lt;/tt&gt;. To access the webservices we need some assemblies from Mono. In your Unity installation folder, go to the directory &lt;tt&gt;Editor/Data/Mono/lib/mono/2.0&lt;/tt&gt; and copy these two files to your new &lt;tt&gt;Plugins&lt;/tt&gt; folder:<br
/> <br
/> * &lt;tt&gt;System.Web.dll&lt;/tt&gt;<br
/> * &lt;tt&gt;System.Web.Services.dll&lt;/tt&gt;<br
/> <br
/> In Unity, create a new scene. Inside your Assets folder, create a new folder and name it &lt;tt&gt;WebClient&lt;/tt&gt;. Inside this folder, create a new C# script named &lt;tt&gt;ClientObject.cs&lt;/tt&gt;. Add an Empty Gameobject and rename it to WebClient. Add the ClientObject.cs to the WebClient object, and save the scene.<br
/> <br
/> Also, in your '''project folder''' (''not'' your Assets folder) create a new folder and name it &lt;tt&gt;WebServer&lt;/tt&gt;. This will be where you place your webserver files - you can of course place it anywhere, but I prefer to keep it within the project while developing.<br
/> <br
/> === The webserver ===<br
/> <br
/> Inside the WebServer directory, create the file &lt;tt&gt;MyService.asmx&lt;/tt&gt;. Also create a directory named &lt;tt&gt;App_Code&lt;/tt&gt; and inside it a file named &lt;tt&gt;MyService.asmx.cs&lt;/tt&gt;.<br
/> <br
/> The &lt;tt&gt;App_Code&lt;/tt&gt; directory is where you place all the code for the webservices, while the root only holds the .asmx description files. Later, when you are ready for production, the .cs files can be compiled and placed inside a ''/bin'' directory instead.<br
/> <br
/> &lt;tt&gt;MyService.asmx&lt;/tt&gt; is the service description file. Here we define the service language (C#), and the class to use - in our case this is the class &lt;tt&gt;WebService&lt;/tt&gt;.<br
/> <br
/> In our code file, &lt;tt&gt;MyService.asmx.cs&lt;/tt&gt;, we define the class ''WebService'', and add the method ''Add'' which will simply add two integers and return the result. Note the decorators: &lt;tt&gt;[WebService]&lt;/tt&gt; defines this class as a web-service, and &lt;tt&gt;[WebMethod]&lt;/tt&gt; makes the method availiable to call from the client. Methods can be defined in this class without the &lt;tt&gt;[WebMethod]&lt;/tt&gt; decorator - they will then not be callable by SOAP.<br
/> <br
/> ==== MyService.asmx ====<br
/> <br
/> &lt;csharp&gt;&lt;%@ WebService Language="C#" Class="MyService"%&gt;&lt;/csharp&gt;<br
/> <br
/> <br
/> ==== MyService.asmx.cs ====<br
/> <br
/> &lt;csharp&gt;using System;<br
/> using System.Web.Services;<br
/> <br
/> [WebService (Namespace = "http://tempuri.org/MyService")] // tempuri.org is the default, you should change this<br
/> public class MyService<br
/> {<br
/> [WebMethod]<br
/> public int Add(int a, int b)<br
/> {<br
/> return a+b;<br
/> }<br
/> }&lt;/csharp&gt;<br
/> <br
/> <br
/> === Testing the server ===<br
/> <br
/> Now, lets test the server. Start a command shell (''cmd'') and change to the webserver directory. We will now use ''xsp'' to serve the pages, ''xsp'' can be found in your Mono installation directory (ex. ''C:&#92;Program Files&#92;Mono-2.6.7&#92;bin''). I reccomend you put this directory in your path.<br
/> <br
/> Start the webserver from the command prompt:<br
/> <br
/> &lt;pre&gt;&gt; xsp&lt;/pre&gt;<br
/> <br
/> By default it will host the current directory on port 8080, so to see your web-server in action, start up a browser and point it to http://localhost:8080/MyService.asmx - Wohoo! It works!<br
/> <br
/> You can now see all methods provided by this service, and even test them using the builtin web interface.<br
/> <br
/> === Consuming the service ===<br
/> <br
/> Keep the webserver running for now, we will now automatically create a class for the client to use with the ''wsdl'' utility, which is also included in the Mono installation.<br
/> <br
/> First, lets take a look at the system description that the server generates for this utility, point your browser to http://localhost:8080/MyService.asmx?wsdl - this will give you an xml file with the web-service description. It is this information that the ''wsdl'' utility uses to generate a C# file.<br
/> <br
/> So lets get started, open up a new command prompt and change to your Unity project folder (''asmxtest/Assets/WebClient''). Run ''wsdl'' as follows:<br
/> <br
/> &lt;pre&gt;&gt; wsdl -out:MyService.cs http://localhost:8080/MyService.asmx?wsdl&lt;/pre&gt;<br
/> <br
/> This will create a file called &lt;tt&gt;MyService.cs&lt;/tt&gt; which includes everything you need to call the webservice from within your Unity project (to see the parameters you can pass to the ''wsdl'' utility, run it without any arguments).<br
/> <br
/> Open the file &lt;tt&gt;MyService.cs&lt;/tt&gt; and take a look, but don't change anything.<br
/> <br
/> Now, lets try consuming this service from within Unity. Remember the &lt;tt&gt;ClientObject.cs&lt;/tt&gt; file you created earlier? Open it up and enter the following code.<br
/> <br
/> ==== ClientObject.cs ====<br
/> <br
/> &lt;csharp&gt;using UnityEngine;<br
/> using System;<br
/> using System.Collections;<br
/> <br
/> public class ClientObject : MonoBehaviour<br
/> {<br
/> void Start()<br
/> {<br
/> MyService service = new MyService();<br
/> int n = service.Add(2,3);<br
/> Debug.Log(n);<br
/> }<br
/> }&lt;/csharp&gt;<br
/> <br
/> <br
/> You can now try to play the scene from Unity - keep an eye on the console.<br
/> <br
/> What we do here is create a service object which is defined in the &lt;tt&gt;MyService.cs&lt;/tt&gt; file, and we simply call the ''Add'' method on this object. This will connect to our webserver, call the function there, and return us the result. Magic!<br
/> <br
/> I'm not going to go any further in how to write the webservices, but you should be able to expand on this easily, by for example adding database access and whatever you'd like.<br
/> <br
/> There are also publically availiable webservices on the web that you can use, for example check out http://www.service-repository.com/<br
/> <br
/> == Using WCF ==<br
/> === Setting up the project ===<br
/> === The webserver ===<br
/> === Consuming the service ===<br
/> === Switching to JSON ===<br
/> === Adding security ===<br
/> <br
/> == Webservices in the WebPlayer ==</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Webservices_In_Unity>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/09/06/unify-wiki-webservices-in-unity/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Sound Manager</title><link>http://www.bydesigngames.com/2010/09/05/unify-wiki-sound-manager/</link> <comments>http://www.bydesigngames.com/2010/09/05/unify-wiki-sound-manager/#comments</comments> <pubDate>Sun, 05 Sep 2010 10:42:34 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: New page: Author: Tom Vogt (tom@lemuria.org) ==Description== Two scripts I use to add a bit of dynamic music. The first script takes a list of songs and will play through them, repeating with the f...Author: Tom Vogt (tom@lemuria.org)==Des...]]></description> <content:encoded><![CDATA[<p>Summary: New page: Author: Tom Vogt (tom@lemuria.org) ==Description== Two scripts I use to add a bit of dynamic music. The first script takes a list of songs and will play through them, repeating with the f...</p><hr
/><div>Author: Tom Vogt (tom@lemuria.org)<br
/> <br
/> ==Description==<br
/> Two scripts I use to add a bit of dynamic music. The first script takes a list of songs and will play through them, repeating with the first when he reaches the last one. The second script allows interruption of the background music with event-driven clips, after which the background music will continue.<br
/> <br
/> <br
/> == Usage ==<br
/> You need 3 game objects for the first script:<br
/> * Music Manager<br
/> ** Source 1<br
/> ** Source 2<br
/> <br
/> The two sources need an audio source component attached. Everything else will be handled by the script. Attach it to the Music Manager gameobject, drag the two source gameobjects into the slots for Source 1 and Source 2 and your music clips into the array for soundtracks.<br
/> <br
/> <br
/> The second script should be attached to a collider object with the collider set to trigger. This trigger defines the area where the interrupt will occur. Make it large enough, because if the player leaves the area, the interrupt music will end. One way or the other, it will only play once. It should be easy to modify the script so that it either loops, or does not end upon leaving.<br
/> <br
/> <br
/> == JavaScript - SoundManager.js ==<br
/> &lt;javascript&gt;<br
/> /*<br
/> Sound Manager Scripty by Tom Vogt &lt;tom@lemuria.org&gt;<br
/> <br
/> attach to a gameobject that has two children (Source1 and Source2) which have audio source components<br
/> the audio clips used as soundtracks should have "3D sound" DISABLED<br
/> call "Interrupt()" to fade in event-driven music (see MusicTrigger.js for an example)<br
/> */<br
/> <br
/> var SoundTracks : AudioClip[];<br
/> var FadeLength : float = 2.0;<br
/> <br
/> var Source1 : GameObject;<br
/> var Source2 : GameObject;<br
/> private var CurrentSourceActive : int = 1;<br
/> private var CurrentTrack : int = 0;<br
/> private var SoundRunning : boolean = true;<br
/> private var Interrupted : boolean = false;<br
/> <br
/> function Start() {<br
/> if (SoundTracks.length==0) return;<br
/> Source1.audio.volume = 1.0;<br
/> Source2.audio.volume = 0.0;<br
/> <br
/> Source1.audio.PlayOneShot(SoundTracks[0]);<br
/> yield WaitForSeconds(SoundTracks[0].length - FadeLength);<br
/> Fadeover();<br
/> }<br
/> <br
/> function Fadeover() {<br
/> while (SoundRunning) {<br
/> CurrentTrack++;<br
/> if (CurrentTrack&gt;=SoundTracks.length) CurrentTrack=0;<br
/> Debug.Log("next track: "+CurrentTrack);<br
/> <br
/> if (CurrentSourceActive==1) {<br
/> Debug.Log("switching to source 2");<br
/> Source2.audio.PlayOneShot(SoundTracks[CurrentTrack]);<br
/> CurrentSourceActive=2;<br
/> FadeUpDown(Source2.audio, Source1.audio, FadeLength);<br
/> } else {<br
/> Debug.Log("switching to source 1");<br
/> Source1.audio.PlayOneShot(SoundTracks[CurrentTrack]);<br
/> CurrentSourceActive=1;<br
/> FadeUpDown(Source1.audio, Source2.audio, FadeLength);<br
/> }<br
/> Debug.Log("waiting for end...");<br
/> yield WaitForSeconds(SoundTracks[CurrentTrack].length - FadeLength);<br
/> }<br
/> }<br
/> <br
/> function Interrupt(with:AudioClip) {<br
/> Debug.Log("interrupting");<br
/> if (Interrupted) return;<br
/> Interrupted = true;<br
/> if (CurrentSourceActive==1) {<br
/> Source2.audio.PlayOneShot(with);<br
/> FadeUpDown(Source2.audio, Source1.audio, 1.0);<br
/> } else {<br
/> Source1.audio.PlayOneShot(with);<br
/> FadeUpDown(Source1.audio, Source2.audio, 1.0);<br
/> }<br
/> yield WaitForSeconds(1.0);<br
/> var waitfor = with.length-2.0;<br
/> if (CurrentSourceActive==1) {<br
/> Source1.audio.Pause();<br
/> if (waitfor&gt;0)	yield WaitForSeconds(waitfor);<br
/> EndInterrupt();<br
/> } else {<br
/> Source2.audio.Pause();<br
/> if (waitfor&gt;0)	yield WaitForSeconds(waitfor);<br
/> EndInterrupt();<br
/> }<br
/> }<br
/> <br
/> function EndInterrupt() {<br
/> if (!Interrupted) return;<br
/> Interrupted = false;<br
/> if (CurrentSourceActive==1) {<br
/> Source1.audio.Play();<br
/> FadeUpDown(Source1.audio, Source2.audio, 1.0);<br
/> yield WaitForSeconds(1.0);<br
/> Source2.audio.Stop();<br
/> } else {<br
/> Source2.audio.Play();<br
/> FadeUpDown(Source2.audio, Source1.audio, 1.0);<br
/> yield WaitForSeconds(1.0);<br
/> Source1.audio.Stop();<br
/> }<br
/> }<br
/> <br
/> function FadeUpDown(up:AudioSource, down:AudioSource, duration:float) {<br
/> var MyVolume = 0.0;<br
/> while (MyVolume&lt;1.0) {<br
/> MyVolume += Time.deltaTime / duration;<br
/> up.volume = MyVolume;<br
/> down.volume = 1.0-MyVolume;<br
/> yield WaitForFixedUpdate();<br
/> }<br
/> up.volume = 1.0;<br
/> down.volume = 0.0;<br
/> }<br
/> &lt;/javascript&gt;<br
/> <br
/> <br
/> == JavaScript - MusicTrigger.js ==<br
/> &lt;javascript&gt;<br
/> @script RequireComponent(Collider)<br
/> <br
/> var MusicController:GameObject;<br
/> var MySound : AudioClip;<br
/> <br
/> function OnTriggerEnter() {<br
/> MusicController.SendMessage("Interrupt", MySound);<br
/> }<br
/> <br
/> function OnTriggerExit() {<br
/> MusicController.SendMessage("EndInterrupt");<br
/> }<br
/> <br
/> &lt;/javascript&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Sound_Manager>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/09/05/unify-wiki-sound-manager/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Introducing The Fabricator Contest!</title><link>http://www.bydesigngames.com/2010/09/01/unity-technologies-introducing-the-fabricator-contest/</link> <comments>http://www.bydesigngames.com/2010/09/01/unity-technologies-introducing-the-fabricator-contest/#comments</comments> <pubDate>Wed, 01 Sep 2010 18:10:43 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3400</guid> <description><![CDATA[MuseGames.com &#038; Unity Technologies are teaming up for a new bi-monthly Unity &#8220;Prefab&#8221; based contest called The Fabricator Contest! The contest will be a regular event that will challenge members of the community to show their stuff by creating prefabs based on specific themes, and of course because it&#8217;s a contest that means winning entries [...]]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow"  href="http://musegames.com/contest"><img
class="aligncenter size-full wp-image-3401" title="FabricatorContest" src="http://blogs.unity3d.com/wp-content/uploads/2010/09/FabricatorContest.jpg" border="0" alt="FabricatorContest" width="650" height="272"/></a></p><p
style="text-align:justify;">MuseGames.com &amp; Unity Technologies are teaming up for a new bi-monthly Unity &#8220;Prefab&#8221; based contest called <a
rel="nofollow" title="Go to musegames.com..."  href="http://musegames.com/contest">The Fabricator Contest</a>! The contest will be a regular event that will challenge members of the community to show their stuff by creating prefabs based on specific themes, and of course because it&#8217;s a contest that means winning entries will earn prizes. What&#8217;s more is that all of the project files submitted will be released back to the community, so in the end we think this will result in a lot of awesome new prefab goodness that we can all benefit from. To kick things off we&#8217;re challenging folks to create and submit their best flame thrower, and for the winning effort we&#8217;re offering two (2) tickets to Unite 2010, an $800 value. So bring the heat and show us what you&#8217;ve got! For more information about the contest, including a full set of dates/deadlines and contest rules, please check out the contest page over at musegames.com:</p><p
style="text-align:justify;"><a
rel="nofollow" title="Go to musegames.com..."  href="http://musegames.com/contest">The Fabricator Contest</a></p><p
style="text-align:justify;"></p><p
style="text-align:justify;">Please be sure to also keep an eye on the musegames.com blogs as well for contest updates and information, starting with their matching announcement post:</p><p
style="text-align:justify;"><a
rel="nofollow" title="Go to musegames.com..."  href="http://musegames.com/news/general/introducing-the-fabricator-contest/">Introducing The Fabricator Contest!</a></p><p
style="text-align:justify;">Thanks and good luck to all that enter!</p><p><a
href=http://blogs.unity3d.com/2010/09/01/the-fabricator-contest/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/09/01/unity-technologies-introducing-the-fabricator-contest/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Flashlight</title><link>http://www.bydesigngames.com/2010/08/29/unify-wiki-flashlight/</link> <comments>http://www.bydesigngames.com/2010/08/29/unify-wiki-flashlight/#comments</comments> <pubDate>Sun, 29 Aug 2010 21:36:29 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: Created a new page for a super simple flashlight/light switch script: [[Category: MonoBehaviour]] [[Category: C Sharp]] [[Category: Scripts]] [[Category: Lights]] This is a super simple script that al[[Category: MonoBehaviour]]
[[Category: C...]]></description> <content:encoded><![CDATA[<p>Summary: Created a new page for a super simple flashlight/light switch script: [[Category: MonoBehaviour]] [[Category: C Sharp]] [[Category: Scripts]] [[Category: Lights]] This is a super simple script that al</p><hr
/><div>[[Category: MonoBehaviour]]<br
/> [[Category: C Sharp]]<br
/> [[Category: Scripts]]<br
/> [[Category: Lights]]<br
/> This is a super simple script that allows a flash light to be switched on and off.<br
/> <br
/> == Set Up ==<br
/> #Simply set up an input key named: Flashlight<br
/> #Place the light you wish to use as a flashlight in the place provided<br
/> And you're done<br
/> <br
/> == Script: FlashLight.cs ==<br
/> &lt;csharp&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br
/> // Filename: FlashLight.cs<br
/> // Author: Garth "Corrupted Heart" de Wet &lt;mydeathofme[at]gmail[dot]com&gt;<br
/> // Website: www.CorruptedHeart.co.cc<br
/> // <br
/> // Copyright (c) 2010 Garth "Corrupted Heart" de Wet<br
/> // <br
/> // Permission is hereby granted, free of charge (a donation is welcome), to any person obtaining a copy<br
/> // of this software and associated documentation files (the "Software"), to deal<br
/> // in the Software without restriction, including without limitation the rights<br
/> // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br
/> // copies of the Software, and to permit persons to whom the Software is<br
/> // furnished to do so, subject to the following conditions:<br
/> // <br
/> // The above copyright notice and this permission notice shall be included in<br
/> // all copies or substantial portions of the Software.<br
/> // <br
/> // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br
/> // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br
/> // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<br
/> // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br
/> // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br
/> // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN<br
/> // THE SOFTWARE.<br
/> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br
/> <br
/> using UnityEngine;<br
/> <br
/> public class FlashLight : MonoBehaviour<br
/> {<br
/> public Light FlashLightObject;<br
/> private bool LightEnabled = false;<br
/> <br
/> void Update ()<br
/> {<br
/> if(Input.GetButtonDown("Flashlight"))<br
/> {<br
/> LightEnabled = !LightEnabled;<br
/> FlashLightObject.enabled = LightEnabled;<br
/> }<br
/> }<br
/> }&lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Flashlight>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/29/unify-wiki-flashlight/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] CSharp Unity Tutorial</title><link>http://www.bydesigngames.com/2010/08/28/unify-wiki-csharp-unity-tutorial/</link> <comments>http://www.bydesigngames.com/2010/08/28/unify-wiki-csharp-unity-tutorial/#comments</comments> <pubDate>Sat, 28 Aug 2010 19:20:17 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: created an own page for the C# Tutorial contents=== Programming with C# and Unity ===* [[Programming_Introduction&#124;Introduction &#38; References (Languages, Compilers)]]
* [[Programming_Chapter_1&#124;Chapter 1 (Statements, Comments, Types, Vari...]]></description> <content:encoded><![CDATA[<p>Summary: created an own page for the C# Tutorial contents</p><hr
/><div>=== Programming with C# and Unity ===<br
/> <br
/> * [[Programming_Introduction|Introduction &amp; References (Languages, Compilers)]]<br
/> * [[Programming_Chapter_1|Chapter 1 (Statements, Comments, Types, Variables, Scope)]]<br
/> * [[Programming_Chapter_2|Chapter 2 (Arrays, Operators, Functions)]]<br
/> * [[Programming_Chapter_3|Chapter 3 (Objects, Scope Modifiers)]]<br
/> * [[Programming_Chapter_4|Chapter 4 (Enumeration, Selection, Iteration, Jump)]]<br
/> * [[Programming_Chapter_5|Chapter 5 (Structures, Properties, Inheritance)]]<br
/> &lt;!-- sections to be added, once they exist:<br
/> * Note: Import/Using .NET Classes<br
/> --&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=CSharp_Unity_Tutorial>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/28/unify-wiki-csharp-unity-tutorial/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Please understand the purpose of Infinite Unity 3D</title><link>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-please-understand-the-purpose-of-infinite-unity-3d/</link> <comments>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-please-understand-the-purpose-of-infinite-unity-3d/#comments</comments> <pubDate>Fri, 27 Aug 2010 03:11:44 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9321</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-please-understand-the-purpose-of-infinite-unity-3d/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Multitouch Surface + Iregular&#8217;s Unity3D Framework</title><link>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-multitouch-surface-iregulars-unity3d-framework/</link> <comments>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-multitouch-surface-iregulars-unity3d-framework/#comments</comments> <pubDate>Fri, 27 Aug 2010 01:59:02 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9319</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-multitouch-surface-iregulars-unity3d-framework/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Sic&#8217;em Studios&#8217; Attack of the Stupid Marketing&#8230;</title><link>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-sicem-studios-attack-of-the-stupid-marketing/</link> <comments>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-sicem-studios-attack-of-the-stupid-marketing/#comments</comments> <pubDate>Fri, 27 Aug 2010 01:46:10 +0000</pubDate> <dc:creator>StevenWhite</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9318</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-sicem-studios-attack-of-the-stupid-marketing/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] First Steps to Unity Android: Part 3 App Components</title><link>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-first-steps-to-unity-android-part-3-app-components/</link> <comments>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-first-steps-to-unity-android-part-3-app-components/#comments</comments> <pubDate>Thu, 26 Aug 2010 23:27:32 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9315</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/27/infiniteunity3d-first-steps-to-unity-android-part-3-app-components/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] First Steps to Android Unity Part 2</title><link>http://www.bydesigngames.com/2010/08/26/infiniteunity3d-first-steps-to-android-unity-part-2/</link> <comments>http://www.bydesigngames.com/2010/08/26/infiniteunity3d-first-steps-to-android-unity-part-2/#comments</comments> <pubDate>Thu, 26 Aug 2010 21:31:53 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9312</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/26/infiniteunity3d-first-steps-to-android-unity-part-2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] LoadSceneAdditive</title><link>http://www.bydesigngames.com/2010/08/26/unify-wiki-loadsceneadditive/</link> <comments>http://www.bydesigngames.com/2010/08/26/unify-wiki-loadsceneadditive/#comments</comments> <pubDate>Thu, 26 Aug 2010 20:22:19 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: added scriptFound this in forums, added a little extra. Copies one scene into another. Originally by cyb3rmaniak and kino, thanks guys.&#60;javascript&#62;
@MenuItem("File/Load Scene [Additive]")
static function Apply ()
{  var strScenePat...]]></description> <content:encoded><![CDATA[<p>Summary: added script</p><hr
/><div>Found this in forums, added a little extra. Copies one scene into another. Originally by cyb3rmaniak and kino, thanks guys.<br
/> <br
/> &lt;javascript&gt;<br
/> @MenuItem("File/Load Scene [Additive]") <br
/> static function Apply () <br
/> { <br
/> var strScenePath : String = AssetDatabase.GetAssetPath(Selection.activeObject); <br
/> if (strScenePath == null) <br
/> {<br
/> EditorUtility.DisplayDialog("Select Scene", "You Must Select a Scene first!", "Ok"); <br
/> return; <br
/> } <br
/> if (!strScenePath.Contains(".unity"))<br
/> {<br
/> EditorUtility.DisplayDialog("Select Scene","You Must Select a SCENE first, you selected "+strScenePath, "Ok"); <br
/> return; <br
/> }<br
/> <br
/> Debug.Log("Opening " + strScenePath + " additively"); <br
/> EditorApplication.OpenSceneAdditive(strScenePath); <br
/> return; <br
/> }<br
/> &lt;/javascript&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=LoadSceneAdditive>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/26/unify-wiki-loadsceneadditive/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] I am no longer at the creative circus</title><link>http://www.bydesigngames.com/2010/08/25/infiniteunity3d-i-am-no-longer-at-the-creative-circus/</link> <comments>http://www.bydesigngames.com/2010/08/25/infiniteunity3d-i-am-no-longer-at-the-creative-circus/#comments</comments> <pubDate>Wed, 25 Aug 2010 16:00:13 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9296</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/25/infiniteunity3d-i-am-no-longer-at-the-creative-circus/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] How To make Games Fun-Unity 3D Top Down Shooter Game Documentary</title><link>http://www.bydesigngames.com/2010/08/24/infiniteunity3d-how-to-make-games-fun-unity-3d-top-down-shooter-game-documentary/</link> <comments>http://www.bydesigngames.com/2010/08/24/infiniteunity3d-how-to-make-games-fun-unity-3d-top-down-shooter-game-documentary/#comments</comments> <pubDate>Tue, 24 Aug 2010 10:00:28 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://diamondtearz.org/blog/?p=2130</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/24/infiniteunity3d-how-to-make-games-fun-unity-3d-top-down-shooter-game-documentary/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Json</title><link>http://www.bydesigngames.com/2010/08/24/unify-wiki-json/</link> <comments>http://www.bydesigngames.com/2010/08/24/unify-wiki-json/#comments</comments> <pubDate>Tue, 24 Aug 2010 05:36:58 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:==Author==
[mailto:matt@matt-schoen.com Matt Schoen] of [http://www.defectivestudios.com Defective Studios]
==Download==
[[Media:JSONObject.zip&#124;Download JSONObject.zip]]= Intro =
I came across the need to send structured data to and from a...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>==Author==<br
/> [mailto:matt@matt-schoen.com Matt Schoen] of [http://www.defectivestudios.com Defective Studios]<br
/> ==Download==<br
/> [[Media:JSONObject.zip|Download JSONObject.zip]]<br
/> <br
/> = Intro =<br
/> I came across the need to send structured data to and from a server on one of my projects, and figured it would be worth my while to use JSON. When I looked into the issue, I tried a few of the C# implementations listed on [json.org], but found them to be too complicated, or used part of the .NET framework not accessible from Unity scripts. So, I've written a very simple JSONObject class, which can be generically used to encode/decode data into a simple container. This page assumes that you know what JSON is, and how it works. It's rather simple, just go to json.org for a visual description of the encoding format.<br
/> <br
/> = Usage =<br
/> Users should not have to modify the JSONObject class themselves, and must follow the very simple proceedures outlined below:<br
/> <br
/> Sample data (in JSON format): {"field1":0.5,"field2":"sampletext","field3":[1,2,3]}<br
/> <br
/> <br
/> == Encoding ==<br
/> <br
/> Encoding is something of a hard-coded process. This is because I have no idea what your data is! It would be great if this were some sort of interface for taking an entire class and encoding it's number/string fields, but it's not. I've come up with a few clever ways of using loops and/or recursive methods to cut down of the amount of code I have to write when I use this tool, but they're pretty project-specific.<br
/> <br
/> &lt;csharp&gt;<br
/> //Note: your data can only be numbers and strings. This is not a solution for object serialization or anything like that.<br
/> JSONObject j = new JSONObject(JSONObject.Type.OBJECT);<br
/> //number<br
/> j.keys.Add("field1");<br
/> j.list.Add(0.5);<br
/> //string<br
/> j.keys.Add("field2");<br
/> j.list.Add("sampletext");<br
/> //array<br
/> j.keys.Add("field3");<br
/> <br
/> JSONObject arr = new JSONObject(JSONObject.Type.ARRAY);<br
/> arr.list.Add(1);<br
/> arr.list.Add(2);<br
/> arr.list.Add(3);<br
/> <br
/> j.list.Add(arr);<br
/> <br
/> string encodedString = j.print();<br
/> &lt;/csharp&gt;<br
/> <br
/> == Decoding ==<br
/> Decoding is much simpler on the input end, and again, what you do with the JSONObject will vary on a per-project basis. One of the more complicated way to extract the data is with a recursive function, as drafted below. Calling the constructor with a properly formatted JSON string will return the root object (or array) containing all of its children, in one neat reference! The data is in a public ArrayList called list, with a matching key list (called keys!) if the root is an Object. If that's confusing, take a glance over the following code and the print() method in the JSONOBject class. If there is an error in the JSON formatting (or if there's an error with my code!) the debug console will read "improper JSON formatting".<br
/> <br
/> <br
/> &lt;csharp&gt;<br
/> string encodedString = "{&#92;"field1&#92;":0.5,&#92;"field2&#92;":&#92;"sampletext&#92;",&#92;"field3&#92;":[1,2,3]}";<br
/> JSONObject j = new JSONObject(encodedString);<br
/> accessData(j);<br
/> //access data (and print it)<br
/> void accessData(JSONObject obj){<br
/> switch(obj.type){<br
/> case JSONObject.Type.OBJECT:<br
/> for(int i = 0; i &lt; obj.list.Count; i++){<br
/> string key = (string)obj.keys[i];<br
/> JSONObject j = (JSONObject)obj.list[i];<br
/> Debug.Log(key);<br
/> accessData(j);<br
/> }<br
/> break;<br
/> case JSONObject.Type.ARRAY:<br
/> foreach(JSONObject j in obj.list){<br
/> accessData(j);<br
/> }<br
/> break;<br
/> case JSONObject.Type.STRING:<br
/> Debug.Log(obj.str);<br
/> break;<br
/> case JSONObject.Type.NUMBER:<br
/> Debug.Log(obj.n);<br
/> break;<br
/> case JSONObject.Type.BOOL:<br
/> Debug.Log(obj.n);<br
/> break;<br
/> case JSONObject.Type.NULL:<br
/> Debug.Log(obj.n);<br
/> break;<br
/> <br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> ----<br
/> <br
/> <br
/> =The JSONObject class=<br
/> &lt;csharp&gt;<br
/> /*<br
/> * http://www.opensource.org/licenses/lgpl-2.1.php<br
/> * JSONObject class<br
/> * for use with Unity<br
/> * Matt Schoen 2010<br
/> */<br
/> using UnityEngine;<br
/> using System.Collections;<br
/> <br
/> public class JSONObject {<br
/> public ArrayList keys;<br
/> public enum Type { STRING, NUMBER, OBJECT, ARRAY, BOOL, NULL }<br
/> public JSONObject parent;<br
/> public Type type;<br
/> public ArrayList list;<br
/> public string str;<br
/> public double n;<br
/> public bool b;<br
/> <br
/> public JSONObject() { }<br
/> public JSONObject(JSONObject.Type t) {<br
/> type = t;<br
/> switch(t) {<br
/> case Type.ARRAY:<br
/> list = new ArrayList();<br
/> break;<br
/> case Type.OBJECT:<br
/> list = new ArrayList();<br
/> keys = new ArrayList();<br
/> break;<br
/> }<br
/> }<br
/> public JSONObject(bool b){<br
/> type = Type.BOOL;<br
/> this.b = b;<br
/> }<br
/> public JSONObject(float f){<br
/> type = Type.NUMBER;<br
/> this.n = f;<br
/> }<br
/> public JSONObject() {<br
/> type = Type.NULL;<br
/> }<br
/> public JSONObject(string str) {	//create a new JSONObject from a string (this will also create any children, and parse the whole string)<br
/> if(str.Length &gt; 0) {<br
/> if(str == "true") {<br
/> type = Type.BOOL;<br
/> b = true;<br
/> } else if(str == "false") {<br
/> type = Type.BOOL;<br
/> b = false;<br
/> } else if(str == "null") {<br
/> type = Type.NULL;<br
/> } else if(str[0] == '"') {<br
/> type = Type.STRING;<br
/> this.str = str.Substring(1, str.Length - 2);<br
/> } else {<br
/> try {<br
/> n = System.Convert.ToDouble(str);<br
/> type = Type.NUMBER;<br
/> } catch(System.FormatException) {<br
/> int token_tmp = 0;<br
/> /*<br
/> * Checking for the following formatting (www.json.org)<br
/> * object - {"field1":value,"field2":value}<br
/> * array - [value,value,value]<br
/> * value - string	- "string"<br
/> * - number	- 0.0<br
/> * - bool - true -or- false<br
/> * - null - null<br
/> */<br
/> switch(str[0]) {<br
/> case '{':<br
/> type = Type.OBJECT;<br
/> keys = new ArrayList();<br
/> list = new ArrayList();<br
/> break;<br
/> case '[':<br
/> type = JSONObject.Type.ARRAY;<br
/> list = new ArrayList();<br
/> break;<br
/> default:<br
/> type = Type.NULL;<br
/> Debug.Log("improper JSON formatting");<br
/> return;<br
/> }<br
/> int depth = 0;<br
/> bool openquote = false;<br
/> for(int i = 1; i &lt; str.Length; i++) {<br
/> if(str[i] == '"')<br
/> openquote = !openquote;<br
/> if(str[i] == '[' || str[i] == '{')<br
/> depth++;<br
/> if(depth == 0 &amp;&amp; !openquote) {<br
/> if(str[i] == ':') {<br
/> keys.Add(str.Substring(token_tmp + 2, i - token_tmp - 3));<br
/> token_tmp = i;<br
/> }<br
/> if(str[i] == ',') {<br
/> list.Add(new JSONObject(str.Substring(token_tmp + 1, i - token_tmp - 1)));<br
/> token_tmp = i;<br
/> }<br
/> if(str[i] == ']' || str[i] == '}')<br
/> list.Add(new JSONObject(str.Substring(token_tmp + 1, i - token_tmp - 1)));<br
/> }<br
/> if(str[i] == ']' || str[i] == '}')<br
/> depth--;<br
/> }<br
/> }<br
/> }<br
/> } else {<br
/> type = Type.NULL;<br
/> }<br
/> }<br
/> public string print() {	//Convert the JSONObject into a stiring<br
/> string str = "";<br
/> switch(type) {<br
/> case Type.STRING:<br
/> str = "&#92;"" + this.str + "&#92;"";<br
/> break;<br
/> case Type.NUMBER:<br
/> str += n;<br
/> break;<br
/> case JSONObject.Type.OBJECT:<br
/> str = "{";<br
/> for(int i = 0; i &lt; list.Count; i++) {<br
/> string key = (string)keys[i];<br
/> str += "&#92;"" + key + "&#92;":"; <br
/> JSONObject obj = (JSONObject)list[i];<br
/> str += obj.print() +",";<br
/> }<br
/> str = str.Substring(0, str.Length - 1);<br
/> str += "}";<br
/> break;<br
/> case JSONObject.Type.ARRAY:<br
/> str = "[";<br
/> foreach(JSONObject obj in list) {<br
/> str += obj.print() + ",";<br
/> }<br
/> str = str.Substring(0, str.Length - 1);<br
/> str += "]";<br
/> break;<br
/> case Type.BOOL:<br
/> str += b;<br
/> break;<br
/> case Type.NULL:<br
/> str = "null";<br
/> break;<br
/> }<br
/> return str;<br
/> }<br
/> public static implicit operator bool(JSONObject j) {<br
/> return j != null;<br
/> }<br
/> }<br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Json>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/24/unify-wiki-json/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity 3 – What Feature is The Dev Team Most Proud Of?</title><link>http://www.bydesigngames.com/2010/08/23/unity-technologies-unity-3-%e2%80%93-what-feature-is-the-dev-team-most-proud-of/</link> <comments>http://www.bydesigngames.com/2010/08/23/unity-technologies-unity-3-%e2%80%93-what-feature-is-the-dev-team-most-proud-of/#comments</comments> <pubDate>Mon, 23 Aug 2010 02:11:14 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Rants & Raves]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3380</guid> <description><![CDATA[Unity 3 is looking to be our biggest release to date — bringing with it source-level debugging, deferred rendering, best-in-class lightmapping and occlusion culling, and a unified editor. As we are getting close to the end of our pre-order window, I decided to asks members of the dev team what features they are most excited [...]]]></description> <content:encoded><![CDATA[<p>Unity 3 is looking to be our biggest release to date — bringing with it source-level debugging, deferred rendering, best-in-class lightmapping and occlusion culling, and a unified editor. As we are getting close to the end of our pre-order window, I decided to asks members of the dev team what features they are most excited about.</p><p><img
class="alignnone size-full wp-image-3394" title="Unity_3_Screen_2_small" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/Unity_3_Screen_2_small.jpg" alt="Unity_3_Screen_2_small" width="650" height="406"/></p><p><span
id="more-3380"></span></p><h3 style="padding-top:1em;">Roald Høyer-Hansen</h3><p>Beast lightmapping &#8211; no doubt <img
src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/> Never has lighting a scene been so much fun! Great interface and superb integration with Unity. It has actually changed the way I work, as I now do all my lightmapping/baking inside Unity, with Beast. I am sure 90% of the games we&#8217;ll see after 3.0 will look 10x as good as the ones we see today <img
src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/></p><h3 style="padding-top:1em;">Charles Hinshaw</h3><p>There are BIG features, but I&#8217;m really enjoying the little scene view tweaks that improve daily use. Vertex snapping, look-at rotation, live previews for materials, dragging prefabs into the scene live with ray-snapping, interactive light gizmos, and rect selection — get used to them and then use a 2.x build and see how frustrating it gets. Unity 3 is going to allow for scenes to be constructed much more quickly and accurately.</p><h3 style="padding-top:1em;">Aras Pranckevicius</h3><p>Personally, I&#8217;m quite happy with all the behind the scenes stuff that went into 3.0 rendering &#8211; surface shaders, seamless shader compilation into OpenGL ES shading language, the way we encode Deferred Lighting buffers etc. But I doubt anyone except me would ever notice them <img
src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/></p><p>Obscure features that are awesome: XOR operator support in JavaScript! XOR is cool because:</p><ul
style="padding-bottom:1em;"><li>It&#8217;s exclusive &#8211; very exclusive.</li><li>No short circuiting semantics with this guy.</li><li>It appreciates differences in people, or at least in operands, which is almost the same as people.</li><li>It has an X in it. Everything that has an X in it is cool. And this one starts with an X.</li></ul><h3 style="padding-top:1em;">Samantha Kalman</h3><p>I&#8217;m most thrilled about the new audio features. Big things like fx filters and reverb zones to add atmosphere to your audio are awesome, but little things like reliable synching of multiple playing sources is completely wonderful. Combined with spectrum analysis you can do things like procedurally modify colors, meshes, lighting, or anything else based on audio playback. As someone who wants to make synaesthesia-invoking music games, I am so happy that these features made it into 3.0.</p><h3 style="padding-top:1em;">Nicolaj Schweitz</h3><p>I love the new audio features, especially the possibility to use audio to affect any runtime variable. I can&#8217;t wait to see what people get out of this.</p><p>The mod tracker file support might start a new epoch in music for games — or should I say a revival of the demo scene trackers.</p><p>I am also amazed by the new physics features. Cloth is a powerful feature that along with DSP effects and reverb zones will expand the way our users will present their game worlds.</p><p>I am really happy that we have managed to include a lot of details into the mix, audio preview in the scene, object selector, audio rolloff curves, UI for the player settings — I could go on and on. It soothes my perfectionist heart to see that many minor improvements in Unity.</p><h3 style="padding-top:1em;">Rune Skovbo Johansen</h3><p>A few things that are exciting to me, and haven&#8217;t been mentioned yet:</p><ul
style="padding-bottom:1em;"><li>New font back-end and text input with IME support should make Unity far more interesting to developers targeting Asia and other markets that have unique fonts.</li><li>A few very typical basic math functions have been added that you&#8217;d need in many games, but which are not trivial for newbies to come up with on their own: MoveTowards (for floats and vectors) RotateTowards (for rotations and vectors), and a some others.</li><li>Lots of small bug fixes all around that improve stability and performance.</li><li>Full debugging capabilities</li></ul><h3 style="padding-top:1em;">Joachim Ante</h3><p>I think Unity has made the transition to being a robust level editing tool — developers can place modeled objects from inside Unity as opposed to artists creating the whole level in maya/max. You could always use Unity in that way in theory, but there were some drawbacks why people didn&#8217;t do it workflow wise and feature wise when they were doing a high end production.</p><p>There is a bunch of stuff that contributed to it, in order of importance:</p><ol
style="padding-bottom:1em;"><li>Being able to lightmap from within Unity</li><li>Static batching</li><li>Being able to place things with the vertex snapping &amp; raycast snapping</li><li>Occlusion culling so you can get performance out of big scenes</li><li>Being able to quickly find assets with the object picker</li><li>Being able to search stuff in a super awesome looking way</li></ol><p>Equally important is the unified editor; we actually managed to get all platforms back under one tool again. This is awesome right now, but we also spent a lot of time making it easier to add new platforms, so that after 3.0 we can add new platforms at the speed of a rocket ship.</p><p><a
href=http://blogs.unity3d.com/2010/08/23/unity-3-what-feature-are-the-dev-team-most-proud-of/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/23/unity-technologies-unity-3-%e2%80%93-what-feature-is-the-dev-team-most-proud-of/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] New Online Learning Resources</title><link>http://www.bydesigngames.com/2010/08/23/unity-technologies-new-online-learning-resources/</link> <comments>http://www.bydesigngames.com/2010/08/23/unity-technologies-new-online-learning-resources/#comments</comments> <pubDate>Mon, 23 Aug 2010 01:36:14 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3338</guid> <description><![CDATA[As a follow-up to my Getting Started with Unity blog post, I wanted to bring your attention to three recent tutorial sites: First up is design3, a subscription based site created by Noesis Interactive, who create professional courseware for Universities. They have over 200 Unity specific videos and more on the way. Whether an educator, a [...]]]></description> <content:encoded><![CDATA[<p>As a follow-up to my <a
rel="nofollow"  href="http://blogs.unity3d.com/2009/12/17/getting-started-with-unity/">Getting Started with Unity</a> blog post, I wanted to bring your attention to three recent tutorial sites:</p><p><a
rel="nofollow"  href="https://www.design3.com/"><img
class="size-full wp-image-3339 " style="margin-top:5px;margin-bottom:10px;" title="Design3" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/Design3.jpg" alt="Design3" width="650" height="409"/></a></p><p>First up is <a
rel="nofollow"  href="https://www.design3.com/">design3</a>, a subscription based site created by Noesis Interactive, who create professional courseware for Universities. They have over 200 Unity specific videos and more on the way. Whether an educator, a student, or a business, you can check out their free trial and see if it works for you.</p><div
class="alignleft" style="width:312px;padding-bottom:14px;"><a
rel="nofollow"  href="http://unity3dstudent.com/"><img
class="size-full wp-image-3345 " style="margin-top:5px;margin-bottom:10px;" title="Unity3dStudent" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/Unity3dStudent.jpg" alt="UnityPrefabs" width="312" height="286"/></a><br
/> Next up we have Will Goldstone’s <a
rel="nofollow"  href="http://unity3dstudent.com/">Unity 3D Student</a>. This is a great concept, he doesn’t provide the standard “here is a huge tutorial about how to make X kind of game” but rather has micro tutorials that teach fundamental concepts — and then challenges that require the student to piece together what they’ve learned.</div><div
class="alignright" style="width:312px;padding-bottom:14px;"><a
rel="nofollow"  href="http://www.unityprefabs.com/how-to-make-a-fps-game-tutorial.html"><img
class="size-full wp-image-3345 " style="margin-top:5px;margin-bottom:10px;" title="UnityPrefabs" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/UnityPrefabs.jpg" alt="UnityPrefabs" width="312" height="286"/></a><br
/> And finally, the Tornado Twins have begun to serve up their tutorials on their <a
rel="nofollow"  href="http://www.unityprefabs.com/how-to-make-a-fps-game-tutorial.html">Unity Prefabs</a> site. The first few chapters of each series are free; if you like them then you can purchase the remaining chapters for that series.</div><div
class="alignleft" style="width:650px;"><p>Happy learning!</p></div><p><a
href=http://blogs.unity3d.com/2010/08/23/new-onlinelearning-resources/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/23/unity-technologies-new-online-learning-resources/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] CreatePrefabFromSelected</title><link>http://www.bydesigngames.com/2010/08/22/unify-wiki-createprefabfromselected/</link> <comments>http://www.bydesigngames.com/2010/08/22/unify-wiki-createprefabfromselected/#comments</comments> <pubDate>Sun, 22 Aug 2010 06:22:45 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* C# - Updated CreatePrefabFromSelected.cs */Author: Matthew Miner== Description ==Creates a prefab containing the contents of the currently selected game object.== Usage ==Place the script inside the Editor folder. Select a GameObj...]]></description> <content:encoded><![CDATA[<p>Summary: /* C# - Updated CreatePrefabFromSelected.cs */</p><hr
/><div>Author: Matthew Miner<br
/> <br
/> == Description ==<br
/> <br
/> Creates a prefab containing the contents of the currently selected game object.<br
/> <br
/> == Usage ==<br
/> <br
/> Place the script inside the Editor folder. Select a GameObject and choose 'GameObject &gt; Create Prefab From Selection'. A new prefab will be created in the root directory bearing the same name as the GameObject.<br
/> <br
/> Faults:<br
/> <br
/> == To Do ==<br
/> <br
/> * Currently the script replaces any existing prefab with the same name; more desirable would be to append a number to the filename of the new prefab<br
/> * The selected GameObject should become an instance of the newly created prefab<br
/> <br
/> == C# - CreatePrefabFromSelected.cs ==<br
/> <br
/> &lt;csharp&gt;<br
/> using UnityEditor;<br
/> using UnityEngine;<br
/> <br
/> class CreatePrefabFromSelected<br
/> {<br
/> const string menuTitle = "GameObject/Create Prefab From Selected";<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Creates a prefab from the selected game object.<br
/> /// &lt;/summary&gt;<br
/> [MenuItem (menuTitle)]<br
/> static void CreatePrefab ()<br
/> {<br
/> GameObject obj = Selection.activeGameObject;<br
/> string name = obj.name;<br
/> <br
/> Object prefab = EditorUtility.CreateEmptyPrefab("Assets/" + name + ".prefab");<br
/> EditorUtility.ReplacePrefab(obj, prefab);<br
/> AssetDatabase.Refresh();<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Validates the menu.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;remarks&gt;The item will be disabled if no game object is selected.&lt;/remarks&gt;<br
/> [MenuItem (menuTitle, true)]<br
/> static bool ValidateCreatePrefab ()<br
/> {<br
/> return Selection.activeGameObject != null;<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> [[Category:Editor Scripts]]<br
/> [[Category:ScriptableObject]]<br
/> [[Category:C Sharp]]<br
/> <br
/> == C# - Updated CreatePrefabFromSelected.cs ==<br
/> <br
/> I decided to update this script in can anybody is intewrested. It now will give a popup if the prefab already exits and you can choose to overwrite the prefab or cancel. It also replaces the selected gameObject with the new prefab.<br
/> <br
/> &lt;csharp&gt;<br
/> using UnityEditor;<br
/> using UnityEngine;<br
/> using System.Collections;<br
/> <br
/> class CreatePrefabFromSelected : ScriptableObject<br
/> {<br
/> const string menuTitle = "GameObject/Create Prefab From Selected";<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Creates a prefab from the selected game object.<br
/> /// &lt;/summary&gt;<br
/> [MenuItem(menuTitle)]<br
/> static void CreatePrefab()<br
/> {<br
/> GameObject obj = Selection.activeGameObject;<br
/> string name = obj.name;<br
/> string localPath = "Assets/Prefabs/" + name + ".prefab";<br
/> <br
/> if (AssetDatabase.LoadAssetAtPath(localPath, typeof(GameObject)))<br
/> {<br
/> if (EditorUtility.DisplayDialog("Are you sure?", "The prefab already exists. Do you want to overwrite it?", "Yes", "No"))<br
/> {<br
/> createNew(obj, localPath);<br
/> }<br
/> }<br
/> else<br
/> {<br
/> createNew(obj, localPath);<br
/> }<br
/> }<br
/> <br
/> static void createNew(GameObject obj, string localPath)<br
/> {<br
/> Object prefab = EditorUtility.CreateEmptyPrefab(localPath);<br
/> EditorUtility.ReplacePrefab(obj, prefab);<br
/> AssetDatabase.Refresh();<br
/> <br
/> DestroyImmediate(obj);<br
/> GameObject clone = EditorUtility.InstantiatePrefab(prefab) as GameObject; <br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Validates the menu.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;remarks&gt;The item will be disabled if no game object is selected.&lt;/remarks&gt;<br
/> [MenuItem(menuTitle, true)]<br
/> static bool ValidateCreatePrefab()<br
/> {<br
/> return Selection.activeGameObject != null;<br
/> }<br
/> }<br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=CreatePrefabFromSelected>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/22/unify-wiki-createprefabfromselected/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Promoting a Prototype (Mech Rex in Zombeh Town Prototype)</title><link>http://www.bydesigngames.com/2010/08/21/infiniteunity3d-promoting-a-prototype-mech-rex-in-zombeh-town-prototype/</link> <comments>http://www.bydesigngames.com/2010/08/21/infiniteunity3d-promoting-a-prototype-mech-rex-in-zombeh-town-prototype/#comments</comments> <pubDate>Sat, 21 Aug 2010 20:11:28 +0000</pubDate> <dc:creator>StevenWhite</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9288</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/21/infiniteunity3d-promoting-a-prototype-mech-rex-in-zombeh-town-prototype/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Hemiogenic: Virtual Venice Final Unity 2.6</title><link>http://www.bydesigngames.com/2010/08/21/infiniteunity3d-hemiogenic-virtual-venice-final-unity-2-6/</link> <comments>http://www.bydesigngames.com/2010/08/21/infiniteunity3d-hemiogenic-virtual-venice-final-unity-2-6/#comments</comments> <pubDate>Sat, 21 Aug 2010 16:25:56 +0000</pubDate> <dc:creator>Hemiogenic</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9283</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/21/infiniteunity3d-hemiogenic-virtual-venice-final-unity-2-6/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] AlphaDiffuse2sided</title><link>http://www.bydesigngames.com/2010/08/21/unify-wiki-alphadiffuse2sided/</link> <comments>http://www.bydesigngames.com/2010/08/21/unify-wiki-alphadiffuse2sided/#comments</comments> <pubDate>Sat, 21 Aug 2010 00:41:21 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:==ShaderLab - Alpha-Diffuse-2sided.shader==Slightly modifed default shader for doing 2-sided renders&#60;shaderlab&#62;
Shader "Transparent/Diffuse-2sided" {
Properties { _Color ("Main Color", Color) = (1,1,1,1) _MainTex ("Base (RGB) Trans...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>==ShaderLab - Alpha-Diffuse-2sided.shader==<br
/> <br
/> Slightly modifed default shader for doing 2-sided renders<br
/> <br
/> &lt;shaderlab&gt;<br
/> Shader "Transparent/Diffuse-2sided" {<br
/> Properties {<br
/> _Color ("Main Color", Color) = (1,1,1,1)<br
/> _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}<br
/> }<br
/> <br
/> Category {<br
/> Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}<br
/> LOD 200<br
/> Alphatest Greater 0<br
/> ZWrite Off<br
/> ColorMask RGB<br
/> <br
/> // ------------------------------------------------------------------<br
/> // ARB fragment program<br
/> <br
/> SubShader {<br
/> // Ambient pass<br
/> Pass {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "PixelOrNone"}<br
/> Cull Off<br
/> Fog { Color [_AddFog] }<br
/> Blend SrcAlpha OneMinusSrcAlpha<br
/> Color [_PPLAmbient]<br
/> SetTexture [_MainTex] {constantColor [_Color] Combine texture * primary DOUBLE, texture * primary}<br
/> }<br
/> // Vertex lights<br
/> Pass { <br
/> Name "BASE"<br
/> Cull Off<br
/> Tags {"LightMode" = "Vertex"}<br
/> Fog { Color [_AddFog] }<br
/> Blend SrcAlpha OneMinusSrcAlpha<br
/> Lighting On<br
/> Material {<br
/> Diffuse [_Color]<br
/> Emission [_PPLAmbient]<br
/> } <br
/> SetTexture [_MainTex] {combine texture * primary DOUBLE, texture * primary}<br
/> }<br
/> // Pixel lights<br
/> Pass { <br
/> Name "PPL"<br
/> Tags { "LightMode" = "Pixel" }<br
/> Blend SrcAlpha One<br
/> Fog { Color [_AddFog] }<br
/> Cull Off<br
/> <br
/> CGPROGRAM<br
/> #pragma fragment frag<br
/> #pragma vertex vert<br
/> #pragma multi_compile_builtin_noshadows<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> struct v2f {<br
/> V2F_POS_FOG;<br
/> LIGHTING_COORDS<br
/> float2	uv;<br
/> float3	normal;<br
/> float3	lightDir;<br
/> };<br
/> <br
/> uniform float4 _MainTex_ST;<br
/> <br
/> v2f vert (appdata_base v)<br
/> {<br
/> v2f o;<br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> o.normal = v.normal;<br
/> o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);<br
/> o.lightDir = ObjSpaceLightDir( v.vertex );<br
/> TRANSFER_VERTEX_TO_FRAGMENT(o);<br
/> return o;<br
/> }<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float4 _Color;<br
/> <br
/> float4 frag (v2f i) : COLOR<br
/> {<br
/> half4 texcol = tex2D( _MainTex, i.uv ); <br
/> half4 c = DiffuseLight( i.lightDir, i.normal, texcol, LIGHT_ATTENUATION(i) );<br
/> c.a = texcol.a * _Color.a;<br
/> return c;<br
/> }<br
/> ENDCG<br
/> <br
/> SetTexture [_MainTex] {combine texture}<br
/> SetTexture [_LightTexture0] {combine texture}<br
/> SetTexture [_LightTextureB0] {combine texture}<br
/> }<br
/> }<br
/> <br
/> // ------------------------------------------------------------------<br
/> // Radeon 9000<br
/> <br
/> SubShader {<br
/> // Ambient pass<br
/> Pass {<br
/> Blend SrcAlpha OneMinusSrcAlpha<br
/> Name "BASE"<br
/> Tags {"LightMode" = "PixelOrNone"}<br
/> Color [_PPLAmbient]<br
/> SetTexture [_MainTex] {constantColor [_Color] Combine texture * primary DOUBLE, texture * constant}<br
/> }<br
/> // Vertex lights<br
/> Pass { <br
/> Blend SrcAlpha OneMinusSrcAlpha<br
/> Name "BASE"<br
/> Tags {"LightMode" = "Vertex"}<br
/> Lighting On<br
/> Material {<br
/> Diffuse [_Color]<br
/> Emission [_PPLAmbient]<br
/> }<br
/> SetTexture [_MainTex] {Combine texture * primary DOUBLE, texture * primary}<br
/> }<br
/> <br
/> // Pixel lights with 0 light textures<br
/> Pass { <br
/> Blend SrcAlpha One<br
/> Name "PPL"<br
/> Tags { <br
/> "LightMode" = "Pixel" <br
/> "LightTexCount" = "0"<br
/> }<br
/> Cull Off<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #include "UnityCG.cginc"<br
/> <br
/> struct v2f {<br
/> V2F_POS_FOG;<br
/> float2 uv : TEXCOORD0;<br
/> float3 normal	: TEXCOORD1;<br
/> float3 lightDir	: TEXCOORD2;<br
/> };<br
/> <br
/> uniform float4 _MainTex_ST;<br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> o.normal = v.normal;<br
/> o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);<br
/> o.lightDir = ObjSpaceLightDir( v.vertex );<br
/> return o; <br
/> }<br
/> ENDCG<br
/> Program "" {<br
/> SubProgram {<br
/> Local 0, [_ModelLightColor0]<br
/> Local 1, [_Color]<br
/> <br
/> "!!ATIfs1.0<br
/> StartConstants;<br
/> CONSTANT c0 = program.local[0];<br
/> CONSTANT c1 = program.local[1];<br
/> EndConstants;<br
/> <br
/> StartOutputPass;<br
/> SampleMap r0, t0.str; # main texture<br
/> SampleMap r1, t2.str; # normalized light dir<br
/> PassTexCoord r2, t1.str; # normal<br
/> <br
/> DOT3 r5.sat, r2, r1.2x.bias;	# R5 = diffuse (N.L)<br
/> <br
/> MUL r0.rgb, r0, r5;<br
/> MUL r0.rgb.2x, r0, c0;<br
/> MUL r0.a, r0, c1;<br
/> EndPass; <br
/> "<br
/> }<br
/> }<br
/> SetTexture[_MainTex] {combine texture}<br
/> SetTexture[_CubeNormalize] {combine texture}<br
/> }<br
/> <br
/> // Pixel lights with 1 light texture<br
/> Pass {<br
/> Blend SrcAlpha One<br
/> Name "PPL"<br
/> Tags { <br
/> "LightMode" = "Pixel" <br
/> "LightTexCount" = "1"<br
/> }<br
/> Cull Off<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #include "UnityCG.cginc"<br
/> <br
/> uniform float4 _MainTex_ST;<br
/> uniform float4x4 _SpotlightProjectionMatrix0;<br
/> <br
/> struct v2f {<br
/> V2F_POS_FOG;<br
/> float2 uv : TEXCOORD0;<br
/> float3 normal	: TEXCOORD1;<br
/> float3 lightDir	: TEXCOORD2;<br
/> float4 LightCoord0 : TEXCOORD3;<br
/> };<br
/> <br
/> v2f vert(appdata_tan v)<br
/> {<br
/> v2f o;<br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> o.normal = v.normal;<br
/> o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);<br
/> o.lightDir = ObjSpaceLightDir( v.vertex );<br
/> <br
/> o.LightCoord0 = mul(_SpotlightProjectionMatrix0, v.vertex);<br
/> <br
/> return o; <br
/> }<br
/> ENDCG<br
/> Program "" {<br
/> SubProgram {<br
/> Local 0, [_ModelLightColor0]<br
/> Local 1, [_Color]<br
/> <br
/> "!!ATIfs1.0<br
/> StartConstants;<br
/> CONSTANT c0 = program.local[0];<br
/> CONSTANT c1 = program.local[1];<br
/> EndConstants;<br
/> <br
/> StartOutputPass;<br
/> SampleMap r0, t0.str; # main texture<br
/> SampleMap r1, t2.str; # normalized light dir<br
/> PassTexCoord r4, t1.str; # normal<br
/> SampleMap r2, t3.str; # a = attenuation<br
/> <br
/> DOT3 r5.sat, r4, r1.2x.bias;	# R5 = diffuse (N.L)<br
/> <br
/> MUL r0.rgb, r0, r5;<br
/> MUL r0.rgb.2x, r0, c0;<br
/> MUL r0.rgb, r0, r2.a; # attenuate<br
/> MUL r0.a, r0, c1;<br
/> EndPass; <br
/> "<br
/> }<br
/> }<br
/> SetTexture[_MainTex] {combine texture}<br
/> SetTexture[_CubeNormalize] {combine texture}<br
/> SetTexture[_LightTexture0] {combine texture}<br
/> }<br
/> <br
/> // Pixel lights with 2 light textures<br
/> Pass {<br
/> Blend SrcAlpha One<br
/> Name "PPL"<br
/> Tags {<br
/> "LightMode" = "Pixel"<br
/> "LightTexCount" = "2"<br
/> }<br
/> Cull Off<br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #include "UnityCG.cginc"<br
/> <br
/> uniform float4 _MainTex_ST;<br
/> uniform float4x4 _SpotlightProjectionMatrix0;<br
/> uniform float4x4 _SpotlightProjectionMatrixB0;<br
/> <br
/> struct v2f {<br
/> V2F_POS_FOG;<br
/> float2 uv : TEXCOORD0;<br
/> float3 normal	: TEXCOORD1;<br
/> float3 lightDir	: TEXCOORD2;<br
/> float4 LightCoord0 : TEXCOORD3;<br
/> float4 LightCoordB0 : TEXCOORD4;<br
/> };<br
/> <br
/> v2f vert(appdata_tan v)<br
/> {<br
/> v2f o;<br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> o.normal = v.normal;<br
/> o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);<br
/> o.lightDir = ObjSpaceLightDir( v.vertex );<br
/> <br
/> o.LightCoord0 = mul(_SpotlightProjectionMatrix0, v.vertex);<br
/> o.LightCoordB0 = mul(_SpotlightProjectionMatrixB0, v.vertex);<br
/> <br
/> return o; <br
/> }<br
/> ENDCG<br
/> Program "" {<br
/> SubProgram {<br
/> Local 0, [_ModelLightColor0]<br
/> Local 1, [_Color]<br
/> <br
/> "!!ATIfs1.0<br
/> StartConstants;<br
/> CONSTANT c0 = program.local[0];<br
/> CONSTANT c1 = program.local[1];<br
/> EndConstants;<br
/> <br
/> StartOutputPass;<br
/> SampleMap r0, t0.str; # main texture<br
/> SampleMap r1, t2.str; # normalized light dir<br
/> PassTexCoord r4, t1.str; # normal<br
/> SampleMap r2, t3.stq_dq; # a = attenuation 1<br
/> SampleMap r3, t4.stq_dq; # a = attenuation 2<br
/> <br
/> DOT3 r5.sat, r4, r1.2x.bias;	# R5 = diffuse (N.L)<br
/> <br
/> MUL r0.rgb, r0, r5;<br
/> MUL r0.rgb.2x, r0, c0;<br
/> MUL r0.rgb, r0, r2.a; # attenuate<br
/> MUL r0.rgb, r0, r3.a;<br
/> MUL r0.a, r0, c1;<br
/> EndPass; <br
/> "<br
/> }<br
/> }<br
/> SetTexture[_MainTex] {combine texture}<br
/> SetTexture[_CubeNormalize] {combine texture}<br
/> SetTexture[_LightTexture0] {combine texture}<br
/> SetTexture[_LightTextureB0] {combine texture}<br
/> }<br
/> }<br
/> <br
/> // ------------------------------------------------------------------<br
/> // Radeon 7000<br
/> <br
/> SubShader {<br
/> Material {<br
/> Diffuse [_Color]<br
/> Emission [_PPLAmbient]<br
/> }<br
/> Lighting On<br
/> Fog { Color [_AddFog] }<br
/> Pass {<br
/> Blend SrcAlpha OneMinusSrcAlpha<br
/> Name "BASE"<br
/> Tags {"LightMode" = "PixelOrNone"}<br
/> Color [_PPLAmbient]<br
/> Lighting Off<br
/> Cull Off<br
/> SetTexture [_MainTex] {Combine texture * primary DOUBLE}<br
/> SetTexture [_MainTex] {Combine texture * primary DOUBLE}<br
/> SetTexture [_MainTex] {Combine texture * primary DOUBLE, primary * texture}<br
/> }<br
/> Pass { <br
/> Blend SrcAlpha OneMinusSrcAlpha<br
/> Name "BASE"<br
/> Cull Off<br
/> Tags {"LightMode" = "Vertex"}<br
/> SetTexture [_MainTex] {Combine texture * primary DOUBLE, primary * texture}<br
/> }<br
/> Pass {<br
/> Blend SrcAlpha One<br
/> Name "PPL"<br
/> Cull Off<br
/> Tags {<br
/> "LightMode" = "Pixel"<br
/> "LightTexCount" = "2"<br
/> }<br
/> SetTexture [_LightTexture0] { combine previous * texture alpha, previous }<br
/> SetTexture [_LightTextureB0]	{<br
/> combine previous * texture alpha + constant, previous<br
/> constantColor [_PPLAmbient]<br
/> }<br
/> SetTexture [_MainTex] { combine previous * texture DOUBLE, primary * texture}<br
/> }<br
/> Pass {<br
/> Blend SrcAlpha One<br
/> Name "PPL"<br
/> Cull Off<br
/> Tags {<br
/> "LightMode" = "Pixel"<br
/> "LightTexCount" = "1"<br
/> }<br
/> SetTexture [_LightTexture0] {<br
/> combine previous * texture alpha + constant, previous<br
/> constantColor [_PPLAmbient]<br
/> }<br
/> SetTexture [_MainTex] { combine previous * texture DOUBLE, primary * texture}<br
/> }<br
/> Pass {<br
/> Blend SrcAlpha One<br
/> Name "PPL"<br
/> Cull Off<br
/> Tags {<br
/> "LightMode" = "Pixel"<br
/> "LightTexCount" = "0"<br
/> }<br
/> SetTexture [_MainTex] { combine previous * texture DOUBLE, primary * texture}<br
/> }<br
/> }<br
/> }<br
/> <br
/> // Fallback to Alpha Vertex Lit<br
/> Fallback "Transparent/VertexLit", 2<br
/> <br
/> }<br
/> &lt;/shaderlab&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=AlphaDiffuse2sided>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/21/unify-wiki-alphadiffuse2sided/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Load Data from Excel 2003</title><link>http://www.bydesigngames.com/2010/08/20/unify-wiki-load-data-from-excel-2003/</link> <comments>http://www.bydesigngames.com/2010/08/20/unify-wiki-load-data-from-excel-2003/#comments</comments> <pubDate>Fri, 20 Aug 2010 19:51:52 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* Created: August 20, 2010 */= Reading Excel Files and Sheets into Unity =
==== Author: Zumwalt ======== Created: August 20, 2010 ====Sometimes you want the ability to load information from a spreadsheet into Unity, some rules you need ...]]></description> <content:encoded><![CDATA[<p>Summary: /* Created: August 20, 2010 */</p><hr
/><div>= Reading Excel Files and Sheets into Unity =<br
/> ==== Author: Zumwalt ====<br
/> <br
/> ==== Created: August 20, 2010 ====<br
/> <br
/> Sometimes you want the ability to load information from a spreadsheet into Unity, some rules you need to understand first. You need to ensure that your sheet is laid out like a table, such that the first row is the column headers, you want to avoid special characters and also keep the headers simple with no spaces. The next row will help determine the data type for the data being read into Unity. So the data in the cells need to match the data type you are reading for that entire column. If the column is to hold integers, make sure the first entry is an integer, not a letter. <br
/> <br
/> There are 2 files you need to locate in Unity to copy into your assets folders.<br
/> * First, in your windows explorer, browse to the following folder:<br
/> * C:&#92;Program FilesNITY&#92;EDITOR&#92;DATA&#92;MONOIB&#92;MONO&#92;2.0<br
/> <br
/> Locate and copy the following 2 files to your project Assets folder:<br
/> # System.Data.dll<br
/> # System.EnterpriseServices.dll<br
/> <br
/> Once these two files are in your assets folder, you are ready to begin. <br
/> Create a CSharp asset, rename it to EXCELREADER and make sure the file name is also EXCELREADER.cs, then take the following code block and paste it in so we can you to read in a simple excel spreadsheet. The Excel workbook in this example is simply called Book1.xls and is located in the Assets folder of your project. The excel spreadsheet has the following layout:<br
/> <br
/> {| border="1"<br
/> | || A || B || C<br
/> |-<br
/> | 1 || X || Y || Z<br
/> |-<br
/> | 2 || 1 || 2 || 1<br
/> |-<br
/> | 3 || 2 || 3 || 2<br
/> |-<br
/> | 4 || 3 || 4 || 3<br
/> |}<br
/> <br
/> <br
/> &lt;csharp&gt;<br
/> using UnityEngine;<br
/> using System.Collections;<br
/> using System; <br
/> using System.Data; <br
/> using System.Data.Odbc; <br
/> <br
/> public class EXCELREADER : MonoBehaviour {<br
/> <br
/> // Use this for initialization<br
/> void Start () {<br
/> readXLS(Application.dataPath + "/Book1.xls");<br
/> }<br
/> <br
/> // Update is called once per frame<br
/> void Update () {<br
/> <br
/> }<br
/> <br
/> void readXLS( string filetoread)<br
/> {<br
/> // Must be saved as excel 2003 workbook, not 2007, mono issue really<br
/> string con = "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; Dbq="+filetoread+";";<br
/> Debug.Log(con);<br
/> string yourQuery = "SELECT * FROM [Sheet1$]"; <br
/> // our odbc connector <br
/> OdbcConnection oCon = new OdbcConnection(con); <br
/> // our command object <br
/> OdbcCommand oCmd = new OdbcCommand(yourQuery, oCon);<br
/> // table to hold the data <br
/> DataTable dtYourData = new DataTable("YourData"); <br
/> // open the connection <br
/> oCon.Open(); <br
/> // lets use a datareader to fill that table! <br
/> OdbcDataReader rData = oCmd.ExecuteReader(); <br
/> // now lets blast that into the table by sheer man power! <br
/> dtYourData.Load(rData); <br
/> // close that reader! <br
/> rData.Close(); <br
/> // close your connection to the spreadsheet! <br
/> oCon.Close(); <br
/> // wow look at us go now! we are on a roll!!!!! <br
/> // lets now see if our table has the spreadsheet data in it, shall we? <br
/> <br
/> if(dtYourData.Rows.Count &gt; 0) <br
/> { <br
/> // do something with the data here <br
/> // but how do I do this you ask??? good question! <br
/> for (int i = 0; i &lt; dtYourData.Rows.Count; i++) <br
/> { <br
/> // for giggles, lets see the column name then the data for that column! <br
/> Debug.Log(dtYourData.Columns[0].ColumnName + " : " + dtYourData.Rows[i][dtYourData.Columns[0].ColumnName].ToString() + <br
/> " | " + dtYourData.Columns[1].ColumnName + " : " + dtYourData.Rows[i][dtYourData.Columns[1].ColumnName].ToString() + <br
/> " | " + dtYourData.Columns[2].ColumnName + " : " + dtYourData.Rows[i][dtYourData.Columns[2].ColumnName].ToString()); <br
/> } <br
/> } <br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> Now, when you run the code, your debug log will show the output for each row having the values in their perspective columns.</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Load_Data_from_Excel_2003>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/20/unify-wiki-load-data-from-excel-2003/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Doctors who play video games make less mistakes!</title><link>http://www.bydesigngames.com/2010/08/20/infiniteunity3d-doctors-who-play-video-games-make-less-mistakes/</link> <comments>http://www.bydesigngames.com/2010/08/20/infiniteunity3d-doctors-who-play-video-games-make-less-mistakes/#comments</comments> <pubDate>Fri, 20 Aug 2010 17:18:50 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9278</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/20/infiniteunity3d-doctors-who-play-video-games-make-less-mistakes/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Thanks to Andrew Youngs for getting me into the new Digg!</title><link>http://www.bydesigngames.com/2010/08/20/infiniteunity3d-thanks-to-andrew-youngs-for-getting-me-into-the-new-digg/</link> <comments>http://www.bydesigngames.com/2010/08/20/infiniteunity3d-thanks-to-andrew-youngs-for-getting-me-into-the-new-digg/#comments</comments> <pubDate>Fri, 20 Aug 2010 13:30:23 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9276</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/20/infiniteunity3d-thanks-to-andrew-youngs-for-getting-me-into-the-new-digg/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity SF Summer Party</title><link>http://www.bydesigngames.com/2010/08/19/unity-technologies-unity-sf-summer-party/</link> <comments>http://www.bydesigngames.com/2010/08/19/unity-technologies-unity-sf-summer-party/#comments</comments> <pubDate>Thu, 19 Aug 2010 20:43:24 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3332</guid> <description><![CDATA[We&#8217;re having a great Summer: We passed the 200,000 user mark, we passed the 30 million webplayer mark, we won the Develop Grand Prix, and we&#8217;re getting ready to ship Unity 3. To celebrate all this, we decided to throw a party. For our blog readers who happen to find themselves in the SF bay [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignnone size-full wp-image-3336" title="party_with_unity_650" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/party_with_unity_650.jpg" alt="party_with_unity_650" width="650" height="205"/></p><p>We&#8217;re having a great Summer: We passed the 200,000 user mark, we passed the 30 million webplayer mark, we won the Develop Grand Prix, and we&#8217;re getting ready to ship Unity 3. To celebrate all this, we decided to throw a party. For our blog readers who happen to find themselves in the SF bay area next week, why not join us for drinks after work on Tuesday the 24th of August?</p><p>For details, and to RSVP, please visit <a
rel="nofollow"  href="http://unitysf.eventbrite.com">http://unitysf.eventbrite.com</a></p><p><a
href=http://blogs.unity3d.com/2010/08/19/unity-sf-summer-party/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/19/unity-technologies-unity-sf-summer-party/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Infinite Reaction Project : Partnership between Reaction Grid and Infinite Unity3D Announced</title><link>http://www.bydesigngames.com/2010/08/19/infiniteunity3d-infinite-reaction-project-partnership-between-reaction-grid-and-infinite-unity3d-announced/</link> <comments>http://www.bydesigngames.com/2010/08/19/infiniteunity3d-infinite-reaction-project-partnership-between-reaction-grid-and-infinite-unity3d-announced/#comments</comments> <pubDate>Thu, 19 Aug 2010 19:33:03 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9274</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/19/infiniteunity3d-infinite-reaction-project-partnership-between-reaction-grid-and-infinite-unity3d-announced/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Click To Move</title><link>http://www.bydesigngames.com/2010/08/19/unify-wiki-click-to-move/</link> <comments>http://www.bydesigngames.com/2010/08/19/unify-wiki-click-to-move/#comments</comments> <pubDate>Thu, 19 Aug 2010 01:11:09 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: New page: [[Category: Two Dimensional]] [[Category: MonoBehaviour]] [[Category: Scripts]] [[Category: Mouse]] [[Category: JavaScript]] Author: Sakar ==Description== This script will move an object t...[[Category: Two Dimensional]]
[[Category...]]></description> <content:encoded><![CDATA[<p>Summary: New page: [[Category: Two Dimensional]] [[Category: MonoBehaviour]] [[Category: Scripts]] [[Category: Mouse]] [[Category: JavaScript]] Author: Sakar ==Description== This script will move an object t...</p><hr
/><div>[[Category: Two Dimensional]]<br
/> [[Category: MonoBehaviour]]<br
/> [[Category: Scripts]]<br
/> [[Category: Mouse]]<br
/> [[Category: JavaScript]]<br
/> Author: Sakar<br
/> ==Description==<br
/> This script will move an object towards the mouse position when the left mouse button is clicked.<br
/> <br
/> ==Usage==<br
/> Simply attach the script towards the object you wish to have move towards the mouse. Change the smooth value to <br
/> alter the speed at which the object moves.<br
/> <br
/> ==JavaScript - ClickToMove.js==<br
/> &lt;javascript&gt;// Click To Move script<br
/> // Moves the object towards the mouse position on left mouse click<br
/> <br
/> var smooth:int; // Determines how quickly object moves towards position<br
/> <br
/> private var targetPosition:Vector3;<br
/> <br
/> function Update () {<br
/> if(Input.GetKeyDown(KeyCode.Mouse0))<br
/> {<br
/> var playerPlane = new Plane(Vector3.up, transform.position);<br
/> var ray = Camera.main.ScreenPointToRay (Input.mousePosition);<br
/> var hitdist = 0.0;<br
/> <br
/> if (playerPlane.Raycast (ray, hitdist)) {<br
/> var targetPoint = ray.GetPoint(hitdist);<br
/> targetPosition = ray.GetPoint(hitdist);<br
/> var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);<br
/> transform.rotation = targetRotation;<br
/> }<br
/> }<br
/> <br
/> transform.position = Vector3.Lerp (transform.position, targetPosition, Time.deltaTime * smooth);<br
/> }&lt;/javascript&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Click_To_Move>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/19/unify-wiki-click-to-move/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] CreateCone</title><link>http://www.bydesigngames.com/2010/08/18/unify-wiki-createcone/</link> <comments>http://www.bydesigngames.com/2010/08/18/unify-wiki-createcone/#comments</comments> <pubDate>Wed, 18 Aug 2010 18:18:58 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* Description */ added more info[[Category: Wizard]]
[[Category: ScriptableWizard]]
[[Category: C Sharp]]
[[Category: Selection]]
[[Category: Primitive]]
[[Category: Cone]]
Author: [[User:Wolfram&#124;Wolfram Kresse]]
==Description==
This editor...]]></description> <content:encoded><![CDATA[<p>Summary: /* Description */ added more info</p><hr
/><div>[[Category: Wizard]]<br
/> [[Category: ScriptableWizard]]<br
/> [[Category: C Sharp]]<br
/> [[Category: Selection]]<br
/> [[Category: Primitive]]<br
/> [[Category: Cone]]<br
/> Author: [[User:Wolfram|Wolfram Kresse]]<br
/> ==Description==<br
/> This editor script creates a cone with the specified tessellation (=number of vertices), top radius, bottom radius, and length. With top radius == bottom radius, the result is a cylinder. With none of the radii == 0, the result is a truncated cone. So far the resulting cone has no end caps, but you can create caps on your own by using a cone with one radius==0 and length==0.<br
/> <br
/> The resulting mesh will be added as an asset to Assets/Editor, so it can be used in prefabs etc.<br
/> <br
/> Note it is inevitable that a true cone (one of the radii == 0) cannot be rendered completely smooth, and will show facetting artifacts.<br
/> <br
/> ==Usage==<br
/> Place this script as "CreateCone.cs" in ''YourProject/Assets/Editor'' and a menu item will automatically appear in the "GameObject/Create Other" menu after it is compiled.<br
/> <br
/> '''Num Vertices''' is the number of vertices each end will have.&lt;br /&gt;<br
/> '''Radius Top''' is the radius at the top. The center point will be located at (0/0/0).&lt;br /&gt;<br
/> '''Radius Bottom''' is the radius at the bottom. The center point will be located at (0/0/Length).&lt;br /&gt;<br
/> '''Length''' is the number of world units long the plane will be (+Z direction).&lt;br /&gt;<br
/> '''Opening Angle''' If this is &gt;0, the top radius is set to 0, and the bottom radius is computed depending on the length, so that the given opening angle is created.&lt;br /&gt;<br
/> '''Outside''' defines whether the outside is visible (default).&lt;br /&gt;<br
/> '''Inside''' defines whether the inside is visible. Set both outside and inside to create a double-sided primitive.&lt;br /&gt;<br
/> '''Add Collider''' creates a matching mesh collider for the cone if checked.&lt;br /&gt;<br
/> <br
/> <br
/> ==C# - CreateCone.cs==<br
/> &lt;csharp&gt;using UnityEngine;<br
/> using UnityEditor;<br
/> using System.Collections;<br
/> <br
/> // an Editor method to create a cone primitive (so far no end caps)<br
/> // the top center is placed at (0/0/0)<br
/> // the bottom center is placed at (0/0/length)<br
/> // if either one of the radii is 0, the result will be a cone, otherwise a truncated cone<br
/> // note you will get inevitable breaks in the smooth shading at cone tips<br
/> // note the resulting mesh will be created as an asset in Assets/Editor<br
/> // Author: Wolfram Kresse<br
/> public class CreateCone : ScriptableWizard {<br
/> <br
/> public int numVertices = 10;<br
/> public float radiusTop = 0f;<br
/> public float radiusBottom = 1f;<br
/> public float length = 1f;<br
/> public float openingAngle = 0f; // if &gt;0, create a cone with this angle by setting radiusTop to 0, and adjust radiusBottom according to length;<br
/> public bool outside = true;<br
/> public bool inside = false;<br
/> public bool addCollider = false;<br
/> <br
/> [MenuItem ("GameObject/Create Other/Cone")]<br
/> static void CreateWizard()<br
/> {<br
/> ScriptableWizard.DisplayWizard("Create Cone", typeof(CreateCone));<br
/> }<br
/> <br
/> void OnWizardCreate(){<br
/> GameObject newCone=new GameObject("Cone");<br
/> if(openingAngle&gt;0&amp;&amp;openingAngle&lt;180){<br
/> radiusTop=0;<br
/> radiusBottom=length*Mathf.Tan(openingAngle*Mathf.Deg2Rad/2);<br
/> }<br
/> string meshName = newCone.name + numVertices + "v" + radiusTop + "t" + radiusBottom + "b" + length + "l" + length + (outside?"o":"") + (inside?"i":"");<br
/> string meshPrefabPath = "Assets/Editor/" + meshName + ".asset";<br
/> Mesh mesh = (Mesh)AssetDatabase.LoadAssetAtPath(meshPrefabPath, typeof(Mesh));<br
/> if(mesh==null){<br
/> mesh=new Mesh();<br
/> mesh.name=meshName;<br
/> // can't access Camera.current<br
/> //newCone.transform.position = Camera.current.transform.position + Camera.current.transform.forward * 5.0f;<br
/> int multiplier=(outside?1:0)+(inside?1:0);<br
/> int offset=(outside&amp;&amp;inside?2*numVertices:0);<br
/> Vector3[] vertices=new Vector3[2*multiplier*numVertices]; // 0..n-1: top, n..2n-1: bottom<br
/> Vector3[] normals=new Vector3[2*multiplier*numVertices];<br
/> Vector2[] uvs=new Vector2[2*multiplier*numVertices];<br
/> int[] tris;<br
/> float slope=Mathf.Atan((radiusBottom-radiusTop)/length); // (rad difference)/height<br
/> float slopeSin=Mathf.Sin(slope);<br
/> float slopeCos=Mathf.Cos(slope);<br
/> int i;<br
/> <br
/> for(i=0;i&lt;numVertices;i++){<br
/> float angle=2*Mathf.PI*i/numVertices;<br
/> float angleSin=Mathf.Sin(angle);<br
/> float angleCos=Mathf.Cos(angle);<br
/> float angleHalf=2*Mathf.PI*(i+0.5f)/numVertices; // for degenerated normals at cone tips<br
/> float angleHalfSin=Mathf.Sin(angleHalf);<br
/> float angleHalfCos=Mathf.Cos(angleHalf);<br
/> <br
/> vertices[i]=new Vector3(radiusTop*angleCos,radiusTop*angleSin,0);<br
/> vertices[i+numVertices]=new Vector3(radiusBottom*angleCos,radiusBottom*angleSin,length);<br
/> <br
/> if(radiusTop==0)<br
/> normals[i]=new Vector3(angleHalfCos*slopeCos,angleHalfSin*slopeCos,-slopeSin);<br
/> else<br
/> normals[i]=new Vector3(angleCos*slopeCos,angleSin*slopeCos,-slopeSin);<br
/> if(radiusBottom==0)<br
/> normals[i+numVertices]=new Vector3(angleHalfCos*slopeCos,angleHalfSin*slopeCos,-slopeSin);<br
/> else<br
/> normals[i+numVertices]=new Vector3(angleCos*slopeCos,angleSin*slopeCos,-slopeSin);<br
/> <br
/> uvs[i]=new Vector2(1.0f*i/numVertices,1);<br
/> uvs[i+numVertices]=new Vector2(1.0f*i/numVertices,0);<br
/> <br
/> if(outside&amp;&amp;inside){<br
/> // vertices and uvs are identical on inside and outside, so just copy<br
/> vertices[i+2*numVertices]=vertices[i];<br
/> vertices[i+3*numVertices]=vertices[i+numVertices];<br
/> uvs[i+2*numVertices]=uvs[i];<br
/> uvs[i+3*numVertices]=uvs[i+numVertices];<br
/> }<br
/> if(inside){<br
/> // invert normals<br
/> normals[i+offset]=-normals[i];<br
/> normals[i+numVertices+offset]=-normals[i+numVertices];<br
/> }<br
/> }<br
/> mesh.vertices = vertices;<br
/> mesh.normals = normals; <br
/> mesh.uv = uvs;<br
/> <br
/> // create triangles<br
/> // here we need to take care of point order, depending on inside and outside<br
/> int cnt=0;<br
/> if(radiusTop==0){<br
/> // top cone<br
/> tris=new int[numVertices*3*multiplier];<br
/> if(outside)<br
/> for(i=0;i&lt;numVertices;i++){<br
/> tris[cnt++]=i+numVertices;<br
/> tris[cnt++]=i;<br
/> if(i==numVertices-1)<br
/> tris[cnt++]=numVertices;<br
/> else<br
/> tris[cnt++]=i+1+numVertices;<br
/> }<br
/> if(inside)<br
/> for(i=offset;i&lt;numVertices+offset;i++){<br
/> tris[cnt++]=i;<br
/> tris[cnt++]=i+numVertices;<br
/> if(i==numVertices-1+offset)<br
/> tris[cnt++]=numVertices+offset;<br
/> else<br
/> tris[cnt++]=i+1+numVertices;<br
/> }<br
/> }else if(radiusBottom==0){<br
/> // bottom cone<br
/> tris=new int[numVertices*3*multiplier];<br
/> if(outside)<br
/> for(i=0;i&lt;numVertices;i++){<br
/> tris[cnt++]=i;<br
/> if(i==numVertices-1)<br
/> tris[cnt++]=0;<br
/> else<br
/> tris[cnt++]=i+1;<br
/> tris[cnt++]=i+numVertices;<br
/> }<br
/> if(inside)<br
/> for(i=offset;i&lt;numVertices+offset;i++){<br
/> if(i==numVertices-1+offset)<br
/> tris[cnt++]=offset;<br
/> else<br
/> tris[cnt++]=i+1;<br
/> tris[cnt++]=i;<br
/> tris[cnt++]=i+numVertices;<br
/> }<br
/> }else{<br
/> // truncated cone<br
/> tris=new int[numVertices*6*multiplier];<br
/> if(outside)<br
/> for(i=0;i&lt;numVertices;i++){<br
/> int ip1=i+1;<br
/> if(ip1==numVertices)<br
/> ip1=0;<br
/> <br
/> tris[cnt++]=i;<br
/> tris[cnt++]=ip1;<br
/> tris[cnt++]=i+numVertices;<br
/> <br
/> tris[cnt++]=ip1+numVertices;<br
/> tris[cnt++]=i+numVertices;<br
/> tris[cnt++]=ip1;<br
/> }<br
/> if(inside)<br
/> for(i=offset;i&lt;numVertices+offset;i++){<br
/> int ip1=i+1;<br
/> if(ip1==numVertices+offset)<br
/> ip1=offset;<br
/> <br
/> tris[cnt++]=ip1;<br
/> tris[cnt++]=i;<br
/> tris[cnt++]=i+numVertices;<br
/> <br
/> tris[cnt++]=i+numVertices;<br
/> tris[cnt++]=ip1+numVertices;<br
/> tris[cnt++]=ip1;<br
/> }<br
/> }<br
/> mesh.triangles = tris; <br
/> AssetDatabase.CreateAsset(mesh, meshPrefabPath);<br
/> AssetDatabase.SaveAssets();<br
/> }<br
/> <br
/> MeshFilter mf=newCone.AddComponent&lt;MeshFilter&gt;();<br
/> mf.mesh = mesh;<br
/> <br
/> newCone.AddComponent&lt;MeshRenderer&gt;();<br
/> <br
/> if(addCollider){<br
/> MeshCollider mc=newCone.AddComponent&lt;MeshCollider&gt;();<br
/> mc.sharedMesh=mf.sharedMesh;<br
/> }<br
/> <br
/> Selection.activeObject = newCone;<br
/> }<br
/> }&lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=CreateCone>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/18/unify-wiki-createcone/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Avatar Dressing room preview for Jibe</title><link>http://www.bydesigngames.com/2010/08/18/infiniteunity3d-avatar-dressing-room-preview-for-jibe/</link> <comments>http://www.bydesigngames.com/2010/08/18/infiniteunity3d-avatar-dressing-room-preview-for-jibe/#comments</comments> <pubDate>Wed, 18 Aug 2010 15:35:12 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9270</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/18/infiniteunity3d-avatar-dressing-room-preview-for-jibe/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] TerrainImporter</title><link>http://www.bydesigngames.com/2010/08/18/unify-wiki-terrainimporter/</link> <comments>http://www.bydesigngames.com/2010/08/18/unify-wiki-terrainimporter/#comments</comments> <pubDate>Wed, 18 Aug 2010 06:57:22 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* TerrainImporter.js */[[Category: Editor Scripts]]
[[Category: JavaScript]]
Author: Warwick Allison (WarwickAllison)
==Description==
Imports a set of 16-bit RAW heightmaps and 8-bit RAW alphamaps to build TerrainData for a Terrain. See doc...]]></description> <content:encoded><![CDATA[<p>Summary: /* TerrainImporter.js */</p><hr
/><div>[[Category: Editor Scripts]]<br
/> [[Category: JavaScript]]<br
/> Author: Warwick Allison (WarwickAllison)<br
/> ==Description==<br
/> Imports a set of 16-bit RAW heightmaps and 8-bit RAW alphamaps to build TerrainData for a Terrain. See documentation in the script itself. It's similar to using the '''Import Heightmap - Raw''' menu option, except it keeps all the settings so that you can reimport whenever you change the input files.<br
/> <br
/> Place the script in a folder named '''Editor''' in your project's Assets folder. Call it '''TerrainImporter.js'''.<br
/> <br
/> == TerrainImporter.js ==<br
/> &lt;javascript&gt;<br
/> /*<br
/> ** Terrain Importer for Unity<br
/> **<br
/> ** by Warwick Allison<br
/> ** Licensed under Creative Commons license - Attribution-ShareAlike 3.0 CC BY-SA<br
/> ** See license information at http://creativecommons.org/licenses/by-sa/3.0/au/<br
/> ** (private or commercial use permitted, with attribution - i.e. retain this header,<br
/> ** and republish any changes you make)<br
/> **<br
/> ** Please post changes here:<br
/> ** http://www.unifycommunity.com/wiki/index.php?title=TerrainImporter<br
/> **<br
/> ** Version 0.2 - bug fixes (close file)<br
/> ** Version 0.1 - initial version<br
/> ** Tested with Unity 3.0beta5<br
/> **<br
/> ** Place this script in the Assets/Editor/ directory of your project.<br
/> **<br
/> ** With this script installed, any .txt file which starts with "[Terrain Importer]"<br
/> ** is processed to define a new TerrainData (or modify an existing one).<br
/> ** The resulting TerrainData can then be dragged into the Hierarchy.<br
/> **<br
/> ** The file has the following format:<br
/> **<br
/> ** [Terrain Importer]<br
/> ** &lt;default settings&gt;<br
/> ** [&lt;output name&gt;]<br
/> ** &lt;specific settings&gt;<br
/> **<br
/> ** See further below for examples.<br
/> **<br
/> ** Each "setting" is &lt;parameter&gt;=&lt;value&gt; where &lt;parameter&gt; is one of those described below.<br
/> **<br
/> ** Heightfield file parameters:<br
/> ** heightFormat = r16littleendian (16 bit words, Windows byte order, the default)<br
/> ** heightFormat = r16bigendian (16 bit words, Mac byte order)<br
/> ** heightFile = file name of heightfield data (formated according to heightformat)<br
/> ** heightFileWidth = width of heightfield (default derived from file size or heightFileHeight)<br
/> ** heightFileHeight = height of heightfield (default derived from file size or heightFileWidth)<br
/> **<br
/> ** Terrain physical parameters:<br
/> ** terrainWidth = width of terrain in world units on X axis (default 1000)<br
/> ** terrainHeight = height of terrain in world units on Y axis for height of 1.0 (default 200)<br
/> ** terrainLength = length of terrain in world units on Z axis (default 1000)<br
/> **<br
/> ** Texture layering parameters:<br
/> ** equalizeLayers = set to 1 to force alphamaps to add up to 1.0 (default off)<br
/> ** layer&lt;n&gt;file = filename of raw heightfield (8 bit)<br
/> ** layer&lt;n&gt;Width = tiling width for texture &lt;n&gt; (TextureData.splatPrototypes[n].tileSize)<br
/> ** layer&lt;n&gt;Height = tiling height for texture &lt;n&gt;<br
/> ** layer&lt;n&gt;OffsetX = tiling X offset for texture &lt;n&gt; (TextureData.splatPrototypes[n].tileOffset)<br
/> ** layer&lt;n&gt;OffsetY = tiling Y offset for texture &lt;n&gt;<br
/> ** layer&lt;n&gt;Texture = asset name of tile for texture &lt;n&gt; (eg. a png file)<br
/> ** If only the texture&lt;n&gt;file is provided, *temporary* red/green/blue/grey textures are<br
/> ** created. You should then set them in the normal manner within Unity and they will be<br
/> ** maintained when the height file is modified.<br
/> ** The layer&lt;n&gt;Texture file is either relative to the path of the text asset, or<br
/> ** from the root (Assets) by starting with "/"). You cannot currently use ".." notation.<br
/> **<br
/> ** The texture tiling values above refer to the in-game tiling of the texture, not<br
/> ** tiling in the input (see the next section for those parameters).<br
/> **<br
/> ** Terrain tile selection (the heightmap can be divided up into tiles)<br
/> ** terrainTileSize = width (and height) of heightmap to extract (default heightfileWidth)<br
/> ** terrainTileX = X tile number to extract (default 0)<br
/> ** terrainTileY = Y tile number to extract (default 0)<br
/> ** Note that tiled terrains are correctly stitched, so a 513x513 heightfile can be<br
/> ** divided into 4 tiles each of 257x257, since the centerline heights are shared.<br
/> ** The terrainTileSize should be 1 plus a power of 2 (a Unity3D requirement).<br
/> ** The layer&lt;n&gt;file files must have the same aspect ratio as the height field, as they<br
/> ** are tiled in the same manner (except they do not need stitching).<br
/> ** To use tiles effectively in Unity, after adding them to the scene, you will need to<br
/> ** correctly set their transform and their neighbors (see Terrain.SetNeighbors).<br
/> **<br
/> **<br
/> ** Examples:<br
/> **<br
/> ** Simplest terrain definition:<br
/> <br
/> [Terrain Importer]<br
/> heightfile=heightdata.r16<br
/> <br
/> ** Textured terrain definition:<br
/> <br
/> [Terrain Importer]<br
/> [MyTerrainExample]<br
/> heightFile=heightdata.r16<br
/> terrainWidth=100<br
/> terrainHeight=50<br
/> terrainLength=100<br
/> equalizeLayers=1<br
/> layer1File=slope.raw<br
/> layer2File=flow.raw<br
/> <br
/> ** Tiled terrain definition:<br
/> <br
/> [Terrain Importer]<br
/> # This is 3x1 tiles<br
/> heightFile=heightdata.r16<br
/> heightFileWidth=769<br
/> terrainSize=257<br
/> terrainWidth=100<br
/> terrainHeight=50<br
/> terrainLength=100<br
/> [LeftTerrain]<br
/> terrainOffsetX=0<br
/> [MiddleTerrain]<br
/> terrainOffsetX=1<br
/> [RightTerrain]<br
/> terrainOffsetX=2<br
/> <br
/> **<br
/> ** Lines except the first may also be a comment, preceded by "#" or "//", or be blank.<br
/> ** All texts are case sensitive.<br
/> ** If no [&lt;output name&gt;] line is given, a default name is generated from the text file name.<br
/> **<br
/> ** Unity will only reimport if you chnage the txt file or explicitly use<br
/> ** the Reimport context menu option. When the terrain is reimported, conflicting changes<br
/> ** you have made within Unity will be lost - so make changes in the source files. You may<br
/> ** however freely modify textures and add trees and other details from within Unity.<br
/> **/<br
/> <br
/> class TerrainImporter extends AssetPostprocessor {<br
/> static function OnPostprocessAllAssets (<br
/> importedAssets : String[],<br
/> deletedAssets : String[],<br
/> movedAssets : String[],<br
/> movedFromAssetPaths : String[])<br
/> {<br
/> for (var ass in importedAssets) {<br
/> if (ass.EndsWith(".txt")) {<br
/> var sr = new StreamReader(ass);<br
/> var s = sr.ReadLine();<br
/> if (s == "[Terrain Importer]") {<br
/> var baseparam = new Hashtable();<br
/> baseparam["terrainWidth"] = "1000";<br
/> baseparam["terrainHeight"] = "200";<br
/> baseparam["terrainLength"] = "1000";<br
/> baseparam["terrainTileX"] = "0";<br
/> baseparam["terrainTileY"] = "0";<br
/> baseparam["equalizeLayers"] = 0;<br
/> baseparam["heightFormat"] = "r16littleendian";<br
/> var param = baseparam.Clone();<br
/> var currentoutput = "";<br
/> while (sr.Peek() &gt;= 0) {<br
/> s = sr.ReadLine();<br
/> if (s.StartsWith("[") &amp;&amp; s.EndsWith("]")) {<br
/> if (currentoutput == "") {<br
/> baseparam = param.Clone();<br
/> } else {<br
/> GenerateTerrain(currentoutput,param,Path.GetDirectoryName(ass));<br
/> }<br
/> currentoutput = s.Substring(1,s.Length-2);<br
/> param = baseparam.Clone();<br
/> } else if (s == "" || s.StartsWith("//") || s.StartsWith("#")) {<br
/> // Ignore (comment)<br
/> } else {<br
/> var kv = s.Split("="[0]);<br
/> param[kv[0]]=kv[1];<br
/> }<br
/> }<br
/> if (currentoutput == "") {<br
/> GenerateTerrain(Path.GetFileNameWithoutExtension(ass)+"-terrain",param,Path.GetDirectoryName(ass));<br
/> } else {<br
/> GenerateTerrain(currentoutput,param,Path.GetDirectoryName(ass));<br
/> }<br
/> }<br
/> sr.Close();<br
/> }<br
/> }<br
/> }<br
/> <br
/> static function GenerateTerrain(output : String, param : Hashtable, path : String)<br
/> {<br
/> var terraindatapath = Path.Combine(path,output + ".asset");<br
/> Debug.Log("Generate Terrain: " + terraindatapath);<br
/> <br
/> var terrainData : TerrainData = AssetDatabase.LoadAssetAtPath(terraindatapath,TerrainData);<br
/> if (!terrainData) {<br
/> terrainData = new TerrainData();<br
/> AssetDatabase.CreateAsset(terrainData, terraindatapath);<br
/> }<br
/> <br
/> var fi = new FileInfo(Path.Combine(path,param["heightFile"]));<br
/> <br
/> var hfSamples : int = fi.Length/2;<br
/> var hfWidth : int;<br
/> var hfHeight : int;<br
/> if (!int.TryParse(param["heightFileWidth"],hfWidth))<br
/> hfWidth = 0;<br
/> if (!int.TryParse(param["heightFileHeight"],hfHeight) || hfHeight &lt;= 0) {<br
/> if (hfWidth &gt; 0)<br
/> hfHeight = hfSamples/hfWidth;<br
/> else<br
/> hfHeight = hfWidth = Mathf.CeilToInt(Mathf.Sqrt(hfSamples));<br
/> } else {<br
/> if (hfWidth &lt;= 0)<br
/> hfWidth = hfSamples/hfHeight;<br
/> }<br
/> var size : int;<br
/> if (!int.TryParse(param["terrainTileSize"],size))<br
/> size = hfWidth;<br
/> var tOffX : int;<br
/> if (!int.TryParse(param["terrainTileX"],tOffX))<br
/> tOffX = 0;<br
/> var tOffY : int;<br
/> if (!int.TryParse(param["terrainTileY"],tOffY))<br
/> tOffY = 0;<br
/> <br
/> if (tOffX &lt; 0 || tOffY &lt; 0 || (size-1)*tOffX &gt; hfWidth || (size-1)*tOffY &gt; hfHeight) {<br
/> Debug.LogError("terrainTile ("+tOffX+","+tOffY+") of size "+size+"x"+size+" "<br
/> +"is outside heightFile size "+hfWidth+"x"+hfHeight);<br
/> return; // We don't want to Seek/Read outside file bounds.<br
/> }<br
/> <br
/> // Stitching reuses right/bottom edges.<br
/> tOffX = (size-1)*tOffX;<br
/> tOffY = (size-1)*tOffY;<br
/> <br
/> var bpp = 2; // only word formats are currently supported<br
/> <br
/> var x;<br
/> var y;<br
/> <br
/> var fs = fi.OpenRead();<br
/> var b = new byte[size*size*bpp];<br
/> fs.Seek((tOffX+tOffY*hfWidth)*bpp, SeekOrigin.Current);<br
/> if (size == hfWidth) {<br
/> fs.Read(b,0,size*size*bpp);<br
/> } else {<br
/> for (y=0; y&lt;size; ++y) {<br
/> fs.Read(b,y*size*bpp,size*bpp);<br
/> if (y+1&lt;size)<br
/> fs.Seek((hfWidth-size)*bpp, SeekOrigin.Current);<br
/> }<br
/> }<br
/> fs.Close();<br
/> <br
/> var h = MultiDim.FloatArray(size,size);<br
/> var i=0;<br
/> <br
/> if (param["heightFormat"] == "r16bigendian") {<br
/> for (x=0; x&lt;size; ++x) {<br
/> for (y=0; y&lt;size; ++y) {<br
/> h[size-1-x,y] = (b[i++]*256.0+b[i++])/65535.0;<br
/> }<br
/> }<br
/> } else { // r16littleendian<br
/> for (x=0; x&lt;size; ++x) {<br
/> for (y=0; y&lt;size; ++y) {<br
/> h[size-1-x,y] = (b[i++]+b[i++]*256.0)/65535.0;<br
/> }<br
/> }<br
/> }<br
/> <br
/> terrainData.heightmapResolution = size-1;<br
/> <br
/> if (param["layer0File"] || param["layer1File"]) {<br
/> var nlayers = 2;<br
/> while (param["layer"+nlayers+"File"]) nlayers++;<br
/> <br
/> var alphas = MultiDim.FloatArray(1,1,1);<br
/> var asize = 0;<br
/> var amWidth = 0;<br
/> for (var lay=0; lay&lt;nlayers; ++lay) {<br
/> if (param["layer"+lay+"File"]) {<br
/> fi = new FileInfo(Path.Combine(path,param["layer"+lay+"File"]));<br
/> if (asize==0) {<br
/> var amSamples = fi.Length;<br
/> asize = size * amSamples / hfSamples;<br
/> amWidth = hfWidth * amSamples / hfSamples;<br
/> terrainData.alphamapResolution = asize;<br
/> alphas = MultiDim.FloatArray(asize,asize,nlayers);<br
/> }<br
/> <br
/> <br
/> fs = fi.OpenRead();<br
/> b = new byte[asize*asize];<br
/> fs.Seek(tOffX+tOffY*amWidth, SeekOrigin.Current);<br
/> if (asize == amWidth) {<br
/> fs.Read(b,0,asize*asize);<br
/> } else {<br
/> for (y=0; y&lt;asize; ++y) {<br
/> fs.Read(b,y*asize,asize);<br
/> if (y+1&lt;asize)<br
/> fs.Seek(amWidth-asize, SeekOrigin.Current);<br
/> }<br
/> }<br
/> <br
/> fs.Close();<br
/> i=0;<br
/> for (x=0; x&lt;asize; ++x) {<br
/> for (y=0; y&lt;asize; ++y) {<br
/> alphas[asize-1-x,y,lay] = b[i++]/256.0;<br
/> }<br
/> }<br
/> }<br
/> }<br
/> if (param["equalizeLayers"]) {<br
/> if (!param["layer0File"]) {<br
/> // create layer0 by remainder<br
/> for (x=0; x&lt;asize; ++x) {<br
/> for (y=0; y&lt;asize; ++y) {<br
/> var rem=1.0;<br
/> for (lay=1; lay&lt;nlayers; ++lay)<br
/> rem -= alphas[asize-1-x,y,lay];<br
/> if (rem &gt; 0.0)<br
/> alphas[asize-1-x,y,0] = rem;<br
/> }<br
/> }<br
/> }<br
/> // Equalize by rescaling<br
/> for (x=0; x&lt;asize; ++x) {<br
/> for (y=0; y&lt;asize; ++y) {<br
/> var tot=0.0;<br
/> for (lay=0; lay&lt;nlayers; ++lay)<br
/> tot += alphas[asize-1-x,y,lay];<br
/> if (tot &gt; 0.0) {<br
/> for (lay=0; lay&lt;nlayers; ++lay)<br
/> alphas[asize-1-x,y,lay] = alphas[asize-1-x,y,lay]/tot;<br
/> }<br
/> }<br
/> }<br
/> }<br
/> var oldsp = terrainData.splatPrototypes;<br
/> var sp = new SplatPrototype[nlayers];<br
/> for (lay=0; lay&lt;nlayers; ++lay) {<br
/> var splat : String = "layer"+lay;<br
/> sp[lay] = new SplatPrototype();<br
/> <br
/> var ts : Vector2;<br
/> if (!float.TryParse(param[splat+"Width"],ts.x)) {<br
/> if (lay &gt;= oldsp.Length) ts.x = 15;<br
/> else ts.x = oldsp[lay].tileSize.x;<br
/> }<br
/> if (!float.TryParse(param[splat+"Height"],ts.y)) {<br
/> if (lay &gt;= oldsp.Length) ts.y = 15;<br
/> else ts.y = oldsp[lay].tileSize.y;<br
/> }<br
/> <br
/> var to : Vector2;<br
/> if (!float.TryParse(param[splat+"OffsetX"],to.x)) {<br
/> if (lay &gt;= oldsp.Length) to.x = 0;<br
/> else to.x = oldsp[lay].tileOffset.x;<br
/> }<br
/> if (!float.TryParse(param[splat+"OffsetY"],to.y)) {<br
/> if (lay &gt;= oldsp.Length) to.y = 0;<br
/> else to.y = oldsp[lay].tileOffset.y;<br
/> }<br
/> var tex : Texture2D;<br
/> var texfile = param[splat+"Texture"];<br
/> if (texfile) {<br
/> if (texfile.StartsWith("/") || texfile.StartsWith("&#92;&#92;")) {<br
/> tex = AssetDatabase.LoadMainAssetAtPath("Assets"+param[splat+"Texture"]);<br
/> } else {<br
/> tex = AssetDatabase.LoadMainAssetAtPath(Path.Combine(path,param[splat+"Texture"]));<br
/> }<br
/> } else if (lay &lt; oldsp.Length) {<br
/> tex = oldsp[lay].texture;<br
/> }<br
/> if (!tex) {<br
/> tex = new Texture2D(1,1);<br
/> var g = (lay-1)/nlayers;<br
/> tex.SetPixel(0,0,<br
/> lay==0 ? Color.red :<br
/> lay==1 ? Color.green :<br
/> lay==2 ? Color.blue : Color(g,g,g));<br
/> tex.Apply();<br
/> }<br
/> sp[lay].texture = tex;<br
/> sp[lay].tileSize = ts;<br
/> sp[lay].tileOffset = to;<br
/> }<br
/> terrainData.splatPrototypes = sp;<br
/> terrainData.SetAlphamaps(0,0,alphas);<br
/> }<br
/> <br
/> var sz : Vector3;<br
/> sz.x = float.Parse(param["terrainWidth"]);<br
/> sz.y = float.Parse(param["terrainHeight"]);<br
/> sz.z = float.Parse(param["terrainLength"]);<br
/> <br
/> terrainData.size = sz;<br
/> terrainData.SetHeights(0,0,h);<br
/> terrainData.RecalculateTreePositions();<br
/> }<br
/> }<br
/> &lt;/javascript&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=TerrainImporter>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/18/unify-wiki-terrainimporter/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Tom Higgins, Unity Product Evangelist at Miami Ad School</title><link>http://www.bydesigngames.com/2010/08/17/infiniteunity3d-tom-higgins-unity-product-evangelist-at-miami-ad-school/</link> <comments>http://www.bydesigngames.com/2010/08/17/infiniteunity3d-tom-higgins-unity-product-evangelist-at-miami-ad-school/#comments</comments> <pubDate>Tue, 17 Aug 2010 14:34:05 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9269</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/17/infiniteunity3d-tom-higgins-unity-product-evangelist-at-miami-ad-school/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] FaceAPI and Unity3D for Facial Gesture</title><link>http://www.bydesigngames.com/2010/08/15/infiniteunity3d-faceapi-and-unity3d-for-facial-gesture/</link> <comments>http://www.bydesigngames.com/2010/08/15/infiniteunity3d-faceapi-and-unity3d-for-facial-gesture/#comments</comments> <pubDate>Sun, 15 Aug 2010 21:53:56 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9268</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/15/infiniteunity3d-faceapi-and-unity3d-for-facial-gesture/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Executors Framework</title><link>http://www.bydesigngames.com/2010/08/12/unify-wiki-executors-framework/</link> <comments>http://www.bydesigngames.com/2010/08/12/unify-wiki-executors-framework/#comments</comments> <pubDate>Thu, 12 Aug 2010 13:38:51 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* Code */[[Category:Concepts]]
[[Category:Design Patterns]]
[[Category:Threading]]
[[Category:C Sharp]]
Author: Magnus Wolffelt== Description ==
This is a small framework designed to assist in the usage of multiple threads in a C#/.Net pr...]]></description> <content:encoded><![CDATA[<p>Summary: /* Code */</p><hr
/><div>[[Category:Concepts]]<br
/> [[Category:Design Patterns]]<br
/> [[Category:Threading]]<br
/> [[Category:C Sharp]]<br
/> Author: Magnus Wolffelt<br
/> <br
/> == Description ==<br
/> This is a small framework designed to assist in the usage of multiple threads in a C#/.Net program.<br
/> Multi-threading is a very complex subject, and it's really hard to write bug-free multi-threaded code - hence the need for frameworks that make it a little easier.<br
/> <br
/> The way this works is with the concepts of "Executors", "Callables" and "Futures".<br
/> An executor is an object that consumes Callable objects (work tasks), and returns Future objects. These Future objects have a generic parameter which is the result type of the computation. The Future objects can also be polled for completion, or they can be requsted to return the result - which blocks the calling thread until the result has been computed.<br
/> <br
/> While similar to the AsyncOperation provided by Unity, this concept is primarily inspired by the Java standard library, which features an extensive collection of implementations for this purpose.<br
/> <br
/> == Usage ==<br
/> <br
/> To execute tasks, you need an executor:<br
/> &lt;csharp&gt;<br
/> IExecutor myExecutor = new ImmediateExecutor(); // or new SingleThreadExecutor() for example<br
/> &lt;/csharp&gt;<br
/> <br
/> Then you submit tasks:<br
/> &lt;csharp&gt;<br
/> Future&lt;int&gt; myFuture1 = myExecutor.Submit(new MultiplyIntsTask(5, 7));<br
/> Future&lt;int&gt; myFuture2 = myExecutor.Submit(new MultiplyIntsTask(5, 12));<br
/> &lt;/csharp&gt;<br
/> <br
/> And then you can either poll:<br
/> &lt;csharp&gt;<br
/> if(myFuture1.IsDone) { int myResult = myFuture1.GetResult(); }<br
/> &lt;/csharp&gt;<br
/> <br
/> or... get the result directly (blocking call):<br
/> &lt;csharp&gt;<br
/> int myResult = myFuture1.GetResult(); // Blocks until result is ready<br
/> &lt;/csharp&gt;<br
/> <br
/> Note that any exception cast during the computation task, will be thrown when calling GetResult(). <br
/> <br
/> Also, the [[#ExecutionManager.cs|ExecutionManager]] helper component can take care of the polling, and do a delegate callback from the Unity thread, which is safe.<br
/> <br
/> <br
/> The MultiplyIntsTask looks like this:<br
/> &lt;csharp&gt;<br
/> class MultiplyIntsTask : ICallable&lt;int&gt; {<br
/> int a;<br
/> int b;<br
/> public MultiplyIntsTask(int a, int b) {<br
/> this.a = a;<br
/> this.b = b;<br
/> }<br
/> public int Call() {<br
/> return a * b;<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> This particular task is very fast and really not a good candidate for threaded processing. Consider this an illustrative example only.<br
/> <br
/> == Why? ==<br
/> (Skip this section if you're already convinced! ;))<br
/> <br
/> The primary advantage over AsyncOperation and .Net Begin/EndInvoke is that tasks in this framework are executed by an explicitly specified executor, which means one can easily change the manner in which async tasks are executed. For example, simply exchange the SingleThreadExecutor instantiation for an ImmediateExecutor, and you are no longer using multi-threading at all, but your other code remains exactly the same as before.<br
/> <br
/> If someone implemented a thread-pool executor with multiple threads processing submitted tasks, the interface would remain the same, and you could easily switch from no threading, to dual-threading, to pooled threading, with no modifications to existing code. This is really convenient in some cases where you are not sure of the best way, or you want it to be configurable in runtime.<br
/> <br
/> === What's wrong with Begin/EndInvoke? ===<br
/> Like stated above, Begin/EndInvoke does not provide a means for controlling the way tasks are executed. It accesses a global (VM scope even?) thread pool, to which task are submitted. So you can't easily switch between threaded and non-threaded approaches - not even in compile time. Executors Framework lets the user change execution style even in runtime, by just replacing the executor object. This may sound like a small detail, but for me it is important and has been very useful on several occasions.<br
/> <br
/> === Why ICallable interface, and not simply delegates? ===<br
/> This is a good question, and the framework might switch to delegates in the future. However, some concerns surfaced when delegates were tried briefly:<br
/> # Anonymous delegates can behave "oddly"[http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!689.entry] when using outer variables, and invoked later. For example, it's not safe to use an iterator int value in an anonymous delegate object, unless the delegate is invoke immediately before the iterator variable is incremented.<br
/> # Sometimes you will want to, later, access and inspect the data passed to the execution task that finished, which is trivial if using classes implementing the ICallable interface, but more complex when using delegate objects.<br
/> <br
/> Until I feel that these issues have been resolved in a satisfying way, the framework will stick to the ICallable interface, which makes it more apparent what is going on with variables and data.<br
/> <br
/> == Code ==<br
/> Note: Will put up source zip and pre-built assembly here soon.<br
/> <br
/> There are 10 files:<br
/> * [[#IExecutor.cs|IExecutor.cs]]<br
/> * [[#ICallable.cs|ICallable.cs]]<br
/> * [[#Future.cs|Future.cs]]<br
/> * [[#ImmediateExecutor.cs|ImmediateExecutor.cs]]<br
/> * [[#SingleThreadExecutor.cs|SingleThreadExecutor.cs]]<br
/> * [[#WorkItem.cs|WorkItem.cs]]<br
/> * [[#ExecutionException.cs|ExecutionException.cs]]<br
/> * [[#ExecutorTester.cs|ExecutorTester.cs]] (Unit tests, not required for usage)<br
/> * [[#ExecutionManager.cs|ExecutionManager.cs]] (Unity helper component, not required for usage)<br
/> * [[#Example.cs|Example.cs]] (Helper component usage example, not required for usage)<br
/> <br
/> === IExecutor.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> <br
/> namespace Executors {<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Common interface for all executors that can execute tasks.<br
/> /// Tasks are also known as ICallable objects.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> public interface IExecutor {<br
/> Future&lt;T&gt; Submit&lt;T&gt;(ICallable&lt;T&gt; callable);<br
/> bool IsShutdown();<br
/> void Shutdown();<br
/> int GetQueueSize();<br
/> }<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Optional shutdown mode specified when creating certain<br
/> /// types of executors. Note that this is not applicable<br
/> /// to immediate executors.<br
/> /// Default is FinishAll.<br
/> /// &lt;/summary&gt;<br
/> public enum ShutdownMode {<br
/> FinishAll,<br
/> CancelQueuedTasks<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> === ICallable.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> <br
/> namespace Executors {<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Callable object that returns type T, and may throw an exception.<br
/> /// WARNING: Do not make Unity calls from a potentially threaded work task.<br
/> /// Unity is generally not thread-safe.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;typeparam name="T"&gt;Type of the computation result object&lt;/typeparam&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> public interface ICallable&lt;T&gt; {<br
/> T Call();<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> === Future.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections.Generic;<br
/> using System.Threading;<br
/> <br
/> namespace Executors {<br
/> <br
/> <br
/> public interface IFuture {<br
/> bool IsDone { get; }<br
/> }<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// A Future represents the result of a potentially asynchronous computation.<br
/> /// Methods/properties are available to check if the operation is done or not.<br
/> /// If an execption is thrown during the computation, this exception will be thrown<br
/> /// when calling GetResult().<br
/> /// &lt;/summary&gt;<br
/> /// &lt;typeparam name="T"&gt;Type of the computation result object&lt;/typeparam&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> public class Future&lt;T&gt; : IFuture {<br
/> <br
/> private T result;<br
/> private Exception exception = null;<br
/> <br
/> volatile bool isDone = false;<br
/> /// &lt;summary&gt;<br
/> /// Is the computation done?<br
/> /// &lt;/summary&gt;<br
/> public bool IsDone {<br
/> get { return isDone; }<br
/> }<br
/> <br
/> <br
/> internal void SetResult(T result) {<br
/> this.result = result;<br
/> }<br
/> <br
/> internal void SetException(Exception e) {<br
/> exception = e;<br
/> }<br
/> <br
/> internal void SetDone() {<br
/> isDone = true;<br
/> }<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Get the result of the computation.<br
/> /// Blocks until the computation is done.<br
/> /// &lt;/summary&gt;<br
/> public T GetResult() {<br
/> // Could maybe do this with monitor instead.<br
/> while(!IsDone) {<br
/> Thread.Sleep(1);<br
/> }<br
/> <br
/> if(exception != null) {<br
/> throw exception;<br
/> }<br
/> <br
/> return result;<br
/> }<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> === ImmediateExecutor.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> <br
/> namespace Executors {<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Non-threaded immediate executor.<br
/> /// Mainly a convenience executor - makes it easy<br
/> /// to switch between threaded and non-threaded approaches.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> public class ImmediateExecutor : IExecutor {<br
/> private bool shutdown = false;<br
/> <br
/> #region IExecutor Members<br
/> <br
/> public Future&lt;T&gt; Submit&lt;T&gt;(ICallable&lt;T&gt; callable) {<br
/> if(shutdown) {<br
/> throw new InvalidOperationException("May not submit tasks after shutting down executor.");<br
/> }<br
/> Future&lt;T&gt; future = new Future&lt;T&gt;();<br
/> WorkItem&lt;T&gt; task = new WorkItem&lt;T&gt;(callable, future);<br
/> ((IWorkItem)task).Execute();<br
/> return future;<br
/> }<br
/> <br
/> public bool IsShutdown() {<br
/> return shutdown;<br
/> }<br
/> <br
/> public void Shutdown() {<br
/> shutdown = true;<br
/> }<br
/> <br
/> public int GetQueueSize() {<br
/> return 0;<br
/> }<br
/> <br
/> #endregion<br
/> <br
/> <br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> === SingleThreadExecutor.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections.Generic;<br
/> using System.Threading;<br
/> using UnityEngine;<br
/> <br
/> namespace Executors {<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Single threaded executor. Useful for asynchronous operations<br
/> /// without making the program overly complex.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> class SingleThreadExecutor : IExecutor {<br
/> private Thread workerThread = null;<br
/> private readonly Queue&lt;IWorkItem&gt; taskQueue = new Queue&lt;IWorkItem&gt;();<br
/> private readonly object locker = new object();<br
/> <br
/> private ShutdownMode shutdownMode;<br
/> volatile bool shutdown = false;<br
/> volatile bool shutdownCompleted = false;<br
/> <br
/> <br
/> public SingleThreadExecutor() : this(ShutdownMode.FinishAll) { }<br
/> <br
/> public SingleThreadExecutor(ShutdownMode shutdownMode) {<br
/> this.shutdownMode = shutdownMode;<br
/> ThreadStart start = new ThreadStart(RunWorker);<br
/> workerThread = new Thread(start);<br
/> workerThread.Start();<br
/> }<br
/> <br
/> <br
/> void RunWorker() {<br
/> while(!shutdown) {<br
/> lock(locker) {<br
/> while(taskQueue.Count == 0 &amp;&amp; !shutdown) {<br
/> Monitor.Wait(locker);<br
/> }<br
/> }<br
/> <br
/> while(taskQueue.Count &gt; 0) {<br
/> bool shouldCancel = (shutdown &amp;&amp; shutdownMode.Equals(ShutdownMode.CancelQueuedTasks));<br
/> if(shouldCancel) {<br
/> break;<br
/> }<br
/> <br
/> IWorkItem task = null;<br
/> lock(locker) {<br
/> if(taskQueue.Count &gt; 0) {<br
/> task = taskQueue.Dequeue();<br
/> }<br
/> }<br
/> if(task != null) {<br
/> task.Execute();<br
/> }<br
/> }<br
/> }<br
/> <br
/> foreach(IWorkItem task in taskQueue) {<br
/> task.Cancel("Shutdown");<br
/> }<br
/> <br
/> shutdownCompleted = true;<br
/> }<br
/> <br
/> <br
/> #region IExecutor Members<br
/> <br
/> public Future&lt;T&gt; Submit&lt;T&gt;(ICallable&lt;T&gt; callable) {<br
/> lock(locker) {<br
/> if(shutdown) {<br
/> throw new InvalidOperationException("May not submit tasks after shutting down executor.");<br
/> }<br
/> Future&lt;T&gt; future = new Future&lt;T&gt;();<br
/> WorkItem&lt;T&gt; task = new WorkItem&lt;T&gt;(callable, future);<br
/> taskQueue.Enqueue(task);<br
/> Monitor.Pulse(locker);<br
/> return future;<br
/> }<br
/> }<br
/> <br
/> public bool IsShutdown() {<br
/> return shutdownCompleted;<br
/> }<br
/> <br
/> public void Shutdown() {<br
/> lock(locker) {<br
/> shutdown = true;<br
/> Monitor.Pulse(locker);<br
/> }<br
/> }<br
/> <br
/> public int GetQueueSize() {<br
/> // FIXME: Find out if lock is really necessary here.<br
/> lock(locker) {<br
/> return taskQueue.Count;<br
/> }<br
/> }<br
/> <br
/> #endregion<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> === WorkItem.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> <br
/> namespace Executors {<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Internal type used by executors to associate Future objects with<br
/> /// callables, and to call the callable and set appropriate fields<br
/> /// in the Future object.<br
/> /// The non-generic interface is needed for the Executor code.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> internal interface IWorkItem {<br
/> void Execute();<br
/> void Cancel(string reason);<br
/> }<br
/> <br
/> internal class WorkItem&lt;T&gt; : IWorkItem {<br
/> public readonly ICallable&lt;T&gt; callable;<br
/> public readonly Future&lt;T&gt; future;<br
/> <br
/> public WorkItem(ICallable&lt;T&gt; callable, Future&lt;T&gt; future) {<br
/> this.callable = callable;<br
/> this.future = future;<br
/> }<br
/> <br
/> public void Execute() {<br
/> try {<br
/> T result = callable.Call();<br
/> future.SetResult(result);<br
/> } catch(Exception e) {<br
/> future.SetException(new ExecutionException(e));<br
/> } finally {<br
/> future.SetDone();<br
/> }<br
/> }<br
/> <br
/> public void Cancel(string reason) {<br
/> if(future.IsDone) {<br
/> throw new InvalidOperationException("Can not cancel a future that is done.");<br
/> }<br
/> future.SetException(new ExecutionException(new Exception("Task was cancelled due to: " + reason)));<br
/> future.SetDone();<br
/> }<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> === ExecutionException.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> <br
/> namespace Executors {<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Wrapper exception type for exceptions thrown during<br
/> /// execution of an ICallable.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> public class ExecutionException : Exception {<br
/> <br
/> public readonly Exception delayedException;<br
/> <br
/> public ExecutionException(Exception delayedException) {<br
/> this.delayedException = delayedException;<br
/> }<br
/> }<br
/> }<br
/> &lt;/csharp&gt;<br
/> <br
/> === ExecutorTester.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections.Generic;<br
/> using UnityEngine;<br
/> using System.Threading;<br
/> <br
/> namespace Executors {<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Simple class for (basic) unit testing of executors.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> public class ExecutorTester {<br
/> <br
/> class MultiplyTask : ICallable&lt;double&gt; {<br
/> int a;<br
/> int b;<br
/> public MultiplyTask(int a, int b) {<br
/> this.a = a;<br
/> this.b = b;<br
/> }<br
/> <br
/> public double Call() {<br
/> Thread.Sleep(10);<br
/> return (double)a * b;<br
/> }<br
/> }<br
/> <br
/> <br
/> class ExceptionThrowingTask : ICallable&lt;int&gt; {<br
/> public int Call() {<br
/> throw new ExecutionException(new Exception("Task thrown exception."));<br
/> }<br
/> }<br
/> <br
/> bool doLogging;<br
/> <br
/> <br
/> public ExecutorTester(bool doLogging)<br
/> {<br
/> this.doLogging = doLogging;<br
/> }<br
/> <br
/> private void Log(string msg)<br
/> {<br
/> if (doLogging)<br
/> {<br
/> Debug.Log("ExecutorTester: " + msg);<br
/> }<br
/> }<br
/> <br
/> <br
/> public void TestAllExecutors() {<br
/> List&lt;IExecutor&gt; toBeTested = new List&lt;IExecutor&gt;();<br
/> toBeTested.Add(new ImmediateExecutor());<br
/> toBeTested.Add(new SingleThreadExecutor());<br
/> <br
/> foreach(IExecutor executor in toBeTested) {<br
/> DoBasicTest(executor);<br
/> }<br
/> <br
/> foreach(IExecutor executor in toBeTested) {<br
/> DoExceptionTest(executor);<br
/> }<br
/> <br
/> foreach(IExecutor executor in toBeTested) {<br
/> DoShutdownTest(executor);<br
/> }<br
/> <br
/> DoShutdownWithPendingTasksTest(new SingleThreadExecutor());<br
/> DoShutdownWithPendingTasksTest(new SingleThreadExecutor(ShutdownMode.CancelQueuedTasks));<br
/> }<br
/> <br
/> <br
/> <br
/> <br
/> <br
/> void DoBasicTest(IExecutor executor) {<br
/> <br
/> List&lt;Future&lt;double&gt;&gt; futures = new List&lt;Future&lt;double&gt;&gt;();<br
/> List&lt;double&gt; expectedAnswers = new List&lt;double&gt;();<br
/> <br
/> for(int i = 1; i &lt; 10; i++) {<br
/> futures.Add(executor.Submit(new MultiplyTask(i, i)));<br
/> //futures.Add(executor.Submit&lt;double&gt;(delegate () { return i*i; } ));<br
/> expectedAnswers.Add(i * i);<br
/> }<br
/> <br
/> for(int i = 0; i &lt; futures.Count; i++) {<br
/> AssertAlmostEqual(futures[i].GetResult(), expectedAnswers[i]);<br
/> AssertTrue(futures[i].IsDone);<br
/> <br
/> Log("Basic test " + i + " with executor type " + executor.GetType().Name + " passed.");<br
/> }<br
/> }<br
/> <br
/> <br
/> <br
/> void DoExceptionTest(IExecutor executor) {<br
/> List&lt;Future&lt;int&gt;&gt; futures = new List&lt;Future&lt;int&gt;&gt;();<br
/> <br
/> for(int i = 0; i &lt; 10; i++) {<br
/> futures.Add(executor.Submit(new ExceptionThrowingTask()));<br
/> //futures.Add(executor.Submit&lt;int&gt;(<br
/> //	delegate () { throw new ExecutionException(new Exception("Task thrown exception.")); }));<br
/> }<br
/> <br
/> for(int i = 0; i &lt; futures.Count; i++) {<br
/> try {<br
/> futures[i].GetResult();<br
/> // Not good<br
/> throw new Exception("Shouldn't be here...");<br
/> } catch(ExecutionException) {<br
/> // All good<br
/> }<br
/> <br
/> AssertTrue(futures[i].IsDone);<br
/> <br
/> Log("Exception test " + i + " with executor type " + executor.GetType().Name + " passed.");<br
/> }<br
/> }<br
/> <br
/> void DoShutdownTest(IExecutor executor) {<br
/> executor.Shutdown();<br
/> <br
/> for(int i = 0; i &lt; 20; i++) {<br
/> if(executor.IsShutdown()) {<br
/> Log("Shutdown test with executor type " + executor.GetType().Name + " passed.");<br
/> return;<br
/> } else {<br
/> Thread.Sleep(100);<br
/> }<br
/> }<br
/> throw new Exception("Executor " + executor.GetType().Name + " failed to shutdown in a timely manner.");<br
/> }<br
/> <br
/> <br
/> void DoShutdownWithPendingTasksTest(IExecutor executor) {<br
/> <br
/> List&lt;Future&lt;double&gt;&gt; futures = new List&lt;Future&lt;double&gt;&gt;();<br
/> for(int i = 0; i &lt; 20; i++) {<br
/> futures.Add(executor.Submit(new MultiplyTask(i, i)));<br
/> }<br
/> <br
/> Thread.Sleep(100);<br
/> DoShutdownTest(executor);<br
/> int queueSize = executor.GetQueueSize();<br
/> Log("Items in queue after shutdown: " + queueSize);<br
/> int successCount = 0;<br
/> int cancelledCount = 0;<br
/> for(int i = 0; i &lt; futures.Count; i++) {<br
/> try {<br
/> if(!futures[i].IsDone) {<br
/> throw new Exception("All queued tasks should have been set to done during shutdown.");<br
/> }<br
/> double result = futures[i].GetResult();<br
/> successCount++;<br
/> } catch(ExecutionException) {<br
/> cancelledCount++;<br
/> }<br
/> }<br
/> AssertEqual(queueSize, cancelledCount);<br
/> Log("Shutdown with pending tasks: " + successCount + " completed, " + cancelledCount + " cancelled.");<br
/> }<br
/> <br
/> <br
/> void AssertTrue(bool condition) {<br
/> if(!condition) {<br
/> throw new Exception("Condition not true.");<br
/> }<br
/> }<br
/> <br
/> void AssertEqual(int i1, int i2) {<br
/> if(i1 != i2) {<br
/> throw new Exception("Numbers are not equal: " + i1 + " , " + i2);<br
/> }<br
/> }<br
/> <br
/> void AssertAlmostEqual(double d1, double d2) {<br
/> if(System.Math.Abs(d1 - d2) &gt; 0.0000001f) {<br
/> throw new Exception("Numbers are not equal: " + d1 + " , " + d2);<br
/> }<br
/> }<br
/> <br
/> }<br
/> }<br
/> <br
/> <br
/> <br
/> &lt;/csharp&gt;<br
/> <br
/> === ExecutionManager.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections.Generic;<br
/> using UnityEngine;<br
/> using Executors;<br
/> using System.Threading;<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Unity helper component for convenient usage of the Executors Framework.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> [AddComponentMenu("Executors Framework/Execution Manager")]<br
/> public class ExecutionManager : MonoBehaviour {<br
/> public delegate void TaskFinishedHandler&lt;T&gt;(ICallable&lt;T&gt; finishedTask, Future&lt;T&gt; finishedFuture);<br
/> <br
/> private interface IManagedTask {<br
/> void CallCallback();<br
/> bool IsDone { get; }<br
/> }<br
/> <br
/> private class ManagedTask&lt;T&gt; : IManagedTask {<br
/> ICallable&lt;T&gt; callable;<br
/> Future&lt;T&gt; future;<br
/> TaskFinishedHandler&lt;T&gt; finishedHandler;<br
/> <br
/> public ManagedTask(ICallable&lt;T&gt; callable, Future&lt;T&gt; future, TaskFinishedHandler&lt;T&gt; finishedHandler) {<br
/> this.callable = callable;<br
/> this.future = future;<br
/> this.finishedHandler = finishedHandler;<br
/> }<br
/> <br
/> public bool IsDone { get { return future.IsDone; } }<br
/> <br
/> public void CallCallback() {<br
/> finishedHandler(callable, future);<br
/> }<br
/> }<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// The number of worker threads to use for execution.<br
/> /// Can currently be 0 (immediate) or 1 (single worker thread).<br
/> /// &lt;/summary&gt;<br
/> public int threadCount = 0;<br
/> <br
/> /// &lt;summary&gt;<br
/> /// The number of queued tasks, at which the execution manager<br
/> /// will log warning messages.<br
/> /// &lt;/summary&gt;<br
/> public int taskCountWarningThreshold = 100;<br
/> private IExecutor executor;<br
/> <br
/> private List&lt;IManagedTask&gt; managedTasks = new List&lt;IManagedTask&gt;();<br
/> <br
/> <br
/> void Awake() {<br
/> <br
/> new ExecutorTester(true).TestAllExecutors();<br
/> <br
/> if(threadCount == 0) {<br
/> executor = new ImmediateExecutor();<br
/> } else if(threadCount == 1) {<br
/> executor = new SingleThreadExecutor();<br
/> } else {<br
/> throw new NotImplementedException("Currently only 0-1 thread executors are supported.");<br
/> }<br
/> }<br
/> <br
/> <br
/> void FixedUpdate() {<br
/> <br
/> foreach(IManagedTask managedTask in managedTasks) {<br
/> if(managedTask.IsDone) {<br
/> managedTask.CallCallback();<br
/> }<br
/> }<br
/> <br
/> managedTasks.RemoveAll(delegate(IManagedTask managedTask) { return managedTask.IsDone; });<br
/> }<br
/> <br
/> <br
/> void OnApplicationQuit() {<br
/> executor.Shutdown();<br
/> while(!executor.IsShutdown()) {<br
/> Thread.Sleep(10);<br
/> }<br
/> }<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Submits a task for execution, and calls provided delegate<br
/> /// when the task has been completed.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;typeparam name="T"&gt;Type of task computation result&lt;/typeparam&gt;<br
/> /// &lt;param name="task"&gt;Task to execute&lt;/param&gt;<br
/> /// &lt;param name="finishedHandler"&gt;Handler to call when task has been completed.<br
/> /// Can be null.&lt;/param&gt;<br
/> public void SubmitAndManage&lt;T&gt;(ICallable&lt;T&gt; task, TaskFinishedHandler&lt;T&gt; finishedHandler) {<br
/> if(managedTasks.Count &gt;= taskCountWarningThreshold) {<br
/> Debug.LogWarning("Execution Manager on " + gameObject.name + " currently has " + managedTasks.Count + " work tasks in queue.");<br
/> }<br
/> <br
/> Future&lt;T&gt; future = executor.Submit&lt;T&gt;(task);<br
/> managedTasks.Add(new ManagedTask&lt;T&gt;(task, future, finishedHandler));<br
/> }<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Submits a task for execution, but does not store the future object.<br
/> /// Will not call back in any way when the task is done - user is expected<br
/> /// to poll the Future object.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;typeparam name="T"&gt;Type of task computation result&lt;/typeparam&gt;<br
/> /// &lt;param name="task"&gt;Task to execute&lt;/param&gt;<br
/> /// &lt;returns&gt;A future object that can be polled for completion&lt;/returns&gt;<br
/> public Future&lt;T&gt; SubmitAndForget&lt;T&gt;(ICallable&lt;T&gt; task) {<br
/> return executor.Submit&lt;T&gt;(task);<br
/> }<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Gets the number of items queued up for execution.<br
/> /// &lt;/summary&gt;<br
/> public int GetQueueSize() {<br
/> return executor.GetQueueSize();<br
/> }<br
/> }<br
/> <br
/> <br
/> &lt;/csharp&gt;<br
/> <br
/> === Example.cs ===<br
/> &lt;csharp&gt;<br
/> using System;<br
/> using UnityEngine;<br
/> using Executors;<br
/> using System.Threading;<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Simple demonstration of how to use an ExecutionManager.<br
/> /// &lt;/summary&gt;<br
/> /// &lt;author&gt;Magnus Wolffelt, magnus.wolffelt@gmail.com&lt;/author&gt;<br
/> [RequireComponent(typeof(ExecutionManager))]<br
/> [AddComponentMenu("Executors Framework/Example")]<br
/> public class Example : MonoBehaviour {<br
/> <br
/> private class LenghtyTask : ICallable&lt;int&gt; {<br
/> public int a;<br
/> public int creationFrameNumber;<br
/> <br
/> public LenghtyTask(int a, int creationFrameNumber) {<br
/> this.a = a;<br
/> this.creationFrameNumber = creationFrameNumber;<br
/> }<br
/> <br
/> public int Call() {<br
/> Thread.Sleep(20);<br
/> return a * a;<br
/> }<br
/> }<br
/> <br
/> <br
/> <br
/> void LenghtyTaskFinishedHandler(ICallable&lt;int&gt; task, Future&lt;int&gt; result) {<br
/> LenghtyTask ourTask = task as LenghtyTask;<br
/> Debug.Log("Frame #"+ Time.frameCount + ": Task with a=" + ourTask.a + <br
/> " created on frame #" + ourTask.creationFrameNumber + <br
/> " resulted in: " + result.GetResult());<br
/> }<br
/> <br
/> <br
/> void FixedUpdate() {<br
/> ExecutionManager manager = GetComponent&lt;ExecutionManager&gt;();<br
/> if(manager.GetQueueSize() &lt; 5) {<br
/> ICallable&lt;int&gt; task = new LenghtyTask(UnityEngine.Random.Range(5, 20), Time.frameCount);<br
/> manager.SubmitAndManage(task, LenghtyTaskFinishedHandler);<br
/> }<br
/> <br
/> }<br
/> }<br
/> <br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Executors_Framework>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/12/unify-wiki-executors-framework/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] SimpleTankController</title><link>http://www.bydesigngames.com/2010/08/12/unify-wiki-simpletankcontroller/</link> <comments>http://www.bydesigngames.com/2010/08/12/unify-wiki-simpletankcontroller/#comments</comments> <pubDate>Thu, 12 Aug 2010 01:25:41 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* JavaScript - SimpleTankController.js */== Description ==
A non-physics simple tank movement controller that includes acceleration and optional auto-parenting of the object directly below the controlled object.== Usage ==
Place this scri...]]></description> <content:encoded><![CDATA[<p>Summary: /* JavaScript - SimpleTankController.js */</p><hr
/><div>== Description ==<br
/> A non-physics simple tank movement controller that includes acceleration and optional auto-parenting of the object directly below the controlled object.<br
/> <br
/> == Usage ==<br
/> Place this script onto a gameobject. If it currently does not have a CharacterController one will be added. Horizontal/Vertical inputs are used for movement. Tweak various public variables to obtain desired behaviour. Turning on the Parent To Ground option will enable the controlled object to step on a moving object and begin moving with that object until the controlled object is moved off the moving object.<br
/> <br
/> == JavaScript - SimpleTankController.js ==<br
/> &lt;javascript&gt;<br
/> enum direction {forward, reverse, stop};<br
/> <br
/> public var parentToGround : boolean = false; // automatically updates the parent to the object below to allow for moving objects to affect object<br
/> public var groundRayOffset : Vector3 = Vector3.zero; // adjust where the parentToGround ray is cast from<br
/> public var groundRayCastLength : float = 1.0; // how far does the parentToGround ray cast<br
/> <br
/> public var topSpeedForward : float = 3.0; // top speed of forward<br
/> public var topSpeedReverse : float = 1.0; // top speed of reverse<br
/> public var accelerationRate : float = 3; // rate at which top speed is reached<br
/> public var decelerationRate : float = 2; // rate at which speed is lost when not accelerating<br
/> public var brakingDecelerationRate : float = 4; // rate at which speed is lost when braking (input opposite of current direction)<br
/> public var stoppedTurnRate : float = 2.0; // rate at which object turns when stopped<br
/> public var topSpeedForwardTurnRate : float = 1.0; // rate at which object turns at top forward speed<br
/> public var topSpeedReverseTurnRate : float = 2.0; // rate at which object turns at top reverse speed<br
/> public var gravity = 10.0; // gravity for object<br
/> public var stickyThrottle : boolean = false; // true to disable loss of speed if no input is provided<br
/> public var stickyThrottleDelay : float = .35; // delay between change of direction when sticky throttle is enabled<br
/> <br
/> private var currentSpeed : float = 0.0; // stores current speed<br
/> private var currentTopSpeed : float = topSpeedForward; // stores top speed of current direction<br
/> private var currentDirection : direction = direction.stop; // stores current direction<br
/> private var isBraking : boolean = false; // true if input is braking<br
/> private var isAccelerating : boolean = false; // true if input is accelerating<br
/> private var stickyDelayCount : float = 9999.0; // current sticky delay count<br
/> private var characterController : CharacterController;<br
/> <br
/> function Start() {<br
/> characterController = GetComponent(CharacterController);<br
/> }<br
/> <br
/> function FixedUpdate() {<br
/> <br
/> // direction to move this update<br
/> var moveDirection : Vector3 = Vector3.zero;<br
/> // direction requested this update<br
/> var requestedDirection : direction = direction.stop;<br
/> <br
/> if(characterController.isGrounded == true) {<br
/> // simulate loss of turn rate at speed<br
/> var currentTurnRate = Mathf.Lerp((currentDirection == direction.forward ? topSpeedForwardTurnRate : topSpeedReverseTurnRate), stoppedTurnRate, (1- (currentSpeed/currentTopSpeed))); <br
/> transform.eulerAngles.y += Input.GetAxis("Horizontal") * currentTurnRate;<br
/> <br
/> // based on input, determine requested action<br
/> if (Input.GetAxis("Vertical") &gt; 0) { // requesting forward<br
/> requestedDirection = direction.forward;<br
/> isAccelerating = true;<br
/> } else if (Input.GetAxis("Vertical") &lt; 0) { // requesting reverse<br
/> requestedDirection = direction.reverse;<br
/> isAccelerating = true;<br
/> } else {<br
/> requestedDirection = currentDirection;<br
/> isAccelerating = false;<br
/> }<br
/> <br
/> isBraking = false;<br
/> <br
/> if (currentDirection == direction.stop) { // engage new direction<br
/> stickyDelayCount += Time.deltaTime;<br
/> // if we are not sticky throttle or if we have hit the delay then change direction<br
/> if (!stickyThrottle || stickyDelayCount &gt; stickyThrottleDelay) {<br
/> // make sure we can go in the requsted direction<br
/> if (requestedDirection == direction.reverse &amp;&amp; topSpeedReverse &gt; 0 || <br
/> requestedDirection == direction.forward &amp;&amp; topSpeedForward &gt; 0) {<br
/> <br
/> currentDirection = requestedDirection;<br
/> }<br
/> }<br
/> } else if (currentDirection != requestedDirection) { // requesting a change of direction, but not stopped so we are braking<br
/> isBraking = true;<br
/> isAccelerating = false;<br
/> }<br
/> <br
/> // setup top speeds and move direction<br
/> if (currentDirection == direction.forward) {<br
/> moveDirection = Vector3.forward;<br
/> currentTopSpeed = topSpeedForward;<br
/> } else if (currentDirection == direction.reverse) {<br
/> moveDirection = (-1 * Vector3.forward);<br
/> currentTopSpeed = topSpeedReverse;<br
/> } else if (currentDirection == direction.stop) {<br
/> moveDirection = Vector3.zero;<br
/> }<br
/> <br
/> if (isAccelerating) {<br
/> //if we havent hit top speed yet, accelerate<br
/> if (currentSpeed &lt; currentTopSpeed){ <br
/> currentSpeed += (accelerationRate * Time.deltaTime); <br
/> }<br
/> } else {<br
/> // if we are not accelerating and still have some speed, decelerate<br
/> if (currentSpeed &gt; 0) {<br
/> // adjust deceleration for braking and implement sticky throttle<br
/> var currentDecelerationRate : float = (isBraking ? brakingDecelerationRate : (!stickyThrottle ? decelerationRate : 0));<br
/> currentSpeed -= (currentDecelerationRate * Time.deltaTime); <br
/> }<br
/> }<br
/> <br
/> // if our speed is below zero, stop and initialize<br
/> if (currentSpeed &lt; 0) {<br
/> SetStopped();<br
/> } else if (currentSpeed &gt; currentTopSpeed) { // limit the speed to the current top speed<br
/> currentSpeed = currentTopSpeed;<br
/> }<br
/> <br
/> moveDirection = transform.TransformDirection(moveDirection);<br
/> }<br
/> <br
/> // implement gravity so we can stay grounded<br
/> moveDirection.y -= gravity * Time.deltaTime;<br
/> moveDirection.z = moveDirection.z * (Time.deltaTime * currentSpeed);<br
/> moveDirection.x = moveDirection.x * (Time.deltaTime * currentSpeed);<br
/> characterController.Move(moveDirection);<br
/> <br
/> if (parentToGround) {<br
/> var hit : RaycastHit;<br
/> var down = transform.TransformDirection (-1 * Vector3.up); <br
/> <br
/> // cast the bumper ray out from bottom and check to see if there is anything below<br
/> if (Physics.Raycast (transform.TransformPoint(groundRayOffset), down, hit, groundRayCastLength)) {<br
/> // clamp wanted position to hit position<br
/> transform.parent = hit.transform;<br
/> }<br
/> <br
/> // if we are currently stopped, move just a tad to allow for collisions while parent is moving<br
/> if (currentDirection == direction.stop) {<br
/> characterController.SimpleMove(transform.TransformDirection(Vector3.forward) * 0.000000000001); <br
/> }<br
/> }<br
/> <br
/> }<br
/> <br
/> function GetCurrentSpeed() {<br
/> return currentSpeed;<br
/> }<br
/> <br
/> function GetCurrentTopSpeed() {<br
/> return currentTopSpeed;<br
/> }<br
/> <br
/> function GetCurrentDirection() {<br
/> return currentDirection;<br
/> }<br
/> <br
/> function GetIsBraking() {<br
/> return isBraking;<br
/> }<br
/> <br
/> function GetIsAccelerating() {<br
/> return isAccelerating;<br
/> }<br
/> <br
/> function SetStopped() {<br
/> currentSpeed = 0;<br
/> currentDirection = direction.stop;<br
/> isAccelerating = false;<br
/> isBraking = false;<br
/> stickyDelayCount = 0;<br
/> }<br
/> <br
/> @script RequireComponent(CharacterController)<br
/> &lt;/javascript&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=SimpleTankController>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/12/unify-wiki-simpletankcontroller/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] SmoothFollowWithCameraBumper</title><link>http://www.bydesigngames.com/2010/08/12/unify-wiki-smoothfollowwithcamerabumper/</link> <comments>http://www.bydesigngames.com/2010/08/12/unify-wiki-smoothfollowwithcamerabumper/#comments</comments> <pubDate>Wed, 11 Aug 2010 23:46:58 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* JavaScript - SmoothFollowWithCameraBumper.js */__FORCETOC__
== Description ==
Designed to prevent the camera from passing through objects while following the target. A ray is cast out the rear of the target and if it collides, the camera ...]]></description> <content:encoded><![CDATA[<p>Summary: /* JavaScript - SmoothFollowWithCameraBumper.js */</p><hr
/><div>__FORCETOC__<br
/> == Description ==<br
/> Designed to prevent the camera from passing through objects while following the target. A ray is cast out the rear of the target and if it collides, the camera will adjust to prevent passage into the object.<br
/> <br
/> == Usage ==<br
/> Place this script onto a camera and select camera target in Inspector. Tweak bumper settings to achieve desired affect.<br
/> <br
/> == JavaScript - SmoothFollowWithCameraBumper.js ==<br
/> &lt;javascript&gt;<br
/> var target : Transform;<br
/> var distance : float = 3.0;<br
/> var height : float = 1.0;<br
/> var damping : float = 5.0;<br
/> var smoothRotation : boolean = true;<br
/> var rotationDamping : float = 10.0;<br
/> <br
/> var targetLookAtOffset : Vector3; // allows offsetting of camera lookAt, very useful for low bumper heights<br
/> <br
/> var bumperDistanceCheck : float = 2.5;	// length of bumper ray<br
/> var bumperCameraHeight : float = 1.0; // adjust camera height while bumping<br
/> var bumperRayOffset : Vector3; // allows offset of the bumper ray from target origin<br
/> <br
/> function FixedUpdate() {<br
/> <br
/> var wantedPosition = target.TransformPoint(0, height, -distance);<br
/> <br
/> // check to see if there is anything behind the target<br
/> var hit : RaycastHit;<br
/> var back = target.transform.TransformDirection(-1 * Vector3.forward); <br
/> <br
/> // cast the bumper ray out from rear and check to see if there is anything behind<br
/> if (Physics.Raycast(target.TransformPoint(bumperRayOffset), back, hit, bumperDistanceCheck)) {<br
/> // clamp wanted position to hit position<br
/> wantedPosition.x = hit.point.x;<br
/> wantedPosition.z = hit.point.z;<br
/> wantedPosition.y = Mathf.Lerp(hit.point.y + bumperCameraHeight, wantedPosition.y, Time.deltaTime * damping);<br
/> } <br
/> <br
/> transform.position = Vector3.Lerp(transform.position, wantedPosition, Time.deltaTime * damping);<br
/> <br
/> var lookPosition : Vector3 = target.TransformPoint(targetLookAtOffset);<br
/> <br
/> if (smoothRotation) {<br
/> var wantedRotation : Quaternion = Quaternion.LookRotation(lookPosition - transform.position, target.up);<br
/> transform.rotation = Quaternion.Slerp(transform.rotation, wantedRotation, Time.deltaTime * rotationDamping);<br
/> } else {<br
/> transform.rotation = Quaternion.LookRotation(lookPosition - transform.position, target.up);<br
/> }<br
/> }<br
/> &lt;/javascript&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=SmoothFollowWithCameraBumper>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/12/unify-wiki-smoothfollowwithcamerabumper/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity’s New SF Hood</title><link>http://www.bydesigngames.com/2010/08/08/unity-technologies-unity%e2%80%99s-new-sf-hood/</link> <comments>http://www.bydesigngames.com/2010/08/08/unity-technologies-unity%e2%80%99s-new-sf-hood/#comments</comments> <pubDate>Sun, 08 Aug 2010 18:24:26 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Company News]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3255</guid> <description><![CDATA[Last weekend the staff of Unity&#8217;s SF office were setting desks up in our new office. We&#8217;re now in the historic Jackson Square neighborhood nestled between China Town, North Beach, the Financial District, and the Embarcadero. We&#8217;ve been in our new space for a week now and I really love it! Not only is it great to [...]]]></description> <content:encoded><![CDATA[<p>Last weekend the staff of Unity&#8217;s SF office were setting desks up in our new office. We&#8217;re now in the historic Jackson Square neighborhood nestled between China Town, North Beach, the Financial District, and the Embarcadero. We&#8217;ve been in our new space for a week now and I really love it! Not only is it great to have our own space, but our new neighborhood is definitely more of a neighborhood. We moved from an area in SOMA which is defined by its four lane one way streets, lack of retail, concrete, and the constant drum of jackhammers. In contrast, our new neighborhood has tree lined one and two lane streets, tons of brick, more retail, and is far more tranquil. <a
rel="nofollow"  href="http://en.wikipedia.org/wiki/South_Park,_San_Francisco">South Park</a>, <a
rel="nofollow"  href="http://epicentercafe.com/">Epicenter</a>, and Whole Foods will be missed however.</p><div
id="attachment_3314" class="wp-caption alignleft" style="width:660px;"><img
class="size-full wp-image-3314 " style="margin-top:5px;margin-bottom:5px;border:0px;" title="IMG_0037" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/IMG_0037.jpg" alt="The view from our office windows!" width="650" height="433"/><p
class="wp-caption-text">The view from our office windows!</p></div><p><span
id="more-3255"></span></p><div
id="attachment_3315" class="wp-caption alignleft" style="width:660px;"><img
class="size-full wp-image-3315 " style="margin-top:5px;margin-bottom:5px;border:0px;" title="IMG_0038" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/IMG_0038.jpg" alt="Our alley way." width="650" height="975"/><p
class="wp-caption-text">Our alley way.</p></div><div
id="attachment_3319" class="wp-caption alignleft" style="width:660px;"><img
class="size-full wp-image-3319 " style="margin-top:5px;margin-bottom:5px;border:0px;" title="IMG_0060" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/IMG_0060.jpg" alt="A striking red facade around the corner, they sell modern furniture. " width="650" height="433"/><p
class="wp-caption-text">A striking red facade around the corner, they sell modern furniture.</p></div><p><img
class="alignleft size-full wp-image-3313" style="margin-top:5px;margin-bottom:5px;border:0px;" title="IMG_0061" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/IMG_0061.jpg" alt="IMG_0061" width="650" height="710"/></p><div
id="attachment_3317" class="wp-caption alignleft" style="width:660px;"><img
class="size-full wp-image-3317 " style="margin-top:5px;margin-bottom:5px;border:0px;" title="IMG_0052" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/IMG_0052.jpg" alt="A grove of redwood trees by the Transamerica building." width="650" height="309"/><p
class="wp-caption-text">A grove of redwood trees by the Transamerica building.</p></div><div
id="attachment_3318" class="wp-caption alignleft" style="width:660px;"><img
class="size-full wp-image-3318 " style="margin-top:5px;margin-bottom:5px;border:0px;" title="IMG_0055" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/IMG_0055.jpg" alt="Lots of brick buildings housing small architecture firms, interior design firm, and antique stores. " width="650" height="433"/><p
class="wp-caption-text">Lots of brick buildings housing small architecture firms, interior design firms, and antique stores.</p></div><div
id="attachment_3316" class="wp-caption alignleft" style="width:660px;"><img
class="size-full wp-image-3316 " style="margin-top:5px;margin-bottom:5px;border:0px;" title="IMG_0047" src="http://blogs.unity3d.com/wp-content/uploads/2010/08/IMG_0047.jpg" alt="Lots of places to grab good food and drinks." width="650" height="390"/><p
class="wp-caption-text">Lots of places to grab good food and drinks.</p></div><p><a
href=http://blogs.unity3d.com/2010/08/08/unitys-new-sf-hood/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/08/08/unity-technologies-unity%e2%80%99s-new-sf-hood/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Unity developer List</title><link>http://www.bydesigngames.com/2010/07/30/unify-wiki-unity-developer-list/</link> <comments>http://www.bydesigngames.com/2010/07/30/unify-wiki-unity-developer-list/#comments</comments> <pubDate>Fri, 30 Jul 2010 13:59:59 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:Are you a Unity game developer?If so, post a link to your website, and a paragraph about yourself!----
'''Mikesgames Productions'''A small indie team based in Thetford, UK. Our current game is Timensions, which should be out in july ne...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>Are you a Unity game developer?<br
/> <br
/> If so, post a link to your website, and a paragraph about yourself!<br
/> <br
/> ----<br
/> '''Mikesgames Productions'''<br
/> <br
/> A small indie team based in Thetford, UK. Our current game is Timensions, which should be out in july next year. We have 3 people in our team, and plan on releasing many fun games in the future.<br
/> Homepage - [http://www.mikesgames-productions.co.uk Mikesgames productions]<br
/> [[Image:MikesgamesLogo.png]]<br
/> <br
/> ----<br
/> <br
/> '''Xaxist Arts'''<br
/> <br
/> We are small team of flash game developers who have recently switched to Unity engine completely. We are currently working on Facebook Unity Integration and a small size casual game. We look forward to develop more addictive casual games in coming years.<br
/> Homepage - [http://www.xaxistarts.com Xaxist Arts]<br
/> ----<br
/> '''ByDesign Games'''<br
/> [[Image:BDG_logo.png|center|middle|alt Fresh Fun Games!]]<br
/> <br
/> ByDesign Games is an independent video game developer making hand – crafted games with fresh gameplay, enjoyable anywhere – anytime; fun games with beautiful graphics &amp; high production values, all available at a reasonable price! - [http://www.bydesigngames.com ByDesign Games]</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Unity_developer_List>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/30/unify-wiki-unity-developer-list/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] 3SideProjDiffuse1.1</title><link>http://www.bydesigngames.com/2010/07/29/unify-wiki-3sideprojdiffuse1-1/</link> <comments>http://www.bydesigngames.com/2010/07/29/unify-wiki-3sideprojdiffuse1-1/#comments</comments> <pubDate>Thu, 29 Jul 2010 10:43:18 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:[[Category: Unity 2.x shaders]]
[[Category: Cg shaders]]
[[Category: Pixel lit shaders]]Author: [[User:Slin&#124;Nils Dauman]].
Additional work: [[User:Slin&#124;WarpedAxiom]].==Description==
[[Image:Picture_19.png&#124;thumb&#124;A model using this shader]...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>[[Category: Unity 2.x shaders]]<br
/> [[Category: Cg shaders]]<br
/> [[Category: Pixel lit shaders]]<br
/> <br
/> Author: [[User:Slin|Nils Dauman]].<br
/> Additional work: [[User:Slin|WarpedAxiom]].<br
/> <br
/> ==Description==<br
/> [[Image:Picture_19.png|thumb|A model using this shader]]<br
/> <br
/> An only slight modification to Nils Daumann's handy shader (who did 99% of the work and deserve as much credit), which adds control of what textures are projected onto the material. I'm sure there are plenty of times this could come in handy. The example image is only on possibility. With flatter terrain and sharper slopes, you could get a neat 2D RPG look. <br
/> <br
/> Visit the original shader for more information about usage. [[3SideProjDiffuse]]<br
/> <br
/> <br
/> ==ShaderLab - WorldTextureDiffuse.shader==<br
/> &lt;shaderlab&gt;<br
/> Shader "World Texture Diffuse 1.1"<br
/> {<br
/> Properties<br
/> {<br
/> _Color ("Main Color", Color) = (1,1,1,1)<br
/> _MainTex1("Texture", 2D) = "white" {}<br
/> _MainTex2("Texture", 2D) = "white" {}<br
/> _MainTex3("Texture", 2D) = "white" {}<br
/> <br
/> _TileFac("Tile factor", Float) = 5<br
/> }<br
/> <br
/> SubShader<br
/> {<br
/> Pass {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "None"}<br
/> Blend AppSrcAdd AppDstAdd<br
/> Fog { Color [_AddFog] }<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform sampler2D _MainTex1;<br
/> uniform sampler2D _MainTex2;<br
/> uniform sampler2D _MainTex3;<br
/> <br
/> uniform float _TileFac;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float3 worldnormal;<br
/> float3 worldpos;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> <br
/> o.worldnormal = mul(_Object2World, float4(v.normal, 0.0f)).xyz;<br
/> o.worldpos = mul(_Object2World, v.vertex);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> float2 s = float2(_TileFac, -_TileFac);<br
/> <br
/> float2 tex0 = i.worldpos.xy/s;<br
/> float2 tex1 = i.worldpos.zx/s;<br
/> float2 tex2 = i.worldpos.zy/s;<br
/> <br
/> float4 color0_ = tex2D(_MainTex1, tex0);<br
/> float4 color1_ = tex2D(_MainTex2, tex1);<br
/> float4 color2_ = tex2D(_MainTex3, tex2);<br
/> <br
/> i.worldnormal = normalize(i.worldnormal);<br
/> float3 projnormal = saturate(pow(i.worldnormal*1.5, 4));<br
/> <br
/> float3 color = lerp(color1_, color0_, projnormal.z);<br
/> color = lerp(color, color2_, projnormal.x);<br
/> <br
/> return float4(color.rgb*_PPLAmbient, 1.0);<br
/> }<br
/> ENDCG<br
/> }<br
/> Pass {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "VertexOrPixel"}<br
/> Blend AppSrcAdd AppDstAdd<br
/> Fog { Color [_AddFog] }<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform sampler2D _MainTex1;<br
/> uniform sampler2D _MainTex2;<br
/> uniform sampler2D _MainTex3;<br
/> <br
/> uniform float _TileFac;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float3 worldnormal;<br
/> float3 worldpos;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> <br
/> o.worldnormal = mul(_Object2World, float4(v.normal, 0.0f)).xyz;<br
/> o.worldpos = mul(_Object2World, v.vertex);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> float2 s = float2(_TileFac, -_TileFac);<br
/> <br
/> float2 tex0 = i.worldpos.xy/s;<br
/> float2 tex1 = i.worldpos.zx/s;<br
/> float2 tex2 = i.worldpos.zy/s;<br
/> <br
/> float4 color0_ = tex2D(_MainTex1, tex0);<br
/> float4 color1_ = tex2D(_MainTex2, tex1);<br
/> float4 color2_ = tex2D(_MainTex3, tex2);<br
/> <br
/> i.worldnormal = normalize(i.worldnormal);<br
/> float3 projnormal = saturate(pow(i.worldnormal*1.5, 4));<br
/> <br
/> float3 color = lerp(color1_, color0_, projnormal.z);<br
/> color = lerp(color, color2_, projnormal.x);<br
/> <br
/> return float4(color.rgb*_PPLAmbient, 1.0);<br
/> }<br
/> ENDCG<br
/> }<br
/> Pass<br
/> {<br
/> Name "PPL"<br
/> Tags { "LightMode" = "Pixel" }<br
/> <br
/> Blend AppSrcAdd AppDstAdd<br
/> Fog { Color [_AddFog] }<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform sampler2D _MainTex1;<br
/> uniform sampler2D _MainTex2;<br
/> uniform sampler2D _MainTex3;<br
/> <br
/> uniform float _TileFac;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> LIGHTING_COORDS<br
/> float3 normal;<br
/> float3 worldnormal;<br
/> float3 worldpos;<br
/> float3 lightDir;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> o.normal = v.normal;<br
/> <br
/> o.worldnormal = mul(_Object2World, float4(v.normal, 0.0f)).xyz;<br
/> o.worldpos = mul(_Object2World, v.vertex);<br
/> <br
/> o.lightDir = ObjSpaceLightDir(v.vertex);<br
/> TRANSFER_VERTEX_TO_FRAGMENT(o);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> float2 s = float2(_TileFac, -_TileFac);<br
/> <br
/> float2 tex0 = i.worldpos.xy/s;<br
/> float2 tex1 = i.worldpos.zx/s;<br
/> float2 tex2 = i.worldpos.zy/s;<br
/> <br
/> float4 color0_ = tex2D(_MainTex1, tex0);<br
/> float4 color1_ = tex2D(_MainTex2, tex1);<br
/> float4 color2_ = tex2D(_MainTex3, tex2);<br
/> <br
/> i.normal = normalize(i.normal);<br
/> <br
/> i.worldnormal = normalize(i.worldnormal);<br
/> float3 projnormal = saturate(pow(i.worldnormal*1.5, 4));<br
/> <br
/> float3 color = lerp(color1_, color0_, projnormal.z);<br
/> color = lerp(color, color2_, projnormal.x);<br
/> <br
/> return DiffuseLight(i.lightDir, i.normal, float4(color.rgb, 1.0), LIGHT_ATTENUATION(i));<br
/> }<br
/> ENDCG<br
/> }<br
/> }<br
/> <br
/> FallBack "Diffuse"<br
/> }<br
/> <br
/> &lt;/shaderlab&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=3SideProjDiffuse1.1>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/29/unify-wiki-3sideprojdiffuse1-1/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Hand-collected Intermediate Video Tutorials for Unity Engine</title><link>http://www.bydesigngames.com/2010/07/29/infiniteunity3d-hand-collected-intermediate-video-tutorials-for-unity-engine/</link> <comments>http://www.bydesigngames.com/2010/07/29/infiniteunity3d-hand-collected-intermediate-video-tutorials-for-unity-engine/#comments</comments> <pubDate>Thu, 29 Jul 2010 03:03:37 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9197</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/29/infiniteunity3d-hand-collected-intermediate-video-tutorials-for-unity-engine/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity 3 Preview – “Unity Bootcamp” Demo</title><link>http://www.bydesigngames.com/2010/07/29/unity-technologies-unity-3-preview-%e2%80%93-%e2%80%9cunity-bootcamp%e2%80%9d-demo/</link> <comments>http://www.bydesigngames.com/2010/07/29/unity-technologies-unity-3-preview-%e2%80%93-%e2%80%9cunity-bootcamp%e2%80%9d-demo/#comments</comments> <pubDate>Thu, 29 Jul 2010 00:38:58 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3245</guid> <description><![CDATA[Aquiris has been hard at work finishing up the new demo for Unity 3. Recently they posted a video of one of the playable levels of the demo and I thought people here would enjoy getting a longer look at it then the 20-30 second clips we&#8217;ve shown ...]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow"  href="http://www.aquiris.com.br/pt/home/">Aquiris</a> has been hard at work finishing up the new demo for Unity 3. Recently they posted a video of one of the playable levels of the demo and I thought people here would enjoy getting a longer look at it then the 20-30 second clips we&#8217;ve shown before.</p><p><iframe
class="embeddedvideo" src='http://vimeo.com/moogaloop.swf?clip_id=12915284&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1' type='application/x-shockwave-flash' width='640' height='360'></iframe><br
/></p><p><a
href=http://blogs.unity3d.com/2010/07/29/unity-3-preview-%E2%80%93-unity-bootcamp-demo/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/29/unity-technologies-unity-3-preview-%e2%80%93-%e2%80%9cunity-bootcamp%e2%80%9d-demo/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] links for 2010-07-28</title><link>http://www.bydesigngames.com/2010/07/28/infiniteunity3d-links-for-2010-07-28/</link> <comments>http://www.bydesigngames.com/2010/07/28/infiniteunity3d-links-for-2010-07-28/#comments</comments> <pubDate>Wed, 28 Jul 2010 12:05:05 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/links-for-2010-07-28/</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/28/infiniteunity3d-links-for-2010-07-28/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Notable Uses of Unity for Unity for Digital Marketing- Advergame examples</title><link>http://www.bydesigngames.com/2010/07/28/infiniteunity3d-notable-uses-of-unity-for-unity-for-digital-marketing-advergame-examples/</link> <comments>http://www.bydesigngames.com/2010/07/28/infiniteunity3d-notable-uses-of-unity-for-unity-for-digital-marketing-advergame-examples/#comments</comments> <pubDate>Tue, 27 Jul 2010 23:49:53 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9190</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/28/infiniteunity3d-notable-uses-of-unity-for-unity-for-digital-marketing-advergame-examples/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Don&#8217;t Waste Your Time Building Games in Unity 3D- Protopacks are back!</title><link>http://www.bydesigngames.com/2010/07/27/infiniteunity3d-dont-waste-your-time-building-games-in-unity-3d-protopacks-are-back/</link> <comments>http://www.bydesigngames.com/2010/07/27/infiniteunity3d-dont-waste-your-time-building-games-in-unity-3d-protopacks-are-back/#comments</comments> <pubDate>Tue, 27 Jul 2010 15:44:04 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=8225</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/27/infiniteunity3d-dont-waste-your-time-building-games-in-unity-3d-protopacks-are-back/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] We&#8217;ll be using Infinite Unity as a way of connecting Indie Game Developers with the #marvelopers in &#8220;the game&#8221;</title><link>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-well-be-using-infinite-unity-as-a-way-of-connecting-indie-game-developers-with-the-marvelopers-in-the-game/</link> <comments>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-well-be-using-infinite-unity-as-a-way-of-connecting-indie-game-developers-with-the-marvelopers-in-the-game/#comments</comments> <pubDate>Sun, 25 Jul 2010 21:36:38 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9185</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-well-be-using-infinite-unity-as-a-way-of-connecting-indie-game-developers-with-the-marvelopers-in-the-game/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Unity CEO David Helgason Discusses 3D Game Development at Casual Connect 2010</title><link>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-unity-ceo-david-helgason-discusses-3d-game-development-at-casual-connect-2010/</link> <comments>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-unity-ceo-david-helgason-discusses-3d-game-development-at-casual-connect-2010/#comments</comments> <pubDate>Sun, 25 Jul 2010 17:24:25 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9183</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-unity-ceo-david-helgason-discusses-3d-game-development-at-casual-connect-2010/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] What&#8217;s hot on Infinite Unity3D Now??!</title><link>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-whats-hot-on-infinite-unity3d-now/</link> <comments>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-whats-hot-on-infinite-unity3d-now/#comments</comments> <pubDate>Sun, 25 Jul 2010 03:16:45 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9182</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/25/infiniteunity3d-whats-hot-on-infinite-unity3d-now/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] links for 2010-07-24</title><link>http://www.bydesigngames.com/2010/07/24/infiniteunity3d-links-for-2010-07-24/</link> <comments>http://www.bydesigngames.com/2010/07/24/infiniteunity3d-links-for-2010-07-24/#comments</comments> <pubDate>Sat, 24 Jul 2010 12:04:09 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/links-for-2010-07-24/</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/24/infiniteunity3d-links-for-2010-07-24/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Mixamo shares Character Animation Demo from Casual Connect</title><link>http://www.bydesigngames.com/2010/07/24/infiniteunity3d-mixamo-shares-character-animation-demo-from-casual-connect/</link> <comments>http://www.bydesigngames.com/2010/07/24/infiniteunity3d-mixamo-shares-character-animation-demo-from-casual-connect/#comments</comments> <pubDate>Sat, 24 Jul 2010 01:46:10 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9179</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/24/infiniteunity3d-mixamo-shares-character-animation-demo-from-casual-connect/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] links for 2010-07-23</title><link>http://www.bydesigngames.com/2010/07/23/infiniteunity3d-links-for-2010-07-23/</link> <comments>http://www.bydesigngames.com/2010/07/23/infiniteunity3d-links-for-2010-07-23/#comments</comments> <pubDate>Fri, 23 Jul 2010 12:04:25 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/links-for-2010-07-23/</guid> <description><![CDATA[Source Article »]]></description> <content:encoded><![CDATA[Source Article »]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/23/infiniteunity3d-links-for-2010-07-23/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] IPhoneGems</title><link>http://www.bydesigngames.com/2010/07/23/unify-wiki-iphonegems/</link> <comments>http://www.bydesigngames.com/2010/07/23/unify-wiki-iphonegems/#comments</comments> <pubDate>Fri, 23 Jul 2010 06:09:23 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:*--[[User:BurningThumb&#124;BurningThumb]] 23:09, 22 July 2010 (PDT)
*Attribution would be appreciated : http://www.Burningthumb.com==Description==
The code provided by unity creates really bland gems if the GPU does not support cubemaps, whic...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>*--[[User:BurningThumb|BurningThumb]] 23:09, 22 July 2010 (PDT) <br
/> *Attribution would be appreciated : http://www.Burningthumb.com<br
/> <br
/> ==Description==<br
/> The code provided by unity creates really bland gems if the GPU does not support cubemaps, which is true of iPhones. This modification to the shader in the unity gem pack fixes that issue.<br
/> <br
/> ==Usage==<br
/> <br
/> This code behaves like the unity gem pack, except it also works on the iphone.<br
/> <br
/> *Download the [http://unity3d.com/support/resources/assets/gem-shader.html Gem Shader]<br
/> *The iphone subshader will be chosen if the others can't be run, which they won't because they use cubemaps.<br
/> *You can replace the gem shader entirely with this script, however you may wish to simply put the iphone code before the last subshader in the gemshader so if spheremaps aren't supported it still renders.<br
/> *Textures applied to the "lowGPU" boxes in the inspector are used for the iphone.<br
/> *The emissive color changes how bright the gem is.<br
/> *The fog color is the colour this shader turns when the fog blocks it's geometry.<br
/> <br
/> <br
/> ==Code==<br
/> &lt;shaderlab&gt;<br
/> Shader "FX/Diamond"<br
/> {<br
/> Properties {<br
/> _Color ("Color", Color) = (1,1,1,1)<br
/> _Fog("Fog", Color) = (0,0,0,0)<br
/> _ReflectTex ("Reflection Texture", Cube) = "dummy.jpg" {<br
/> TexGen CubeReflect<br
/> }<br
/> _RefractTex ("Refraction Texture", Cube) = "dummy.jpg" {<br
/> TexGen CubeReflect<br
/> }<br
/> _RefractTexlow ("Refraction LowGPU", 2D) = "dummy.jpg" {<br
/> TexGen SphereMap<br
/> }<br
/> _ReflectTexlow ("Reflect LowGPU", 2D) = "dummy.jpg" {<br
/> TexGen SphereMap<br
/> }<br
/> <br
/> _Shininess ("Shininess", Range (0.01, 1)) = 0.7<br
/> _SpecColor ("Specular", Color) = (1,1,1,1)<br
/> _Emission ("Emissive", Color) = (1,1,1,1)<br
/> } <br
/> <br
/> SubShader {<br
/> Tags {<br
/> "Queue" = "Transparent"<br
/> }<br
/> // First pass - here we render the backfaces of the diamonds. Since those diamonds are more-or-less<br
/> // convex objects, this is effectively rendering the inside of them<br
/> Pass {<br
/> Color (0,0,0,0)<br
/> Offset -1, -1<br
/> Cull Front<br
/> ZWrite Off<br
/> SetTexture [_RefractTex] {<br
/> constantColor [_Color]<br
/> combine texture * constant, primary<br
/> }<br
/> SetTexture [_ReflectTex] {<br
/> combine previous, previous +- texture<br
/> }<br
/> }<br
/> <br
/> // Second pass - here we render the front faces of the diamonds.<br
/> Pass {<br
/> Fog { Color (0,0,0,0)}<br
/> ZWrite on<br
/> Blend One One<br
/> SetTexture [_RefractTex] {<br
/> constantColor [_Color]<br
/> combine texture * constant<br
/> }<br
/> SetTexture [_ReflectTex] {<br
/> combine texture + previous, previous +- texture<br
/> }<br
/> }<br
/> }<br
/> <br
/> // Older cards. Here we remove the bright specular highlight<br
/> SubShader {<br
/> Tags{"Queue" = "Transparent"}<br
/> // First pass - here we render the backfaces of the diamonds. Since those diamonds are more-or-less<br
/> // convex objects, this is effectively rendering the inside of them<br
/> Pass {<br
/> Color (0,0,0,0)<br
/> Cull Front<br
/> SetTexture [_RefractTex] {<br
/> constantColor [_Color]<br
/> combine texture * constant, primary<br
/> }<br
/> }<br
/> <br
/> // Second pass - here we render the front faces of the diamonds.<br
/> <br
/> Pass {<br
/> Fog { Color (0,0,0,0)}<br
/> ZWrite on<br
/> Blend DstColor Zero <br
/> SetTexture [_RefractTex] {<br
/> constantColor [_Color]<br
/> combine texture * constant<br
/> }<br
/> }<br
/> }<br
/> <br
/> /////////// Start iphone code////////////////<br
/> //This will cause a nice gem texture to be rendered using the low-GPU textures defined in the inspector//<br
/> //This section of the code is provided by BURNING THUMB SOFTWARE, 2010//<br
/> <br
/> SubShader {<br
/> Pass {<br
/> <br
/> Lighting On<br
/> SeparateSpecular On<br
/> <br
/> Color (0,0,0,0)<br
/> //	Offset -1, -1<br
/> Cull Front<br
/> //Blend OneMinusSrcAlpha One<br
/> SetTexture [_ReflectTexlow] {<br
/> constantColor [_Color]<br
/> combine texture * constant, primary<br
/> }<br
/> }<br
/> <br
/> // Second pass - here we render the front faces of the diamonds.<br
/> Pass {<br
/> <br
/> <br
/> Fog { Color [_Fog]}<br
/> ZWrite on<br
/> Blend One One<br
/> SetTexture [_RefractTexlow] {<br
/> constantColor [_Emission]<br
/> combine texture * constant<br
/> }<br
/> }<br
/> <br
/> }<br
/> }<br
/> &lt;/shaderlab&gt;<br
/> ==Disclaimer==<br
/> '''We make no claim to have created the gem shader''', however the iphone code was written by us. '''Attribution would be appreciated if you chose to use it in your project.<br
/> '''</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=IPhoneGems>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/23/unify-wiki-iphonegems/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Custom Mouse Pointer</title><link>http://www.bydesigngames.com/2010/07/23/unify-wiki-custom-mouse-pointer/</link> <comments>http://www.bydesigngames.com/2010/07/23/unify-wiki-custom-mouse-pointer/#comments</comments> <pubDate>Fri, 23 Jul 2010 00:09:29 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:[[Category: C#]]
[[Category: Javascript]]
[[Category: GUI]]
Author: [[User:Kiyaku&#124;Kiyaku]]==Description==
If you want a custom image for your mouse pointer but still have it in front of the OnGUI() elements, use this little script.==Usag...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>[[Category: C#]]<br
/> [[Category: Javascript]]<br
/> [[Category: GUI]]<br
/> Author: [[User:Kiyaku|Kiyaku]]<br
/> <br
/> ==Description==<br
/> If you want a custom image for your mouse pointer but still have it in front of the OnGUI() elements, use this little script.<br
/> <br
/> ==Usage==<br
/> Attach this script to any gameObject you want, preferable a new empty one.<br
/> Assign your custom Texture to the script.<br
/> <br
/> ==C# - mousePointer.cs==<br
/> &lt;csharp&gt;<br
/> using UnityEngine;<br
/> using System.Collections;<br
/> <br
/> public class mousePointer : MonoBehaviour <br
/> {<br
/> public Texture2D cursorImage;<br
/> <br
/> private int cursorWidth = 32;<br
/> private int cursorHeight = 32;<br
/> <br
/> void Start()<br
/> {<br
/> Screen.showCursor = false;<br
/> }<br
/> <br
/> <br
/> void OnGUI()<br
/> {<br
/> GUI.DrawTexture(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, cursorWidth, cursorHeight), cursorImage);<br
/> }<br
/> }<br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Custom_Mouse_Pointer>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/23/unify-wiki-custom-mouse-pointer/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Finite State Machine</title><link>http://www.bydesigngames.com/2010/07/22/unify-wiki-finite-state-machine/</link> <comments>http://www.bydesigngames.com/2010/07/22/unify-wiki-finite-state-machine/#comments</comments> <pubDate>Thu, 22 Jul 2010 19:53:05 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* Components */== Description ==
This is a Deterministic Finite State Machine framework based on chapter 3.1 of Game Programming Gems 1 by Eric Dybsend. Therea are two classes and two enums. Include them in your project and follow the expla...]]></description> <content:encoded><![CDATA[<p>Summary: /* Components */</p><hr
/><div>== Description ==<br
/> This is a Deterministic Finite State Machine framework based on chapter 3.1 of Game Programming Gems 1 by Eric Dybsend. Therea are two classes and two enums. Include them in your project and follow the explanations to get the FSM working properly. There's also a complete example script at the end of this page.<br
/> <br
/> == Components ==<br
/> * '''Transition enum''': This enum contains the labels to the transitions that can be fired by the system. Don't change the first label, NullTransition, as the FSMSystem class uses it.<br
/> <br
/> * '''StateID enum''': This is the ID of the states the game may have. You could use references to the real States' classes but using enums makes the system less susceptible to have code having access to objects it is not supposed to. All the states' ids should be placed here. Don't change the first label, NullStateID, as the FSMSystem class uses it.<br
/> <br
/> * '''FSMState class''': This class has a Dictionary with pairs (Transition-StateID) indicating which new state S2 the FSM should go to when a transition T is fired and the current state is S1. It has methods to add and delete pairs (Transition-StateID), a method to check which state to go to if a transition is passed to it. Two methods are used in the example given to check which transition should be fired (Reason()) and which action(s) (Act()) the GameObject that has the FSMState attached should do. You don't have to use this schema, but some kind of transition-action code must be used in your game.<br
/> <br
/> * '''FSMSystem''': This is the Finite State Machine class that each NPC or GameObject in your game must have in order to use the framework. It stores the NPC's States in a List, has methods to add and delete a state and a method to change the current state based on a transition passed to it (PerformTransition()). You can call this method anywhere within your code, as in a collision test, or within Update() or FixedUpdate().<br
/> <br
/> ==C# - FSMSystem.cs==<br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections;<br
/> using System.Collections.Generic;<br
/> using UnityEngine;<br
/> <br
/> /**<br
/> A Finite State Machine System based on Chapter 3.1 of Game Programming Gems 1 by Eric Dybsand<br
/> <br
/> Written by Roberto Cezar Bianchini, July 2010<br
/> <br
/> <br
/> How to use:<br
/> 1. Place the labels for the transitions and the states of the Finite State System<br
/> in the corresponding enums.<br
/> <br
/> 2. Write new class(es) inheriting from FSMState and fill each one with pairs (transition-state).<br
/> These pairs represent the state S2 the FSMSystem should be if while being on state S1, a<br
/> transition T is fired and state S1 has a transition from it to S2. Remember this is a Deterministic FSM. <br
/> You can't have one transition leading to two different states.<br
/> <br
/> Method Reason is used to determine which transition should be fired.<br
/> You can write the code to fire transitions in another place, and leave this method empty if you<br
/> feel it's more appropriate to your project.<br
/> <br
/> Method Act has the code to perform the actions the NPC is supposed do if it's on this state.<br
/> You can write the code for the actions in another place, and leave this method empty if you<br
/> feel it's more appropriate to your project.<br
/> <br
/> 3. Create an instance of FSMSystem class and add the states to it.<br
/> <br
/> 4. Call Reason and Act (or whichever methods you have for firing transitions and making the NPCs<br
/> behave in your game) from your Update or FixedUpdate methods.<br
/> <br
/> Asynchronous transitions from Unity Engine, like OnTriggerEnter, SendMessage, can also be used, <br
/> just call the Method PerformTransition from your FSMSystem instance with the correct Transition <br
/> when the event occurs.<br
/> <br
/> <br
/> <br
/> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, <br
/> INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE <br
/> AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, <br
/> DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br
/> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br
/> */<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Place the labels for the Transitions in this enum.<br
/> /// Don't change the first label, NullTransition as FSMSystem class uses it.<br
/> /// &lt;/summary&gt;<br
/> public enum Transition<br
/> {<br
/> NullTransition = 0, // Use this transition to represent a non-existing transition in your system<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Place the labels for the States in this enum.<br
/> /// Don't change the first label, NullTransition as FSMSystem class uses it.<br
/> /// &lt;/summary&gt;<br
/> public enum StateID<br
/> {<br
/> NullStateID = 0, // Use this ID to represent a non-existing State in your system <br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This class represents the States in the Finite State System.<br
/> /// Each state has a Dictionary with pairs (transition-state) showing<br
/> /// which state the FSM should be if a transition is fired while this state<br
/> /// is the current state.<br
/> /// Method Reason is used to determine which transition should be fired .<br
/> /// Method Act has the code to perform the actions the NPC is supposed do if it's on this state.<br
/> /// &lt;/summary&gt;<br
/> public abstract class FSMState<br
/> {<br
/> protected Dictionary&lt;Transition, StateID&gt; map = new Dictionary&lt;Transition, StateID&gt;();<br
/> protected StateID stateID;<br
/> public StateID ID { get { return stateID; } }<br
/> <br
/> public void AddTransition(Transition trans, StateID id)<br
/> {<br
/> // Check if anyone of the args is invalid<br
/> if (trans == Transition.NullTransition)<br
/> {<br
/> Debug.LogError("FSMState ERROR: NullTransition is not allowed for a real transition");<br
/> return;<br
/> }<br
/> <br
/> if (id == StateID.NullStateID)<br
/> {<br
/> Debug.LogError("FSMState ERROR: NullStateID is not allowed for a real ID");<br
/> return;<br
/> }<br
/> <br
/> // Since this is a Deterministic FSM,<br
/> // check if the current transition was already inside the map<br
/> if (map.ContainsKey(trans))<br
/> {<br
/> Debug.LogError("FSMState ERROR: State " + stateID.ToString() + " already has transition " + trans.ToString() + <br
/> "Impossible to assign to another state");<br
/> return;<br
/> }<br
/> <br
/> map.Add(trans, id);<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method deletes a pair transition-state from this state's map.<br
/> /// If the transition was not inside the state's map, an ERROR message is printed.<br
/> /// &lt;/summary&gt;<br
/> public void DeleteTransition(Transition trans)<br
/> {<br
/> // Check for NullTransition<br
/> if (trans == Transition.NullTransition)<br
/> {<br
/> Debug.LogError("FSMState ERROR: NullTransition is not allowed");<br
/> return;<br
/> }<br
/> <br
/> // Check if the pair is inside the map before deleting<br
/> if (map.ContainsKey(trans))<br
/> {<br
/> map.Remove(trans);<br
/> return;<br
/> }<br
/> Debug.LogError("FSMState ERROR: Transition " + trans.ToString() + " passed to " + stateID.ToString() + <br
/> " was not on the state's transition list");<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method returns the new state the FSM should be if<br
/> /// this state receives a transition and <br
/> /// &lt;/summary&gt;<br
/> public StateID GetOutputState(Transition trans)<br
/> {<br
/> // Check if the map has this transition<br
/> if (map.ContainsKey(trans))<br
/> {<br
/> return map[trans];<br
/> }<br
/> return StateID.NullStateID;<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method is used to set up the State condition before entering it.<br
/> /// It is called automatically by the FSMSystem class before assigning it<br
/> /// to the current state.<br
/> /// &lt;/summary&gt;<br
/> public virtual void DoBeforeEntering() { }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method is used to make anything necessary, as reseting variables<br
/> /// before the FSMSystem changes to another one. It is called automatically<br
/> /// by the FSMSystem before changing to a new state.<br
/> /// &lt;/summary&gt;<br
/> public virtual void DoBeforeLeaving() { } <br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method decides if the state should transition to another on its list<br
/> /// NPC is a reference to the object that is controlled by this class<br
/> /// &lt;/summary&gt;<br
/> public abstract void Reason(GameObject player, GameObject npc);<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method controls the behavior of the NPC in the game World.<br
/> /// Every action, movement or communication the NPC does should be placed here<br
/> /// NPC is a reference to the object that is controlled by this class<br
/> /// &lt;/summary&gt;<br
/> public abstract void Act(GameObject player, GameObject npc);<br
/> <br
/> } // class FSMState<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// FSMSystem class represents the Finite State Machine class.<br
/> /// It has a List with the States the NPC has and methods to add,<br
/> /// delete a state, and to change the current state the Machine is on.<br
/> /// &lt;/summary&gt;<br
/> public class FSMSystem<br
/> {<br
/> private List&lt;FSMState&gt; states;<br
/> <br
/> // The only way one can change the state of the FSM is by performing a transition<br
/> // Don't change the CurrentState directly<br
/> private StateID currentStateID;<br
/> public StateID CurrentStateID { get { return currentStateID; } }<br
/> private FSMState currentState;<br
/> public FSMState CurrentState { get { return currentState; } }<br
/> <br
/> public FSMSystem()<br
/> {<br
/> states = new List&lt;FSMState&gt;();<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method places new states inside the FSM,<br
/> /// or prints an ERROR message if the state was already inside the List.<br
/> /// First state added is also the initial state.<br
/> /// &lt;/summary&gt;<br
/> public void AddState(FSMState s)<br
/> {<br
/> // Check for Null reference before deleting<br
/> if (s == null)<br
/> {<br
/> Debug.LogError("FSM ERROR: Null reference is not allowed");<br
/> }<br
/> <br
/> // First State inserted is also the Initial state,<br
/> // the state the machine is in when the simulation begins<br
/> if (states.Count == 0)<br
/> {<br
/> states.Add(s);<br
/> currentState = s;<br
/> currentStateID = s.ID;<br
/> return;<br
/> }<br
/> <br
/> // Add the state to the List if it's not inside it<br
/> foreach (FSMState state in states)<br
/> {<br
/> if (state.ID == s.ID)<br
/> {<br
/> Debug.LogError("FSM ERROR: Impossible to add state " + s.ID.ToString() + <br
/> " because state has already been added");<br
/> return;<br
/> }<br
/> }<br
/> states.Add(s);<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method delete a state from the FSM List if it exists, <br
/> /// or prints an ERROR message if the state was not on the List.<br
/> /// &lt;/summary&gt;<br
/> public void DeleteState(StateID id)<br
/> {<br
/> // Check for NullState before deleting<br
/> if (id == StateID.NullStateID)<br
/> {<br
/> Debug.LogError("FSM ERROR: NullStateID is not allowed for a real state");<br
/> return;<br
/> }<br
/> <br
/> // Search the List and delete the state if it's inside it<br
/> foreach (FSMState state in states)<br
/> {<br
/> if (state.ID == id)<br
/> {<br
/> states.Remove(state);<br
/> return;<br
/> }<br
/> }<br
/> Debug.LogError("FSM ERROR: Impossible to delete state " + id.ToString() + <br
/> ". It was not on the list of states");<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method tries to change the state the FSM is in based on<br
/> /// the current state and the transition passed. If current state<br
/> /// doesn't have a target state for the transition passed, <br
/> /// an ERROR message is printed.<br
/> /// &lt;/summary&gt;<br
/> public void PerformTransition(Transition trans)<br
/> {<br
/> // Check for NullTransition before changing the current state<br
/> if (trans == Transition.NullTransition)<br
/> {<br
/> Debug.LogError("FSM ERROR: NullTransition is not allowed for a real transition");<br
/> return;<br
/> }<br
/> <br
/> // Check if the currentState has the transition passed as argument<br
/> StateID id = currentState.GetOutputState(trans);<br
/> if (id == StateID.NullStateID)<br
/> {<br
/> Debug.LogError("FSM ERROR: State " + currentStateID.ToString() + " does not have a target state " + <br
/> " for transition " + trans.ToString());<br
/> return;<br
/> }<br
/> <br
/> // Update the currentStateID and currentState <br
/> currentStateID = id;<br
/> foreach (FSMState state in states)<br
/> {<br
/> if (state.ID == currentStateID)<br
/> {<br
/> // Do the post processing of the state before setting the new one<br
/> currentState.DoBeforeLeaving();<br
/> <br
/> currentState = state;<br
/> <br
/> // Reset the state to its desired condition before it can reason or act<br
/> currentState.DoBeforeEntering();<br
/> break;<br
/> }<br
/> }<br
/> <br
/> } // PerformTransition()<br
/> <br
/> } //class FSMSystem <br
/> &lt;/csharp&gt;<br
/> <br
/> ==Example==<br
/> Here's an example that implements the above framework. The GameObject with this script follows a path of waypoints and starts chasing a target if it comes within a certain distance from it. Attach this class to your NPC. Besides the framework transition and stateid enums, you also have to setup a reference to the waypoints and to the target (player). I used FixedUpdate() in the MonoBehaviour because the NPC reasoning schema doesn't need to be called every frame, but you can change that and use Update().<br
/> <br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections.Generic;<br
/> using System.Text;<br
/> using UnityEngine;<br
/> <br
/> [RequireComponent(typeof(Rigidbody))]<br
/> public class NPCControl : MonoBehaviour<br
/> {<br
/> public GameObject player;<br
/> public Transform[] path;<br
/> private FSMSystem fsm;<br
/> <br
/> public void SetTransition(Transition t) { fsm.PerformTransition(t); }<br
/> <br
/> public void Start()<br
/> {<br
/> MakeFSM();<br
/> }<br
/> <br
/> public void FixedUpdate()<br
/> {<br
/> fsm.CurrentState.Reason(player, gameObject);<br
/> fsm.CurrentState.Act(player, gameObject);<br
/> }<br
/> <br
/> // The NPC has two states: FollowPath and ChasePlayer<br
/> // If it's on the first state and SawPlayer transition is fired, it changes to ChasePlayer<br
/> // If it's on ChasePlayerState and LostPlayer transition is fired, it returns to FollowPath<br
/> private void MakeFSM()<br
/> {<br
/> FollowPathState follow = new FollowPathState(path);<br
/> follow.AddTransition(Transition.SawPlayer, StateID.ChasingPlayer);<br
/> <br
/> ChasePlayerState chase = new ChasePlayerState();<br
/> chase.AddTransition(Transition.LostPlayer, StateID.FollowingPath);<br
/> <br
/> fsm = new FSMSystem();<br
/> fsm.AddState(follow);<br
/> fsm.AddState(chase);<br
/> }<br
/> }<br
/> <br
/> public class FollowPathState : FSMState<br
/> {<br
/> private int currentWayPoint;<br
/> private Transform[] waypoints;<br
/> <br
/> public FollowPathState(Transform[] wp) <br
/> { <br
/> waypoints = wp;<br
/> currentWayPoint = 0;<br
/> stateID = StateID.FollowingPath;<br
/> }<br
/> <br
/> public override void Reason(GameObject player, GameObject npc)<br
/> {<br
/> // If the Player passes less than 15 meters away in front of the NPC<br
/> RaycastHit hit;<br
/> if (Physics.Raycast(npc.transform.position, npc.transform.forward, out hit, 15F))<br
/> {<br
/> if (hit.transform.gameObject.tag == "Player")<br
/> npc.GetComponent&lt;NPCControl&gt;().SetTransition(Transition.SawPlayer);<br
/> }<br
/> }<br
/> <br
/> public override void Act(GameObject player, GameObject npc)<br
/> {<br
/> // Follow the path of waypoints<br
/> // Find the direction of the current way point <br
/> Vector3 vel = npc.rigidbody.velocity;<br
/> Vector3 moveDir = waypoints[currentWayPoint].position - npc.transform.position;<br
/> <br
/> if (moveDir.magnitude &lt; 1)<br
/> {<br
/> currentWayPoint++;<br
/> if (currentWayPoint &gt;= waypoints.Length)<br
/> {<br
/> currentWayPoint = 0;<br
/> }<br
/> }<br
/> else<br
/> {<br
/> vel = moveDir.normalized * 10;<br
/> <br
/> // Rotate towards the waypoint<br
/> npc.transform.rotation = Quaternion.Slerp(npc.transform.rotation,<br
/> Quaternion.LookRotation(moveDir),<br
/> 5 * Time.deltaTime);<br
/> npc.transform.eulerAngles = new Vector3(0, npc.transform.eulerAngles.y, 0);<br
/> <br
/> }<br
/> <br
/> // Apply the Velocity<br
/> npc.rigidbody.velocity = vel;<br
/> }<br
/> <br
/> } // FollowPathState<br
/> <br
/> public class ChasePlayerState : FSMState<br
/> {<br
/> public ChasePlayerState()<br
/> {<br
/> stateID = StateID.ChasingPlayer;<br
/> }<br
/> <br
/> public override void Reason(GameObject player, GameObject npc)<br
/> {<br
/> // If the player has gone 30 meters away from the NPC, fire LostPlayer transition<br
/> if (Vector3.Distance(npc.transform.position, player.transform.position) &gt;= 30)<br
/> npc.GetComponent&lt;NPCControl&gt;().SetTransition(Transition.LostPlayer);<br
/> }<br
/> <br
/> public override void Act(GameObject player, GameObject npc)<br
/> {<br
/> // Follow the path of waypoints<br
/> // Find the direction of the player <br
/> Vector3 vel = npc.rigidbody.velocity;<br
/> Vector3 moveDir = player.transform.position - npc.transform.position;<br
/> <br
/> // Rotate towards the waypoint<br
/> npc.transform.rotation = Quaternion.Slerp(npc.transform.rotation,<br
/> Quaternion.LookRotation(moveDir),<br
/> 5 * Time.deltaTime);<br
/> npc.transform.eulerAngles = new Vector3(0, npc.transform.eulerAngles.y, 0);<br
/> <br
/> vel = moveDir.normalized * 10;<br
/> <br
/> // Apply the new Velocity<br
/> npc.rigidbody.velocity = vel;<br
/> }<br
/> <br
/> } // ChasePlayerState<br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Finite_State_Machine>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/22/unify-wiki-finite-state-machine/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Finit State Machine</title><link>http://www.bydesigngames.com/2010/07/22/unify-wiki-finit-state-machine/</link> <comments>http://www.bydesigngames.com/2010/07/22/unify-wiki-finit-state-machine/#comments</comments> <pubDate>Thu, 22 Jul 2010 19:18:49 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* C# - FSMSystem.cs */== Description ==
This is a Deterministic Finite State Machine framework based on chapter 3.1 of Game Programming Gems 1 by Eric Dybsend. Therea are two classes and two enums. Include them in your project, and follow t...]]></description> <content:encoded><![CDATA[<p>Summary: /* C# - FSMSystem.cs */</p><hr
/><div>== Description ==<br
/> This is a Deterministic Finite State Machine framework based on chapter 3.1 of Game Programming Gems 1 by Eric Dybsend. Therea are two classes and two enums. Include them in your project, and follow the explanations to get the FSM working properly. There´s also a complete example script at the end of this page.<br
/> <br
/> == Components ==<br
/> * '''Transition enum''': this enum contains the lables to the transitions that can be fired by the system. Don´t change the first lable, NullTransition, as the FSMSystem class uses it.<br
/> <br
/> * '''StateID enum''': this is the ID of the states the game may have. You could use references to the real States´ classes but using enums makes the system less susceptible to have code having access to objects it is not supposed to. All the states´ ids should be placed here. Don´t change the first lable, NullStateID, as the FSMSystem class uses it.<br
/> <br
/> * '''FSMState class''': this class has a Dictionaty with pairs (Transition-StateID) indicating which new state S2 the FSM should go to when a transition T is fired and the current state is S1. It has methods to add and delete pairs (Transition-StateID), a method to check which state to go to if a trasition is passed to it. Two methods are used in the example given to check which transition should be fired (Reason()) and which action(s) (Act()) the GameObject that has the FSMState attached should do. You don´t have to use this schema, but some kind of transition-action code must be used in your game.<br
/> <br
/> * '''FSMSystem''': This is the Finite State Machine class that each NPC or GameObject in your game must have in order to use the framework. It stores the NPC´s States in a List, has methods to add and delete a state and a method to change the current state based on a transition passed to it (PerformTransition()). You can call this method anywhere within your code, as in a collision test, or within Update() or FixedUpdate().<br
/> <br
/> ==C# - FSMSystem.cs==<br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections;<br
/> using System.Collections.Generic;<br
/> using UnityEngine;<br
/> <br
/> /**<br
/> A Finite State Machine System based on Chapter 3.1 of Game Programming Gems 1 by Eric Dybsand<br
/> <br
/> Written by Roberto Cezar Bianchini, Jully 2010<br
/> <br
/> <br
/> How to use:<br
/> 1. Place the lables for the transitions and the states of the Finite State System<br
/> in the corresponding enums.<br
/> <br
/> 2. Write new class(es) inheriting from FSMState and fill each one with pairs (transition-state).<br
/> These pairs represent the state S2 the FSMSystem should be if while being on state S1, a<br
/> transition T is fired and state S1 has a transintion from it to S2. Remember this is a Deterministic FSM. <br
/> You can´t have one transition leading to two different states.<br
/> <br
/> Method Reason is used to determine which transition should be fired.<br
/> You can write the code to fire transitions in another place, and leave this method empty if you<br
/> feel it´s more appropriate to your project.<br
/> <br
/> Method Act has the code to perform the actions the NPC is supposed do if it´s on this state.<br
/> You can write the code for the actions in another place, and leave this method empyt if you<br
/> feel it´s more appropriate to your project.<br
/> <br
/> 3. Create an instance of FSMSystem class and add the states to it.<br
/> <br
/> 4. Call Reason and Act (or whicheaver methods you have for firing transitions and making the NPCs<br
/> behave in your game) from your Update or FixedUpdate methods.<br
/> <br
/> Assynchronous transitions from Unity Engine, like OnTriggerEnter, SendMessage, can also be used, <br
/> just call the Method PerformTransition from your FSMSystem instance with the correct Transition <br
/> when the event occurs.<br
/> <br
/> <br
/> <br
/> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, <br
/> INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE <br
/> AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, <br
/> DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br
/> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br
/> */<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// Place the lables for the Transitions in this enum.<br
/> /// Don´t change the first lable, NullTransition as FSMSystem class uses it.<br
/> /// &lt;/summary&gt;<br
/> public enum Transition<br
/> {<br
/> NullTransition = 0, // Use this transition to represent a non-existint transition in your system<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// Place the lables for the States in this enum.<br
/> /// Don´t change the first lable, NullTransition as FSMSystem class uses it.<br
/> /// &lt;/summary&gt;<br
/> public enum StateID<br
/> {<br
/> NullStateID = 0, // Use this ID to represent a non-existing State in your system <br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This class represents the States in the Finite State System.<br
/> /// Each state has a Dictionary with pairs (transition-state) showing<br
/> /// which state the FSM should be if a transition is fired while this state<br
/> /// is the current state.<br
/> /// Method Reason is used to determine which transition should be fired .<br
/> /// Method Act has the code to perform the actions the NPC is supposed do if it´s on this state.<br
/> /// &lt;/summary&gt;<br
/> public abstract class FSMState<br
/> {<br
/> protected Dictionary&lt;Transition, StateID&gt; map = new Dictionary&lt;Transition, StateID&gt;();<br
/> protected StateID stateID;<br
/> public StateID ID { get { return stateID; } }<br
/> <br
/> public void AddTransition(Transition trans, StateID id)<br
/> {<br
/> // Check if anyone of the args is invallid<br
/> if (trans == Transition.NullTransition)<br
/> {<br
/> Debug.LogError("FSMState ERROR: NullTransition is not allowed for a real transition");<br
/> return;<br
/> }<br
/> <br
/> if (id == StateID.NullStateID)<br
/> {<br
/> Debug.LogError("FSMState ERROR: NullStateID is not allowed for a real ID");<br
/> return;<br
/> }<br
/> <br
/> // Since this is a Deterministc FSM,<br
/> // check if the current transition was already inside the map<br
/> if (map.ContainsKey(trans))<br
/> {<br
/> Debug.LogError("FSMState ERROR: State " + stateID.ToString() + " already has transition " + trans.ToString() + <br
/> "Impossible to assign to another state");<br
/> return;<br
/> }<br
/> <br
/> map.Add(trans, id);<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method deletes a pair transition-state from this state´s map.<br
/> /// If the transition was not inside the state´s map, an ERROR message is printed.<br
/> /// &lt;/summary&gt;<br
/> public void DeleteTransition(Transition trans)<br
/> {<br
/> // Check for NullTransition<br
/> if (trans == Transition.NullTransition)<br
/> {<br
/> Debug.LogError("FSMState ERROR: NullTransition is not allowed");<br
/> return;<br
/> }<br
/> <br
/> // Check if the pair is inside the map before deleting<br
/> if (map.ContainsKey(trans))<br
/> {<br
/> map.Remove(trans);<br
/> return;<br
/> }<br
/> Debug.LogError("FSMState ERROR: Transition " + trans.ToString() + " passed to " + stateID.ToString() + <br
/> " was not on the state´s transition list");<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method returns the new state the FSM should be if<br
/> /// this state receives a transition and <br
/> /// &lt;/summary&gt;<br
/> public StateID GetOutputState(Transition trans)<br
/> {<br
/> // Check if the map has this transition<br
/> if (map.ContainsKey(trans))<br
/> {<br
/> return map[trans];<br
/> }<br
/> return StateID.NullStateID;<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method is used to set up the State condition before entering it.<br
/> /// It is called automatically by the FSMSystem class before assigning it<br
/> /// to the current state.<br
/> /// &lt;/summary&gt;<br
/> public virtual void DoBeforeEntering() { }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method is used to make anything necessary, as reseting variables<br
/> /// before the FSMSystem changes to another one. It is called automatically<br
/> /// by the FSMSystem before changing to a new state.<br
/> /// &lt;/summary&gt;<br
/> public virtual void DoBeforeLeaving() { } <br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method decides if the state should transition to another on its list<br
/> /// NPC is a reference to the object that is controlled by this class<br
/> /// &lt;/summary&gt;<br
/> public abstract void Reason(GameObject player, GameObject npc);<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method controls the behavior of the NPC in the game World.<br
/> /// Every action, movement or communication the NPC does should be placed here<br
/> /// NPC is a reference to the object that is controlled by this class<br
/> /// &lt;/summary&gt;<br
/> public abstract void Act(GameObject player, GameObject npc);<br
/> <br
/> } // class FSMState<br
/> <br
/> <br
/> /// &lt;summary&gt;<br
/> /// FSMSystem class represents the Finite State Machine class.<br
/> /// It has a List with the States the NPC has and methods to add,<br
/> /// delete a state, and to change the current state the Machine is on.<br
/> /// &lt;/summary&gt;<br
/> public class FSMSystem<br
/> {<br
/> private List&lt;FSMState&gt; states;<br
/> <br
/> // The only way one can change the state of the FSM is by performing a trasintion<br
/> // Don´t change the CurrentState directly<br
/> private StateID currentStateID;<br
/> public StateID CurrentStateID { get { return currentStateID; } }<br
/> private FSMState currentState;<br
/> public FSMState CurrentState { get { return currentState; } }<br
/> <br
/> public FSMSystem()<br
/> {<br
/> states = new List&lt;FSMState&gt;();<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method places new states inside the FSM,<br
/> /// or prints an ERROR message if the state was already inside the List.<br
/> /// First state added is also the initial state.<br
/> /// &lt;/summary&gt;<br
/> public void AddState(FSMState s)<br
/> {<br
/> // Check for Null reference before deleting<br
/> if (s == null)<br
/> {<br
/> Debug.LogError("FSM ERROR: Null reference is not allowed");<br
/> }<br
/> <br
/> // First State inserted is also the Initial state,<br
/> // the state the machine is in when the simulation begins<br
/> if (states.Count == 0)<br
/> {<br
/> states.Add(s);<br
/> currentState = s;<br
/> currentStateID = s.ID;<br
/> return;<br
/> }<br
/> <br
/> // Add the state to the List if it´s not inside it<br
/> foreach (FSMState state in states)<br
/> {<br
/> if (state.ID == s.ID)<br
/> {<br
/> Debug.LogError("FSM ERROR: Impossible to add state " + s.ID.ToString() + <br
/> " because state has already been added");<br
/> return;<br
/> }<br
/> }<br
/> states.Add(s);<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method delete a state from the FSM List if it exists, <br
/> /// or prints an ERROR message if the state was not on the List.<br
/> /// &lt;/summary&gt;<br
/> public void DeleteState(StateID id)<br
/> {<br
/> // Check for NullState before deleting<br
/> if (id == StateID.NullStateID)<br
/> {<br
/> Debug.LogError("FSM ERROR: NullStateID is not allowed for a real state");<br
/> return;<br
/> }<br
/> <br
/> // Search the List and delete the state if it´s inside it<br
/> foreach (FSMState state in states)<br
/> {<br
/> if (state.ID == id)<br
/> {<br
/> states.Remove(state);<br
/> return;<br
/> }<br
/> }<br
/> Debug.LogError("FSM ERROR: Impossible to delete state " + id.ToString() + <br
/> ". It was not on the list of states");<br
/> }<br
/> <br
/> /// &lt;summary&gt;<br
/> /// This method tries to change the state the FSM is in based on<br
/> /// the current state and the transition passed. If current state<br
/> /// doesn´t have a target state for the transition passed, <br
/> /// an ERROR message is printed.<br
/> /// &lt;/summary&gt;<br
/> public void PerformTransition(Transition trans)<br
/> {<br
/> // Check for NullTransition before changing the current state<br
/> if (trans == Transition.NullTransition)<br
/> {<br
/> Debug.LogError("FSM ERROR: NullTransition is not allowed for a real transition");<br
/> return;<br
/> }<br
/> <br
/> // Check if the currentState has the transition passed as argument<br
/> StateID id = currentState.GetOutputState(trans);<br
/> if (id == StateID.NullStateID)<br
/> {<br
/> Debug.LogError("FSM ERROR: State " + currentStateID.ToString() + " does not have a target state " + <br
/> " for transition " + trans.ToString());<br
/> return;<br
/> }<br
/> <br
/> // Update the currentStateID and currentState <br
/> currentStateID = id;<br
/> foreach (FSMState state in states)<br
/> {<br
/> if (state.ID == currentStateID)<br
/> {<br
/> // Do the post processing of the state before setting the new one<br
/> currentState.DoBeforeLeaving();<br
/> <br
/> currentState = state;<br
/> <br
/> // Reset the state ot its desired contition before it can reason or act<br
/> currentState.DoBeforeEntering();<br
/> break;<br
/> }<br
/> }<br
/> <br
/> } // PerformTransition()<br
/> <br
/> } //class FSMSystem <br
/> &lt;/csharp&gt;<br
/> <br
/> ==Example==<br
/> Here´s an example that implements the above framework. The gameobject with this script follows a path of waypoints and starts chasing a target if it comes within a certain distance from it. Attach this class to your NPC. Besides the framework transition and stateid enums, you also have to setup a reference to the waypoints and to the target (player). I used FixedUpdate() in the MonoBehaviour because the NPC reasoning schema doesn´t need to be called everyframe, but you can change that and use Update().<br
/> <br
/> &lt;csharp&gt;<br
/> using System;<br
/> using System.Collections.Generic;<br
/> using System.Text;<br
/> using UnityEngine;<br
/> <br
/> [RequireComponent(typeof(Rigidbody))]<br
/> public class NPCControl : MonoBehaviour<br
/> {<br
/> public GameObject player;<br
/> public Transform[] path;<br
/> private FSMSystem fsm;<br
/> <br
/> public void SetTransition(Transition t) { fsm.PerformTransition(t); }<br
/> <br
/> public void Start()<br
/> {<br
/> MakeFSM();<br
/> }<br
/> <br
/> public void FixedUpdate()<br
/> {<br
/> fsm.CurrentState.Reason(player, gameObject);<br
/> fsm.CurrentState.Act(player, gameObject);<br
/> }<br
/> <br
/> // The NPC has two states: FollowPath and ChasePlayer<br
/> // If it´s on the first state and SawPlayer transition is fired, it changes to ChasePlayer<br
/> // If it´s on ChasePlayerState and LostPlayer transition is fired, it returns to FollowPath<br
/> private void MakeFSM()<br
/> {<br
/> FollowPathState follow = new FollowPathState(path);<br
/> follow.AddTransition(Transition.SawPlayer, StateID.ChasingPlayer);<br
/> <br
/> ChasePlayerState chase = new ChasePlayerState();<br
/> chase.AddTransition(Transition.LostPlayer, StateID.FollowingPath);<br
/> <br
/> fsm = new FSMSystem();<br
/> fsm.AddState(follow);<br
/> fsm.AddState(chase);<br
/> }<br
/> }<br
/> <br
/> public class FollowPathState : FSMState<br
/> {<br
/> private int currentWayPoint;<br
/> private Transform[] waypoints;<br
/> <br
/> public FollowPathState(Transform[] wp) <br
/> { <br
/> waypoints = wp;<br
/> currentWayPoint = 0;<br
/> stateID = StateID.FollowingPath;<br
/> }<br
/> <br
/> public override void Reason(GameObject player, GameObject npc)<br
/> {<br
/> // If the Player passes less than 15 meters away in front of the NPC<br
/> RaycastHit hit;<br
/> if (Physics.Raycast(npc.transform.position, npc.transform.forward, out hit, 15F))<br
/> {<br
/> if (hit.transform.gameObject.tag == "Player")<br
/> npc.GetComponent&lt;NPCControl&gt;().SetTransition(Transition.SawPlayer);<br
/> }<br
/> }<br
/> <br
/> public override void Act(GameObject player, GameObject npc)<br
/> {<br
/> // Follow the path of waypoints<br
/> // Find the direction of the current way point <br
/> Vector3 vel = npc.rigidbody.velocity;<br
/> Vector3 moveDir = waypoints[currentWayPoint].position - npc.transform.position;<br
/> <br
/> if (moveDir.magnitude &lt; 1)<br
/> {<br
/> currentWayPoint++;<br
/> if (currentWayPoint &gt;= waypoints.Length)<br
/> {<br
/> currentWayPoint = 0;<br
/> }<br
/> }<br
/> else<br
/> {<br
/> vel = moveDir.normalized * 10;<br
/> <br
/> // Rotate towards the waypoint<br
/> npc.transform.rotation = Quaternion.Slerp(npc.transform.rotation,<br
/> Quaternion.LookRotation(moveDir),<br
/> 5 * Time.deltaTime);<br
/> npc.transform.eulerAngles = new Vector3(0, npc.transform.eulerAngles.y, 0);<br
/> <br
/> }<br
/> <br
/> // Apply the Velocity<br
/> npc.rigidbody.velocity = vel;<br
/> }<br
/> <br
/> } // FollowPathState<br
/> <br
/> public class ChasePlayerState : FSMState<br
/> {<br
/> public ChasePlayerState()<br
/> {<br
/> stateID = StateID.ChasingPlayer;<br
/> }<br
/> <br
/> public override void Reason(GameObject player, GameObject npc)<br
/> {<br
/> // If the player has gone 30 meters away from the NPC, fire LostPlayer transition<br
/> if (Vector3.Distance(npc.transform.position, player.transform.position) &gt;= 30)<br
/> npc.GetComponent&lt;NPCControl&gt;().SetTransition(Transition.LostPlayer);<br
/> }<br
/> <br
/> public override void Act(GameObject player, GameObject npc)<br
/> {<br
/> // Follow the path of waypoints<br
/> // Find the direction of the player <br
/> Vector3 vel = npc.rigidbody.velocity;<br
/> Vector3 moveDir = player.transform.position - npc.transform.position;<br
/> <br
/> // Rotate towards the waypoint<br
/> npc.transform.rotation = Quaternion.Slerp(npc.transform.rotation,<br
/> Quaternion.LookRotation(moveDir),<br
/> 5 * Time.deltaTime);<br
/> npc.transform.eulerAngles = new Vector3(0, npc.transform.eulerAngles.y, 0);<br
/> <br
/> vel = moveDir.normalized * 10;<br
/> <br
/> // Apply the new Velocity<br
/> npc.rigidbody.velocity = vel;<br
/> }<br
/> <br
/> } // ChasePlayerState<br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Finit_State_Machine>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/22/unify-wiki-finit-state-machine/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Mac Fix</title><link>http://www.bydesigngames.com/2010/07/22/unify-wiki-mac-fix/</link> <comments>http://www.bydesigngames.com/2010/07/22/unify-wiki-mac-fix/#comments</comments> <pubDate>Thu, 22 Jul 2010 15:05:51 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: Deleted spamThis is just spam; someone please delete this page and ban the author.]]></description> <content:encoded><![CDATA[<p>Summary: Deleted spam</p><hr
/><div>This is just spam; someone please delete this page and ban the author.</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Mac_Fix>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/22/unify-wiki-mac-fix/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Fur</title><link>http://www.bydesigngames.com/2010/07/21/unify-wiki-fur/</link> <comments>http://www.bydesigngames.com/2010/07/21/unify-wiki-fur/#comments</comments> <pubDate>Wed, 21 Jul 2010 09:40:35 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:[[Category: Unity 2.x shaders]]
[[Category: Cg shaders]]
[[Category: Pixel lit shaders]]Author: [[User:Slin&#124;Nils Daumann]].==Description==
[[Image:Fur.JPG&#124;thumb&#124;The fur shader in action.]]This shader adds some fur to your objects. Sort...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>[[Category: Unity 2.x shaders]]<br
/> [[Category: Cg shaders]]<br
/> [[Category: Pixel lit shaders]]<br
/> <br
/> Author: [[User:Slin|Nils Daumann]].<br
/> <br
/> ==Description==<br
/> [[Image:Fur.JPG|thumb|The fur shader in action.]]<br
/> <br
/> This shader adds some fur to your objects. Sorting is a little bit problematic though.<br
/> Everything else is also far from perfect, but I got tired of all the C&amp;P needed for any minor change.<br
/> <br
/> Works on fragment program capable cards (Radeon 9500+, GeForce FX+, Intel 9xx). Supports fog and shadows.<br
/> <br
/> <br
/> ==Usage==<br
/> <br
/> [[Image:Fur_setup.JPG|Typical setup]]<br
/> <br
/> * Length is the furs length.<br
/> * Darkening defines how much darker the fur gets to the skin.<br
/> * Main Color is used as ambient term.<br
/> * Texture is mapped on the object using its uv set (Tiling and Offset works!).<br
/> * Transparency is a texture whichs red channel defines the size and shape of each hair (Tiling and Offset works!).<br
/> <br
/> ==Download==<br
/> [[Media:Fur.zip]]</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Fur>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/21/unify-wiki-fur/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] RefractionEffect</title><link>http://www.bydesigngames.com/2010/07/20/unify-wiki-refractioneffect/</link> <comments>http://www.bydesigngames.com/2010/07/20/unify-wiki-refractioneffect/#comments</comments> <pubDate>Tue, 20 Jul 2010 22:17:33 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* Description */[[Category: Unity 2.x shaders]]
[[Category: Cg shaders]]
[[Category: Image effect]]Author: [[User:Slin&#124;Nils Daumann]].==Description==
[[Image:Refract.JPG&#124;thumb&#124;The shader in action.]]
[http://www.youtube.com/watch?v=ff_o...]]></description> <content:encoded><![CDATA[<p>Summary: /* Description */</p><hr
/><div>[[Category: Unity 2.x shaders]]<br
/> [[Category: Cg shaders]]<br
/> [[Category: Image effect]]<br
/> <br
/> Author: [[User:Slin|Nils Daumann]].<br
/> <br
/> ==Description==<br
/> [[Image:Refract.JPG|thumb|The shader in action.]]<br
/> [http://www.youtube.com/watch?v=ff_oTOBANlA]<br
/> <br
/> This is some basic fullscreen refraction effect. It shifts a refraction texture which disorts the screen and also allows to color specific parts.<br
/> <br
/> Works on fragment program capable cards (Radeon 9500+, GeForce FX+, Intel 9xx).<br
/> <br
/> '''Requires Unity PRO. This script uses texture rendering and Post-processing only available in Unity Pro'''<br
/> <br
/> ==Usage==<br
/> <br
/> [[Image:Refract_setup.JPG|Typical setup]]<br
/> <br
/> * Speed (XY) the movement speed.<br
/> * Strength (ZW) the strengths of disortion.<br
/> * Refraction Tilefac is the tiling of the refraction texture.<br
/> * Refraction (RG) is the refraction texture, where usually the red and blue channel of a normalmap are doing a good job.<br
/> * Colormask (B) is a factor defining how much Color effects the refracted pixel.<br
/> * Color is the color you want to give the refracted pixels.<br
/> <br
/> <br
/> ==Download==<br
/> [[Media:Refraction.zip]]<br
/> <br
/> <br
/> ==ShaderLab - ImageRefractionEffect.shader==<br
/> &lt;shaderlab&gt;<br
/> Shader "Image Effects/Refraction"<br
/> {<br
/> Properties<br
/> {<br
/> _SpeedStrength ("Speed (XY), Strength (ZW)", Vector) = (1, 1, 1, 1)<br
/> _RefractTexTiling ("Refraction Tilefac", Float) = 1<br
/> _RefractTex ("Refraction (RG), Colormask (B)", 2D) = "bump" {}<br
/> _Color ("Color (RGB)", Color) = (1, 1, 1, 1)<br
/> _MainTex ("Base (RGB) DON`T TOUCH IT! :)", RECT) = "white" {}<br
/> }<br
/> <br
/> SubShader<br
/> {<br
/> Pass<br
/> {<br
/> ZTest Always Cull Off ZWrite Off<br
/> Fog{Mode off}<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert_img<br
/> #pragma fragment frag<br
/> #pragma fragmentoption ARB_precision_hint_fastest <br
/> #include "UnityCG.cginc"<br
/> <br
/> uniform samplerRECT _MainTex;<br
/> uniform sampler2D _RefractTex;<br
/> uniform float4 _SpeedStrength;<br
/> uniform float _RefractTexTiling;<br
/> uniform float4 _Color;<br
/> <br
/> float4 frag (v2f_img i) : COLOR<br
/> {<br
/> float2 refrtc = i.uv*_RefractTexTiling;<br
/> float4 refract = tex2D(_RefractTex, refrtc+_SpeedStrength.xy*_Time.x);<br
/> refract.rg = refract.rg*2.0-1.0;<br
/> <br
/> float4 original = texRECT(_MainTex, i.uv+refract.rg*_SpeedStrength.zw);<br
/> <br
/> float4 output = lerp(original, original*_Color, refract.b);<br
/> output.a = original.a;<br
/> <br
/> return output;<br
/> }<br
/> ENDCG<br
/> }<br
/> }<br
/> Fallback off<br
/> }<br
/> &lt;/shaderlab&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=RefractionEffect>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/20/unify-wiki-refractioneffect/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity 3 technology – Surface Shaders</title><link>http://www.bydesigngames.com/2010/07/17/unity-technologies-unity-3-technology-%e2%80%93-surface-shaders/</link> <comments>http://www.bydesigngames.com/2010/07/17/unity-technologies-unity-3-technology-%e2%80%93-surface-shaders/#comments</comments> <pubDate>Sat, 17 Jul 2010 12:40:16 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3236</guid> <description><![CDATA[In Unity you can write your own custom shaders, but it&#8217;s no secret that writing them is hard, especially when you need shaders that interact with per-pixel lights &#038; shadows. In Unity 3, that would be even harder because in addition to all the old stuff, your shaders would have to support the new [...]]]></description> <content:encoded><![CDATA[<p>In Unity you can write your own custom shaders, but it&#8217;s no secret that writing them is hard, especially when you need shaders that interact with per-pixel lights &#038; shadows. In Unity 3, that would be even harder because in addition to all the old stuff, your shaders would have to support the new Deferred Lighting renderer. We decided it&#8217;s time to make shaders <em>somewhat easier</em> to write.</p><p><em>Warning: a technical post ahead with almost no pictures!</em></p><p>Over a year ago I had a thought that &#8220;Shaders must die&#8221; (<a
rel="nofollow"  href="http://aras-p.info/blog/2009/05/05/shaders-must-die/">part 1</a>, <a
rel="nofollow"  href="http://aras-p.info/blog/2009/05/07/shaders-must-die-part-2/">part 2</a>, <a
rel="nofollow"  href="http://aras-p.info/blog/2009/05/10/shaders-must-die-part-3/">part 3</a>). And what do you know &#8211; turns out we&#8217;re doing this in Unity 3. We call this <strong>Surface Shaders</strong> cause I&#8217;ve a suspicion &#8220;shaders must die&#8221; as a feature name wouldn&#8217;t have flied very far.</p><p><span
id="more-3236"></span></p><p><strong>Idea</strong></p><p>The main idea is that 90% of the time I just want to declare surface properties. This is what I want to say:</p><blockquote><p>Hey, albedo comes from this texture mixed with this texture, and normal comes from this normal map. Use Blinn-Phong lighting model please, and don&#8217;t bother me again!</p></blockquote><p>With the above, I don&#8217;t have to care whether this will be used in a forward or deferred rendering, or how various light types will be handled, or how many lights per pass will be done in a forward renderer, or how some indirect illumination SH probes will come in, etc. I&#8217;m not interested in all that! These dirty bits are job of rendering programmers, <em>just make it work dammit</em>!</p><p>This is not a new idea. Most graphical shader editors <em>that make sense</em> do not have &#8220;pixel color&#8221; as the final output node; instead they have some node that basically describes surface parameters (diffuse, specularity, normal, &#8230;), and all the lighting code is usually not expressed in the shader graph itself. <a
rel="nofollow"  href="http://code.google.com/p/openshadinglanguage/">OpenShadingLanguage</a> is a similar idea as well (but because it&#8217;s targeted at offline rendering for movies, it&#8217;s much richer &#038; more complex).</p><p><strong>Example</strong></p><p>Here&#8217;s a simple &#8211; but full &#038; complete &#8211; Unity 3.0 shader that does diffuse lighting with a texture &#038; a normal map.</p><pre> <span style="color:gray;">Shader "Example/Diffuse Bump" { Properties { _MainTex ("Texture", 2D) = "white" {} _BumpMap ("Bumpmap", 2D) = "bump" {} } SubShader { Tags { "RenderType" = "Opaque" } CGPROGRAM</span> #pragma surface surf Lambert struct Input { float2 uv_MainTex; float2 uv_BumpMap; }; sampler2D _MainTex; sampler2D _BumpMap; void surf (Input IN, inout SurfaceOutput o) { o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb; o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap)); } <span style="color:gray;">ENDCG } Fallback "Diffuse" }</span></pre><p><a
rel="nofollow"  href="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfaceShaderDiffuseBump.png"><img
src="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfaceShaderDiffuseBump-150x150.png" alt="Surface Shader: Diffuse Normalmapped" title="Surface Shader: Diffuse Normalmapped" width="150" height="150" class="alignright size-thumbnail wp-image-3239"/></a>Given pretty model &#038; textures, it can produce pretty pictures! How cool is that?</p><p>I grayed out bits that are not really interesting (declaration of serialized shader properties &#038; their UI names, shader fallback for older machines etc.). What&#8217;s left is Cg/HLSL code, which is then augmented by tons of auto-generated code that deals with lighting &#038; whatnot.</p><p>This surface shader dissected into pieces:</p><ul><li><tt>#pragma surface surf Lambert</tt>: this is a surface shader with main function &#8220;surf&#8221;, and a Lambert lighting model. Lambert is one of predefined lighting models, but you can write your own.</li><li><tt>struct Input</tt>: input data for the surface shader. This can have various predefined inputs that will be computed per-vertex &#038; passed into your surface function per-pixel. In this case, it&#8217;s two texture coordinates.</li><li><tt>surf</tt> function: actual surface shader code. It takes Input, and writes into <tt>SurfaceOutput</tt> (a predefined structure). It is possible to write into custom structures, provided you use lighting models that operate on those structures. The actual code just writes Albedo and Normal to the output.</li></ul><p><strong>What is generated</strong></p><p>Unity&#8217;s &#8220;surface shader code generator&#8221; would take this, generate <em>actual</em> vertex &#038; pixel shaders, and compile them to various target platforms. With default settings in Unity 3.0, it would make this shader support:</p><ul><li>Forward renderer and Deferred Lighting (Light Pre-Pass) renderer.</li><li>Objects with precomputed lightmaps and without.</li><li>Directional, Point and Spot lights; with projected light cookies or without; with shadowmaps or without. Well ok, this is only for forward renderer because in Deferred Lighting the lighting happens elsewhere.</li><li>For Forward renderer, it would compile in support for lights computed per-vertex and spherical harmonics lights computed per-object. It would also generate extra additive blended pass if needed for the case when additional per-pixel lights have to be rendered in separate passes.</li><li>For Deferred Lighting, it would generate base pass that outputs normals &#038; specular power; and a final pass that combines albedo with lighting, adds in any lightmaps or emissive lighting etc.</li><li>It can optionally generate a shadow caster rendering pass (needed if custom vertex position modifiers are used for vertex shader based animation; or some complex alpha-test effects are done).</li></ul><p>For example, here&#8217;s code that would be compiled for a forward-rendered base pass with one directional light, 4 per-vertex point lights, 3rd order SH lights; optional lightmaps <em>(I suggest just scrolling down)</em>:</p><pre style="font-size:75%;">
#pragma vertex vert_surf
#pragma fragment frag_surf
#pragma fragmentoption ARB_fog_exp2
#pragma fragmentoption ARB_precision_hint_fastest
#pragma multi_compile_fwdbase
#include "HLSLSupport.cginc"
#include "UnityCG.cginc"
#include "Lighting.cginc"
#include "AutoLight.cginc"
struct Input { float2 uv_MainTex : TEXCOORD0;
};
sampler2D _MainTex;
sampler2D _BumpMap;
void surf (Input IN, inout SurfaceOutput o)
{ o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb; o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_MainTex));
}
struct v2f_surf { V2F_POS_FOG; float2 hip_pack0 : TEXCOORD0; #ifndef LIGHTMAP_OFF float2 hip_lmap : TEXCOORD1; #else float3 lightDir : TEXCOORD1; float3 vlight : TEXCOORD2; #endif LIGHTING_COORDS(3,4)
};
#ifndef LIGHTMAP_OFF
float4 unity_LightmapST;
#endif
float4 _MainTex_ST;
v2f_surf vert_surf (appdata_full v) { v2f_surf o; PositionFog( v.vertex, o.pos, o.fog ); o.hip_pack0.xy = TRANSFORM_TEX(v.texcoord, _MainTex); #ifndef LIGHTMAP_OFF o.hip_lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; #endif float3 worldN = mul((float3x3)_Object2World, SCALED_NORMAL); TANGENT_SPACE_ROTATION; #ifdef LIGHTMAP_OFF o.lightDir = mul (rotation, ObjSpaceLightDir(v.vertex)); #endif #ifdef LIGHTMAP_OFF float3 shlight = ShadeSH9 (float4(worldN,1.0)); o.vlight = shlight; #ifdef VERTEXLIGHT_ON float3 worldPos = mul(_Object2World, v.vertex).xyz; o.vlight += Shade4PointLights ( unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, unity_LightColor0, unity_LightColor1, unity_LightColor2, unity_LightColor3, unity_4LightAtten0, worldPos, worldN ); #endif // VERTEXLIGHT_ON #endif // LIGHTMAP_OFF TRANSFER_VERTEX_TO_FRAGMENT(o); return o;
}
#ifndef LIGHTMAP_OFF
sampler2D unity_Lightmap;
#endif
half4 frag_surf (v2f_surf IN) : COLOR { Input surfIN; surfIN.uv_MainTex = IN.hip_pack0.xy; SurfaceOutput o; o.Albedo = 0.0; o.Emission = 0.0; o.Specular = 0.0; o.Alpha = 0.0; o.Gloss = 0.0; surf (surfIN, o); half atten = LIGHT_ATTENUATION(IN); half4 c; #ifdef LIGHTMAP_OFF c = LightingLambert (o, IN.lightDir, atten); c.rgb += o.Albedo * IN.vlight; #else // LIGHTMAP_OFF half3 lmFull = DecodeLightmap (tex2D(unity_Lightmap, IN.hip_lmap.xy)); #ifdef SHADOWS_SCREEN c.rgb = o.Albedo * min(lmFull, atten*2); #else c.rgb = o.Albedo * lmFull; #endif c.a = o.Alpha; #endif // LIGHTMAP_OFF return c;
}
</pre><p>Of those 90 lines of code, 10 are your original surface shader code; the remaining 80 would have to be pretty much written by hand in Unity 2.x days (well ok, less code would have to be written because 2.x had less rendering features). <em>But wait</em>, that was only base pass of the forward renderer! It also generates code for additive pass, for deferred base pass, deferred final pass, optionally for shadow caster pass and so on.</p><p>So this should be an easier to write lit shaders (it is for me at least). I hope this will also increase the number of Unity users who can write shaders at least 3 times <em>(i.e. to 30 up from 10!)</em>. It <em>should</em> be more future proof to accomodate changes to the lighting pipeline we&#8217;ll do in Unity next.</p><p><strong>Predefined Input values</strong></p><p>The Input structure can contain texture coordinates and some predefined values, for example view direction, world space position, world space reflection vector and so on. Code to compute them is only generated if they are <em>actually</em> used. For example, if you use world space reflection to do some cubemap reflections (as emissive term) in your surface shader, then in Deferred Lighting base pass the reflection vector will <em>not be computed</em> (since it does not output emission, so by extension does not need reflection vector).</p><p><a
rel="nofollow"  href="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfaceShaderRim.png"><img
src="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfaceShaderRim-150x150.png" alt="Surface Shader: Rim Lighting" title="Surface Shader: Rim Lighting" width="150" height="150" class="alignright size-thumbnail wp-image-3240"/></a>As a small example, the shader above extended to do simple rim lighting:</p><pre> <span style="color:gray;">#pragma surface surf Lambert struct Input { float2 uv_MainTex; float2 uv_BumpMap;</span> float3 viewDir; <span style="color:gray;">}; sampler2D _MainTex; sampler2D _BumpMap;</span> float4 _RimColor; float _RimPower; <span style="color:gray;">void surf (Input IN, inout SurfaceOutput o) { o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb; o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));</span> half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal)); o.Emission = _RimColor.rgb * pow (rim, _RimPower); <span style="color:gray;">}</span>
</pre><p><strong>Vertex shader modifiers</strong></p><p><a
rel="nofollow"  href="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfaceShaderNormalExtrusion.png"><img
src="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfaceShaderNormalExtrusion-150x150.png" alt="Surface Shader: Normal Extrusion" title="Surface Shader: Normal Extrusion" width="150" height="150" class="alignright size-thumbnail wp-image-3241"/></a>It is possible to specify custom &#8220;vertex modifier&#8221; function that will be called at start of the generated vertex shader, to modify (or generate) per-vertex data. You know, vertex shader based tree wind animation, grass billboard extrusion and so on. It can also fill in any non-predefined values in the Input structure.</p><p>My favorite vertex modifier? Moving vertices along their normals.</p><p><strong>Custom Lighting Models</strong></p><p>There are a couple simple lighting models built-in, but it&#8217;s possible to specify your own. A lighting model is nothing more than a function that will be called with the filled SurfaceOutput structure and per-light parameters (direction, attenuation and so on). Different functions would have to be called in forward &#038; deferred rendering cases; and naturally the deferred one has much less flexibility. So for any fancy effects, it is possible to say &#8220;do not compile this shader for deferred&#8221;, in which case it will be rendered via forward rendering.</p><p><a
rel="nofollow"  href="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfWrapLambert.png"><img
src="http://blogs.unity3d.com/wp-content/uploads/2010/07/SurfWrapLambert-150x150.png" alt="Surface Shader: Wrapped Lambert lighting" title="Surface Shader: Wrapped Lambert lighting" width="150" height="150" class="alignright size-thumbnail wp-image-3242"/></a>Example of wrapped-Lambert lighting model:</p><pre> #pragma surface surf WrapLambert half4 LightingWrapLambert (SurfaceOutput s, half3 dir, half atten) { dir = normalize(dir); half NdotL = dot (s.Normal, dir); half diff = NdotL * 0.5 + 0.5; half4 c; c.rgb = s.Albedo * _LightColor0.rgb * (diff * atten * 2); c.a = s.Alpha; return c; } <span style="color:gray;">struct Input { float2 uv_MainTex; }; sampler2D _MainTex; void surf (Input IN, inout SurfaceOutput o) { o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb; }</span></pre><p><strong>Behind the scenes</strong></p><p>We&#8217;re using HLSL parser from Ryan Gordon&#8217;s <a
rel="nofollow"  href="http://hg.icculus.org/icculus/mojoshader/">mojoshader</a> to parse the original surface shader code and infer some things from the abstract syntax tree mojoshader produces. This way we can figure out what members are in what structures, go over function prototypes and so on. At this stage some error checking is done to tell the user his surface function is of wrong prototype, or his structures are missing required members &#8211; which is much better than failing with dozens of compile errors in the generated code later.</p><p>To figure out which surface shader inputs are <em>actually</em> used in the various lighting passes, we&#8217;re generating small dummy pixel shaders, compile them with Cg and use Cg&#8217;s API to query used inputs &#038; outputs. This way we can figure out, for example, that a normal map nor it&#8217;s texture coordinate is not actually used in Deferred Lighting final pass, and save some vertex shader instructions &#038; a texcoord interpolator.</p><p>The code that is ultimately generated is compiled with various shader compilers depending on the target platform (Cg for Windows/Mac, XDK HLSL for Xbox 360, PS3 Cg for PS3, and our own <a
rel="nofollow"  href="http://code.google.com/p/hlsl2glslfork/">fork of HLSL2GLSL</a> for iPhone, Android and upcoming <a
rel="nofollow"  href="http://blogs.unity3d.com/2010/05/19/google-android-and-the-future-of-games-on-the-web/">NativeClient port of Unity</a>).</p><p>So yeah, that&#8217;s it. We&#8217;ll see where this goes next, or what happens when Unity 3 will be released. I hope more folks will try to write shaders!</p><p><a
href=http://blogs.unity3d.com/2010/07/17/unity-3-technology-surface-shaders/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/17/unity-technologies-unity-3-technology-%e2%80%93-surface-shaders/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity 3 Feature Preview – Beast Lightmapping</title><link>http://www.bydesigngames.com/2010/07/15/unity-technologies-unity-3-feature-preview-%e2%80%93-beast-lightmapping/</link> <comments>http://www.bydesigngames.com/2010/07/15/unity-technologies-unity-3-feature-preview-%e2%80%93-beast-lightmapping/#comments</comments> <pubDate>Thu, 15 Jul 2010 14:55:23 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3227</guid> <description><![CDATA[Alright everyone, it&#8217;s the preview video that you&#8217;ve all been waiting for&#8230; Lightmapping in Unity 3! Senior QA Specialist Samantha Kalman and Demo Team Artist Roald Høyer-Hansen have put together a great introduction of how Beast has been seamlessly integrated into Unity. We hope you enjoy the preview video and are looking forward to all [...]]]></description> <content:encoded><![CDATA[<p>Alright everyone, it&#8217;s the preview video that you&#8217;ve all been waiting for&#8230; Lightmapping in Unity 3!</p><p>Senior QA Specialist Samantha Kalman and Demo Team Artist Roald Høyer-Hansen have put together a great introduction of how Beast has been seamlessly integrated into Unity. We hope you enjoy the preview video and are looking forward to all the beautiful scenes people will create using Unity 3&#8217;s new lightmapping features!</p><p><iframe
class="embeddedvideo" src='http://vimeo.com/moogaloop.swf?clip_id=13361651&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1' type='application/x-shockwave-flash' width='640' height='360'></iframe><br
/></p><p><a
href=http://blogs.unity3d.com/2010/07/15/unity-3-feature-preview-beast-lightmapping/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/15/unity-technologies-unity-3-feature-preview-%e2%80%93-beast-lightmapping/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] links for 2010-07-15</title><link>http://www.bydesigngames.com/2010/07/15/infiniteunity3d-links-for-2010-07-15/</link> <comments>http://www.bydesigngames.com/2010/07/15/infiniteunity3d-links-for-2010-07-15/#comments</comments> <pubDate>Thu, 15 Jul 2010 12:03:05 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/links-for-2010-07-15/</guid> <description><![CDATA[First Impressions of Unity 3 &#124; MindTheCube
I finally got access to the Unity 3.0 preview build last weekend, and was able to spend a couple of hours with it. My goal for the session was to add a lightmap to my A Tack game. Here&#039;s how it went.
(t...]]></description> <content:encoded><![CDATA[<p></p><ul
class="delicious"><li><div
class="delicious-link"><a
rel="nofollow"  href="http://www.mindthecube.com/blog/2010/07/first-impressions-of-unity-3">First Impressions of Unity 3 | MindTheCube</a></div><div
class="delicious-extended">I finally got access to the Unity 3.0 preview build last weekend, and was able to spend a couple of hours with it. My goal for the session was to add a lightmap to my A Tack game. Here&#039;s how it went.</div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/unity3d">unity3d</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/mind_the_cube">mind_the_cube</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://bradkeys.com/index.php?p=home&amp;articleId=9">Brad Keys&#039; Game Development Blog :: Home</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/mondocloud">mondocloud</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/unity3d">unity3d</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/dimerocker">dimerocker</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/brad_keys">brad_keys</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://danhon.com/2010/07/13/gamification-how-games-are-everywhere/">Extenuating Circumstances – Gamification: How Games Are Everywhere</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamification">gamification</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/unity3d">unity3d</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/marvelopers">marvelopers</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://www.fastcompany.com/1669932/behavioral-videogames">Video Games Modifying Behavior Towards Good | Fast Company</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/behavior">behavior</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/psychology">psychology</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/psych">psych</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://fcinf.com/v/a6oz/welcome">Please help Infinite Unity3D in the 2010 FastCompany most influential online We&#039;re in the top 5 percentile</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/unity3d">unity3d</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/indie">indie</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/games">games</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/marvelopers">marvelopers</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://www.gamasutra.com/view/feature/5893/the_real_cost_of_marketing_your_.php">Gamasutra &#8211; Features &#8211; The Real Cost Of Marketing Your Game With Social Media</a></div><div
class="delicious-extended">Leveraging social media to engage gamers and respond to events as they arise can be a difficult task to do effectively &#8212; but in the second part of his social media marketing series, Duane Brown tackles the methodology.]</div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/marvelopers">marvelopers</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://www.gamasutra.com/view/news/29433/Unity_Technologies_Unite_2010_Conference_Set_For_Montreal_In_November.php">Gamasutra &#8211; News &#8211; Unity Technologies&#039; Unite 2010 Conference Set For Montreal In November</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/unity">unity</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/unite2010">unite2010</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/montreal">montreal</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://indie-fund.com/">Indie Fund</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/indie">indie</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://techcrunch.com/2010/07/10/google-secretly-invested-100-million-in-zynga-preparing-to-launch-google-games/">Google Secretly Invested $100+ Million In Zynga, Preparing To Launch Google Games</a></div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://www.gamesetwatch.com/2010/07/nike_promotes_shoes_with_digit.php?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+gamesetwatch+(GameSetWatch)&amp;utm_content=Google+Reader">GameSetWatch &#8211; Nike Promotes Shoes With Digital Pinball Machines</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/unity3d">unity3d</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/nike">nike</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://www.metafilter.com/93714/Swan-dive-Into-interactive-TV-commercials">Swan dive! Into interactive TV commercials. | MetaFilter</a></div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/interactivedev">interactivedev</a>)</div></li><li><div
class="delicious-link"><a
rel="nofollow"  href="http://danhon.com/2010/07/14/how-to-get-great-drama-and-performances-in-video-games/comment-page-1/#comment-1646">Extenuating Circumstances – How to get great drama and performances in video games</a></div><div
class="delicious-extended">Excellent insight</div><div
class="delicious-tags">(tags: <a
rel="nofollow"  href="http://delicious.com/diamondtearz/gamedev">gamedev</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/indie">indie</a> <a
rel="nofollow"  href="http://delicious.com/diamondtearz/cinema">cinema</a>)</div></li></ul> No tags for this post.<h4>Related posts</h4><ul
class="st-related-posts"><li>No related posts.</li></ul><p><a
href=http://infiniteunity3d.com/links-for-2010-07-15/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/15/infiniteunity3d-links-for-2010-07-15/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Play Games Online</title><link>http://www.bydesigngames.com/2010/07/15/unify-wiki-play-games-online/</link> <comments>http://www.bydesigngames.com/2010/07/15/unify-wiki-play-games-online/#comments</comments> <pubDate>Thu, 15 Jul 2010 11:42:35 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: New page: We are happy to present fun games free of charge for your entertainment: [http://enardy.com/ Нарды Скачать], [http://playway.ru/ Мини-игры], [http://smariogame.com/ Sup...We are happy to present fun games free o...]]></description> <content:encoded><![CDATA[<p>Summary: New page: We are happy to present fun games free of charge for your entertainment: [http://enardy.com/ Нарды Скачать], [http://playway.ru/ Мини-игры], [http://smariogame.com/ Sup...</p><hr
/><div>We are happy to present fun games free of charge for your entertainment: [http://enardy.com/ Нарды Скачать], [http://playway.ru/ Мини-игры], [http://smariogame.com/ Super Mario Bros], [http://en.enardy.com/ Download and Play Backgammon Game]. Welcome to our web-sites to download and have a lot of fun!</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Play_Games_Online>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/15/unify-wiki-play-games-online/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Are You more Influential Than Infinite Unity3D? He&#8217;s at 96th Percentile</title><link>http://www.bydesigngames.com/2010/07/15/infiniteunity3d-are-you-more-influential-than-infinite-unity3d-hes-at-96th-percentile/</link> <comments>http://www.bydesigngames.com/2010/07/15/infiniteunity3d-are-you-more-influential-than-infinite-unity3d-hes-at-96th-percentile/#comments</comments> <pubDate>Thu, 15 Jul 2010 01:51:58 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9159</guid> <description><![CDATA[Please help me in the FastCompany Influence online competition. Last check I&#8217;m in the 73rd percentile. Please help me place!
This page will auto redirect you to the fastcompany page.
No tags for this post. Related posts  No related posts. ]]></description> <content:encoded><![CDATA[<p></p><p>Please help me in the FastCompany Influence online competition. Last check I&#8217;m in the 73rd percentile. Please help me place!</p><p>This page will auto redirect you to the fastcompany page.</p> No tags for this post.<h4>Related posts</h4><ul
class="st-related-posts"><li>No related posts.</li></ul><p><a
href=http://infiniteunity3d.com/please-click-the-fastcompany-influence-project-if-influenced-by-diamondtearz-or-infinite-unity3d/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/15/infiniteunity3d-are-you-more-influential-than-infinite-unity3d-hes-at-96th-percentile/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Save the date for Unite 2010!</title><link>http://www.bydesigngames.com/2010/07/14/unity-technologies-save-the-date-for-unite-2010/</link> <comments>http://www.bydesigngames.com/2010/07/14/unity-technologies-save-the-date-for-unite-2010/#comments</comments> <pubDate>Wed, 14 Jul 2010 15:02:25 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3167</guid> <description><![CDATA[Yup, you read that right, it&#8217;s that time of year again, the time to get yourself ready for this year&#8217;s edition of our annual developer&#8217;s conference, Unite 2010!
Unite 2010
November 10-12, 2010
Montreal, Quebec Canada
Once again, Unite 2010 will bring artists, programmers, designers, researchers, publishers, and other Unity enthusiasts from around the world together for three intense [...]]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow" title="Unite 2010: Save The Date - Nov. 10-12, 2010"  href="http://unity3d.com/unite/"><img
class="aligncenter size-full wp-image-3169" title="Unite 2010: Save The Date - Nov. 10-12, 2010" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/unite10.jpg" alt="unite10" width="650" height="240"/></a></p><p
style="text-align:justify;">Yup, you read that right, it&#8217;s that time of year again, the time to get yourself ready for this year&#8217;s edition of our annual developer&#8217;s conference, Unite 2010!</p><h2><strong>Unite 2010</strong><br
/> <span
style="font-weight:normal;font-size:13px;">November 10-12, 2010</span><br
/> <span
style="font-weight:normal;font-size:13px;">Montreal, Quebec Canada</span></h2><p
style="text-align:justify;">Once again, <strong>Unite 2010</strong> will bring artists, programmers, designers, researchers, publishers, and other Unity enthusiasts from around the world together for three intense days of learning and networking. The conference will be held on November 10-12, 2010 at the <a
rel="nofollow" style="color:black;text-decoration:underline;"  href="http://www.marchebonsecours.qc.ca/en/index.html">Marché Bonsecours</a> in Montreal, Canada. A detailed agenda is on the way, but tickets are on sale now! Early Bird pricing lasts until September 10th and during that time tickets are only $300, after the Early Bird pricing expires tickets will be $400. If you&#8217;re just that eager then go for it and buy your tickets to <strong>Unite 2010</strong> today!</p><p
style="text-align:justify;"><a
rel="nofollow"  href="http://unity3d.com/shop/unite"><strong>Purchase Tickets</strong></a></p><p
style="text-align:justify;">If you&#8217;re at all like me then you&#8217;re out there wanting more information, a <em>lot</em> more information! Well, we don&#8217;t have everything sorted just yet but I can point you to the early information that we do have. First let me point you to the press release that we put out just this morning that announced <strong>Unite 2010</strong> with some important information and a few great quotes:</p><p
style="text-align:justify;"><a
rel="nofollow" title="Unity Technologies Announces Unite 2010"  href="http://unity3d.com/company/news/unite2010-press.html">Unity Technologies Announces Unite 2010, It&#8217;s 4th Annual Developer Conference</a></p><p
style="text-align:justify;">After reading the press release you should hop on over to our website for additional information about the conference:</p><p
style="text-align:justify;"><a
rel="nofollow" title="Unite 2010: Save The Date - Nov. 10-12, 2010"  href="http://unity3d.com/unite/">Unite 2010: Save The Date</a></p><p
style="text-align:justify;">Our website has information about <strong>Unite 2010</strong>, including information about where the conference is being held and travel information to help get you there. Our website also touches on the conference agenda which is still in development, but with that comes the opportunity for members of the community (that&#8217;s you!) to submit your own presentation proposals as we have an open call for speakers!</p><p
style="text-align:justify;"><a
rel="nofollow" title="Unite 2010: Call for Speakers"  href="http://unity3d.com/unite/call-for-speakers">Unite 2010: Call for Speakers</a></p><p
style="text-align:justify;"></p><p
style="text-align:justify;">I have no doubts in my mind, <strong>Unite 2010</strong> is going to be another incredible week during which we&#8217;ll get to hang out together, to Unite to share our passion for Unity. Be there!</p><p
style="text-align:justify;"></p><p
style="text-align:justify;"><a
rel="nofollow" title="Find Unite 2010 on Facebook"  href="http://www.facebook.com/"><img
class="alignleft size-full wp-image-3178" title="Find Unite 2010 on Facebook" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/facebook16.jpg" alt="Find Unite 2010 on Facebook" width="20" height="20"/></a></p><p
style="text-align:justify;"><a
rel="nofollow" title="Follow Unite 2010 on Twitter: #unite2010"  href="http://twitter.com/search?q=%23unite2010"><img
class="alignleft size-full wp-image-3179" title="Follow Unite 2010 on Twitter: #unite2010" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/twitter16.jpg" alt="Follow Unite 2010 on Twitter: #unite2010" width="20" height="20"/></a></p><p><a
href=http://blogs.unity3d.com/2010/07/14/save-the-date-unite-2010/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/14/unity-technologies-save-the-date-for-unite-2010/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Volumetric Light Tests in Unity 3</title><link>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-volumetric-light-tests-in-unity-3/</link> <comments>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-volumetric-light-tests-in-unity-3/#comments</comments> <pubDate>Tue, 13 Jul 2010 14:24:23 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9151</guid> <description><![CDATA[A small test with the new sunshafts image effect in Unity 3 Pro. The camera also uses the new Vignetting image effect, with some slight chromatic aberration.
Tags: Unity 3, volumetric light tests Related posts  Unity 3.0 Preview! (0) Unity 3.0 Feature...]]></description> <content:encoded><![CDATA[<p></p><p>A small test with the new sunshafts image effect in Unity 3 Pro. The camera also uses the new Vignetting image effect, with some slight chromatic aberration.</p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/ZnxKld4ssUk&#038;fs=1" type="application/x-shockwave-flash" width="550" height="438"></iframe></p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-3/" title="Unity 3">Unity 3</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/volumetric-light-tests/" title="volumetric light tests">volumetric light tests</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-preview/" title="Unity 3.0 Preview! (March 9, 2010)">Unity 3.0 Preview!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-feature-preview-audio-effects-distance-filters/" title="Unity 3.0 Feature Preview : Audio Effects- Distance, Filters (June 25, 2010)">Unity 3.0 Feature Preview : Audio Effects- Distance, Filters</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-asset-management-preview/" title="Unity 3 Asset Management Preview (June 15, 2010)">Unity 3 Asset Management Preview</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/realtime-cloth-physics-and-mod-music-using-unity-3-0-from-decane-games/" title="Realtime cloth physics and mod music using Unity 3.0 from Decane Games (July 5, 2010)">Realtime cloth physics and mod music using Unity 3.0 from Decane Games</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/pre-order-unity-3-0-now/" title="Pre Order Unity 3.0 Now (May 27, 2010)">Pre Order Unity 3.0 Now</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/volumetric-light-tests-in-unity-3/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-volumetric-light-tests-in-unity-3/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Get Your Game on Facebook in 5 Minutes with dimeRocker.</title><link>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-get-your-game-on-facebook-in-5-minutes-with-dimerocker/</link> <comments>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-get-your-game-on-facebook-in-5-minutes-with-dimerocker/#comments</comments> <pubDate>Tue, 13 Jul 2010 14:15:56 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9150</guid> <description><![CDATA[In this guided video tutorial you&#8217;ll learn how to use dimeRocker to deploy your online game to Facebook in under 5 minuets!
WHAT IS DIMEROCKER?
Total turn-key web solution to unleash your game on social networks.
dimeRocker offers scalable hostin...]]></description> <content:encoded><![CDATA[<p></p><p>In this guided video tutorial you&#8217;ll learn how to use <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/dimerocker/" class="st_tag internal_tag" title="Posts tagged with dimeRocker">dimeRocker</a> to deploy your online game to <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/facebook/" class="st_tag internal_tag" title="Posts tagged with facebook">Facebook</a> in under 5 minuets!</p><p>WHAT IS <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/dimerocker/" class="st_tag internal_tag" title="Posts tagged with dimeRocker">DIMEROCKER</a>?</p><p>Total turn-key web solution to unleash your game on social networks.</p><p><a
rel="nofollow"  href="http://infiniteunity3d.com/tag/dimerocker/" class="st_tag internal_tag" title="Posts tagged with dimeRocker">dimeRocker</a> offers scalable hosting and the ability to easily integrate&#8230;<br
/> * Leaderboards &#038; Achievements<br
/> * Marketplace &#038; Microtransactions<br
/> * Social Hooks &#038; Analytics<br
/> * Community, Feedback&#8230; and much much more!</p><p>No more web coding or setup &#8211; you just focus on making great games.</p><p>Best of all its free to get your game live now!</p><p>For more info email us at support [at] <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/dimerocker/" class="st_tag internal_tag" title="Posts tagged with dimeRocker">dimerocker</a>.com</p><p><a
rel="nofollow"  href="http://dimerocker.com">http://dimerocker.com</a></p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/dKW4oCBT8wI&#038;fs=1" type="application/x-shockwave-flash" width="550" height="438"></iframe></p><p>Read more about <a
rel="nofollow"  href="http://dimerocker.com/blog/dimerocker-video-tutorial-how-put-your-game-facebook-under-5-minutes">dimeRocker and facebook integration</a></p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/dimerocker/" title="dimeRocker">dimeRocker</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/facebook/" title="facebook">facebook</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/indie-viral/" title="indie viral">indie viral</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/monetization/" title="monetization">monetization</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/social-games/" title="Social Games">Social Games</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-integration/" title="unity integration">unity integration</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/next-gen-social-gaming-platform-announced-at-g-star-2009/" title="Next-Gen Social Gaming Platform Announced at G-Star 2009 (November 30, 2009)">Next-Gen Social Gaming Platform Announced at G-Star 2009</a> (1)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/dimerocker-facebook-and-unity-platform-in-the-press/" title="dimeRocker Facebook and Unity Platform in the Press (February 4, 2010)">dimeRocker Facebook and Unity Platform in the Press</a> (4)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/dimerocker-unity-social-gaming-toolkit-tutorials-from-waddlefarm-studios-coming-soon/" title="dimeRocker &#8211; Unity Social Gaming Toolkit tutorials from Waddlefarm Studios coming soon! (February 8, 2010)">dimeRocker &#8211; Unity Social Gaming Toolkit tutorials from Waddlefarm Studios coming soon!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/connecting-unity-3d-with-the-outside/" title="Connecting Unity 3D With the outside (May 12, 2010)">Connecting Unity 3D With the outside</a> (18)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-and-facebook-what-are-the-possibilities/" title="Unity 3D and Facebook- Paradise Paintball (March 17, 2009)">Unity 3D and Facebook- Paradise Paintball</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/get-your-game-on-facebook-in-5-minutes-with-dimerocker/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-get-your-game-on-facebook-in-5-minutes-with-dimerocker/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Unity 3.0 Feature Preview: Cloth Physics with Will Goldstone</title><link>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-unity-3-0-feature-preview-cloth-physics-with-will-goldstone/</link> <comments>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-unity-3-0-feature-preview-cloth-physics-with-will-goldstone/#comments</comments> <pubDate>Tue, 13 Jul 2010 14:10:15 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9149</guid> <description><![CDATA[In this Unity 3.0 preview Will Goldstone goes through a few of the new things you can do with Cloth Physics such as Tearing, Collisions, Pressure, and Soft Bodies.
Check out the other preview videos at Unity 3 What we know so far and read more about ...]]></description> <content:encoded><![CDATA[<p></p><p>In this Unity 3.0 preview <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/will-goldstone/" class="st_tag internal_tag" title="Posts tagged with will goldstone">Will Goldstone</a> goes through a few of the new things you can do with Cloth <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/physics/" class="st_tag internal_tag" title="Posts tagged with Physics">Physics</a> such as Tearing, Collisions, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/pressure/" class="st_tag internal_tag" title="Posts tagged with Pressure">Pressure</a>, and Soft Bodies.</p><p></p><p>Check out the other preview videos at <a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-what-we-know-so-far/">Unity 3 What we know so far</a> and read more about Cloth <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/physics/" class="st_tag internal_tag" title="Posts tagged with Physics">Physics</a> on the <a
rel="nofollow"  href="http://blogs.unity3d.com/2010/07/13/unity-3-feature-preview-%E2%80%93-cloth-physics/">Unity Technologies Blog </a>.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/cloth-physics/" title="cloth physics">cloth physics</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/collisions/" title="Collisions">Collisions</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/physics/" title="Physics">Physics</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/pressure/" title="Pressure">Pressure</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/soft-bodies/" title="Soft Bodies">Soft Bodies</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-3-preview/" title="unity 3 preview">unity 3 preview</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/what-we-know-so-far/" title="what we know so far">what we know so far</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/will-goldstone/" title="will goldstone">will goldstone</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/wind-simulation-with-modifiers-and-wow-engine/" title="Wind simulation with modifiers and WOW Engine (December 8, 2008)">Wind simulation with modifiers and WOW Engine</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/vehicle-rig-car-demo-from-alabsoftware/" title="Vehicle Rig Car Demo from ALabSoftware (May 18, 2010)">Vehicle Rig Car Demo from ALabSoftware</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/vehicle-physics-and-exporter-test/" title="Vehicle Physics and Exporter Test (May 1, 2010)">Vehicle Physics and Exporter Test</a> (1)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-race-game-tutorial/" title="Unity3D Race Game Tutorial (February 18, 2010)">Unity3D Race Game Tutorial</a> (2)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-physics/" title="Unity3D Physics Infinite List (March 24, 2009)">Unity3D Physics Infinite List</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/unity-3-0-feature-preview-cloth-physics-with-will-goldstone/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-unity-3-0-feature-preview-cloth-physics-with-will-goldstone/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity 3 Feature Preview – Cloth Physics</title><link>http://www.bydesigngames.com/2010/07/13/unity-technologies-unity-3-feature-preview-%e2%80%93-cloth-physics/</link> <comments>http://www.bydesigngames.com/2010/07/13/unity-technologies-unity-3-feature-preview-%e2%80%93-cloth-physics/#comments</comments> <pubDate>Tue, 13 Jul 2010 13:13:35 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3158</guid> <description><![CDATA[And the preview videos keep rolling in! We&#8217;re running a little behind on the Beast lightmapping video, but until then take a look at some of the new Cloth Physics features in Unity 3. Will Goldstone is back giving us a brief tour of just a few of the things you can do with Cloth [...]]]></description> <content:encoded><![CDATA[<p>And the preview videos keep rolling in! We&#8217;re running a little behind on the <a
rel="nofollow"  href="http://www.illuminatelabs.com/products/beast">Beast</a> lightmapping video, but until then take a look at some of the new Cloth Physics features in Unity 3. <a
rel="nofollow"  href="http://www.willgoldstone.com/">Will Goldstone</a> is back giving us a brief tour of just a few of the things you can do with Cloth such as Tearing, Self-Collisions, Pressure, and Soft Bodies.</p><p><iframe
class="embeddedvideo" src='http://vimeo.com/moogaloop.swf?clip_id=13294411&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1' type='application/x-shockwave-flash' width='640' height='360'></iframe><br
/></p><p><a
href=http://blogs.unity3d.com/2010/07/13/unity-3-feature-preview-%E2%80%93-cloth-physics/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/13/unity-technologies-unity-3-feature-preview-%e2%80%93-cloth-physics/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Unity is a Game Changer!</title><link>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-unity-is-a-game-changer/</link> <comments>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-unity-is-a-game-changer/#comments</comments> <pubDate>Tue, 13 Jul 2010 02:27:49 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9147</guid> <description><![CDATA[Unity is a game changer&#8230; Read about it in Develop Magazine
Open publication &#8211; Free publishing &#8211; More videogames
Tags: Develop Magazine, Game Develop, Unity Game Changer Related posts  No related posts. ]]></description> <content:encoded><![CDATA[<p></p><p>Unity is a game changer&#8230; Read about it in Develop Magazine</p><div><iframe
class="embeddedvideo" src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash"/><div
style="width:420px;text-align:left;"><a
rel="nofollow"  href="http://issuu.com/Develop/docs/dev106_web?mode=embed&amp;layout=http://skin.issuu.com/v/light/layout.xml&amp;showFlipBtn=true">Open publication</a> &#8211; Free <a
rel="nofollow"  href="http://issuu.com">publishing</a> &#8211; <a
rel="nofollow"  href="http://issuu.com/search?q=videogames">More videogames</a></div></div> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/develop-magazine/" title="Develop Magazine">Develop Magazine</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/game-develop/" title="Game Develop">Game Develop</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-game-changer/" title="Unity Game Changer">Unity Game Changer</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li>No related posts.</li></ul><p><a
href=http://infiniteunity3d.com/unity-is-a-game-changer/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-unity-is-a-game-changer/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] What&#8217;s better than 30% off 3rd Persons Cameras at Unity Prefabs? Another 8% off with &#8216;TheNotSoInfiniteDiscountCode&#8217;</title><link>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-whats-better-than-30-off-3rd-persons-cameras-at-unity-prefabs-another-8-off-with-thenotsoinfinitediscountcode/</link> <comments>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-whats-better-than-30-off-3rd-persons-cameras-at-unity-prefabs-another-8-off-with-thenotsoinfinitediscountcode/#comments</comments> <pubDate>Tue, 13 Jul 2010 00:13:11 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9144</guid> <description><![CDATA[Unity Prefabs is having a 30% Sale on 3rd Person Cameras and 30% off 3D Volume-Steam for Unity Game Developers. Not good enough?!?! Drop by now and for a limited time you&#8217;ll get another 8% off courtesy of Infinite Unity3D. Use &#8216;TheNotSoInfi...]]></description> <content:encoded><![CDATA[<p></p><p>Unity Prefabs is having a 30% Sale on 3rd Person Cameras and 30% off 3D Volume-Steam for Unity Game Developers. Not good enough?!?! Drop by now and for a limited time you&#8217;ll get another 8% off courtesy of Infinite Unity3D. Use &#8216;<strong>TheNotSoInfiniteDicountCode</strong>&#8216; when you make your <a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?cl=98829&amp;c=ib&amp;aff=119929">3rd Person Camera for iPhone</a> Prefab or <a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?cl=98829&amp;c=ib&amp;aff=119929">3D Volume Steam Prefab</a> purchase and drop another 8% of the price! Hurry! <strong>The NotSoInfiniteDiscountCode Expires on Saturday !</strong></p><div><a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?cl=98829&amp;c=ib&amp;aff=119929"><img
style="border:0px initial initial;" src="http://gallery.mailchimp.com/7d749cca378bfb227c2b86a76/images/UP_header.jpg" border="0" alt="Unity Prefabs [dot] com" width="600" height="150"/></a></div><p>New Prefabs this Week:</p><p>Were you expecting an email from us!?<br
/> Yep, we have some new prefabs hot-off-the-press again for you this week!</p><p><a
rel="nofollow"  href="http://unityprefabs.us1.list-manage1.com/track/click?u=7d749cca378bfb227c2b86a76&amp;id=1ab2ad423a&amp;e=dc036b87a5"><img
src="http://gallery.mailchimp.com/7d749cca378bfb227c2b86a76/images/Screen_shot_2010_07_12_at_8.07.31_AM.png" border="0" alt="iPhone 3RD Person Preview" width="600" height="351"/></a></p><p><span
style="font-family:Georgia;color:#000000;font-size:medium;"><strong>3RD PERSON CAM FOR iPHONE (30% off this week)<br
/> </strong></span></p><p>We&#8217;re succeeding in our quest to make all our prefabs iPhone ready. Here&#8217;s another milestone: A 3rd Person Player Camera Kit for iPhone. Simular to the camera in Gears of War / Tomb Raider, etc. There&#8217;s two joysticks to control the character and extra action buttons that you can use for whatever purpose your game needs!</p><p><a
rel="nofollow"  href="http://unityprefabs.us1.list-manage.com/track/click?u=7d749cca378bfb227c2b86a76&amp;id=463dd98330&amp;e=dc036b87a5"><img
src="http://www.unityprefabs.com/galleries/specialfx/volumesteam/001.jpg" border="0" alt="Volume-Steam Preview" width="600" height="406"/></a></p><p><span
style="font-family:Georgia;color:#000000;font-size:medium;"><strong>HOT! HOT HOT! (Literally!) </strong><strong>(30% off this week)</strong></span></p><p>Our <a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?cl=98829&amp;c=ib&amp;aff=119929">3D Volume-Steam pack</a> will heat up your level instantly. Think: lava levels, industrial environments, magical effects &amp; swamps. Created by one of our top artists, this pack will provide your levels with an A+ boost of particles goodness!</p><p><a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?cl=98829&amp;c=ib&amp;aff=119929">Both prefabs discounted 30% </a><strong><a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?cl=98829&amp;c=ib&amp;aff=119929">only this week</a></strong><a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?cl=98829&amp;c=ib&amp;aff=119929">!</a><br
/> Weekly discounts end on Fridays.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/tornado-twins/" title="#stepbystepgamedevelopment with the @TornadoTwins">#stepbystepgamedevelopment with the @TornadoTwins</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-game-assets/" title="Unity Game Assets">Unity Game Assets</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-game-engine/" title="unity game engine">unity game engine</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-prefabs/" title="Unity Prefabs">Unity Prefabs</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-scripting-basics-tutorial/" title="Unity3d: Scripting basics tutorial (December 30, 2009)">Unity3d: Scripting basics tutorial</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-engine-3-new-features-audio-features-by-tornado-twins/" title="Unity Engine 3 New Features: Audio Features by Tornado Twins (July 7, 2010)">Unity Engine 3 New Features: Audio Features by Tornado Twins</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-terrain-start-finish/" title="Unity 3D Terrain :Start To Finish (November 28, 2009)">Unity 3D Terrain :Start To Finish</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-connecting/" title="Unity 3D Connecting with the outside and Social Gaming Platforms (November 16, 2009)">Unity 3D Connecting with the outside and Social Gaming Platforms</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/tornado-twins-26-adding-explosions-to-your-game/" title="Tornado Twins #26 &#8211; Adding Explosions to your Game (March 29, 2010)">Tornado Twins #26 &#8211; Adding Explosions to your Game</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/whats-better-than-30-off-3rd-persons-cameras-at-unity-prefabs-another-8-off-with-thenotsoinfinitediscountcode/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/13/infiniteunity3d-whats-better-than-30-off-3rd-persons-cameras-at-unity-prefabs-another-8-off-with-thenotsoinfinitediscountcode/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] MinimapCamera</title><link>http://www.bydesigngames.com/2010/07/12/unify-wiki-minimapcamera/</link> <comments>http://www.bydesigngames.com/2010/07/12/unify-wiki-minimapcamera/#comments</comments> <pubDate>Mon, 12 Jul 2010 19:31:36 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: Reverted edits by [[Special:Contributions/ZairaSimon&#124;ZairaSimon]] ([[User_talk:ZairaSimon&#124;Talk]]); changed back to last version by [[User:Stringbot&#124;Stringbot]]== Description ==
This script can be attached to a camera to provide some basic mi...]]></description> <content:encoded><![CDATA[<p>Summary: Reverted edits by [[Special:Contributions/ZairaSimon|ZairaSimon]] ([[User_talk:ZairaSimon|Talk]]); changed back to last version by [[User:Stringbot|Stringbot]]</p><hr
/><div>== Description ==<br
/> This script can be attached to a camera to provide some basic minimap functionality such as zooming and a full-screen toggle. It should be noted that this was developed to work in combination with a standard TPS view and AI pathfinder, so if you wish to use it in other contexts, it will require some tweaking.<br
/> <br
/> Developed by stringbot. Feel free to update/improve/fix the code and add yourself to this line.<br
/> == Usage ==<br
/> This script should be attached to a Camera GameObject. After this, the correct values need to be set in the inspector. You'll also need to configure two inputs: a "MinimapToggle" button and a "Mouse Wheel" axis.<br
/> <br
/> * '''Target:''' The object to track.<br
/> * '''Scroll Sensitivity:''' How fast to move in and out whilst zooming.<br
/> * '''Max Height:''' How high the camera can go above the target.<br
/> * '''Min Height:''' The closest that the camera can get to the target.<br
/> * '''Rotate With Target:''' Should the map rotate when the target does?<br
/> <br
/> == Bugs ==<br
/> None that I'm aware of. Feel free to correct me here!<br
/> <br
/> ==JavaScript - MinimapCamera.js==<br
/> &lt;javascript&gt;// Target for the minimap.<br
/> var target : GameObject;<br
/> <br
/> // Default height to view from.<br
/> private var height = 30;<br
/> <br
/> // Is the map currently open?<br
/> static var mapOpen = false;<br
/> <br
/> // How much should we move for each small movement on the mouse wheel?<br
/> var scrollSensitivity = 3;<br
/> <br
/> // Maximum and minimum heights that the camera can reach.<br
/> var maxHeight = 80;<br
/> var minHeight = 5;<br
/> <br
/> // Should the minimap rotate with the player?<br
/> var rotateWithTarget = true;<br
/> <br
/> function Start() {<br
/> Screen.lockCursor = true;<br
/> height = PlayerPrefs.GetInt("MinimapCameraHeight");<br
/> }<br
/> <br
/> // Where the action is :D<br
/> function Update () {<br
/> <br
/> // If the minimap button is pressed then toggle the map state.<br
/> if(Input.GetButtonDown("MinimapToggle")) {<br
/> toggleMinimap();<br
/> }<br
/> <br
/> // Update the transformation of the camera as per the target's position.<br
/> transform.position.x = target.transform.position.x;<br
/> transform.position.z = target.transform.position.z;<br
/> // For this, we add the predefined (but variable, see below) height var.<br
/> transform.position.y = target.transform.position.y + height; <br
/> <br
/> // If the minimap should rotate as the target does, the rotateWithTarget var should be true.<br
/> // An extra catch because rotation with the fullscreen map is a bit weird.<br
/> if(rotateWithTarget &amp;&amp; !mapOpen) {<br
/> transform.eulerAngles.y = target.transform.eulerAngles.y;<br
/> }<br
/> <br
/> // Get the movement of the mouse wheel as an axis. <br
/> // Needs configuring in your project's input setup.<br
/> var mw : float = Input.GetAxis("Mouse Wheel");<br
/> <br
/> // If the value is positive, add the height as defined by the sensitivity.<br
/> // Also, save the height to player prefs in both cases with the call to saveHeight().<br
/> if(mw &gt; 0 &amp;&amp; height &lt; maxHeight) {<br
/> height += scrollSensitivity;<br
/> saveHeight();<br
/> } <br
/> // Opposite for negative, just sub the value instead.<br
/> else if(mw &lt; 0 &amp;&amp; height &gt; minHeight) {<br
/> height -= scrollSensitivity;<br
/> saveHeight();<br
/> }<br
/> <br
/> }<br
/> <br
/> <br
/> // Function to open/close the minimap.<br
/> function toggleMinimap() {<br
/> if(!mapOpen) {<br
/> // Set the camera to use the entire screen.<br
/> camera.rect = Rect (0,0,1,1);<br
/> // Update the global so other scripts can know.<br
/> mapOpen = true;<br
/> // Unlock the cursor for proper point/click navigation.<br
/> Screen.lockCursor = false;<br
/> // Update the relevant PlayerPref key, could be useful for persistence.<br
/> PlayerPrefs.SetInt("mapOpen",1);<br
/> }<br
/> else {<br
/> // Set the camera to use a small portion of the screen.<br
/> camera.rect = Rect (0.8,0.8,1,1);<br
/> // Update the global so other scripts can know.<br
/> mapOpen = false;<br
/> // Lock the cursor for TPS control.<br
/> Screen.lockCursor = true;<br
/> // Update the relevant PlayerPref key, could be useful for persistence.<br
/> PlayerPrefs.SetInt("mapOpen",0);<br
/> }<br
/> <br
/> // Debug print the current state of the map.<br
/> print("mapOpen = " + mapOpen);<br
/> <br
/> }<br
/> <br
/> // Method to store the height of the camera as a PlayerPref.<br
/> function saveHeight() {<br
/> PlayerPrefs.SetInt("MinimapCameraHeight",height);<br
/> }&lt;/javascript&gt;<br
/> <br
/> [[Category: JavaScript]][[Category: Camera Controls]]</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=MinimapCamera>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/12/unify-wiki-minimapcamera/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Community Project: RGS</title><link>http://www.bydesigngames.com/2010/07/11/unify-wiki-community-project-rgs/</link> <comments>http://www.bydesigngames.com/2010/07/11/unify-wiki-community-project-rgs/#comments</comments> <pubDate>Sun, 11 Jul 2010 10:59:55 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:== Rouhee - Games SkyBuilder ==This is a project was cancelled for the insufficient amount of time.[[Image:SkyBuilder-Cartoon.jpg]]===Few terms:===
* No support!
* Shared as is!
* You may do anything you like with it, as long as you do...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>== Rouhee - Games SkyBuilder ==<br
/> <br
/> This is a project was cancelled for the insufficient amount of time.<br
/> <br
/> [[Image:SkyBuilder-Cartoon.jpg]]<br
/> <br
/> ===Few terms:===<br
/> * No support!<br
/> * Shared as is!<br
/> * You may do anything you like with it, as long as you don't sell it as your own.<br
/> <br
/> ----<br
/> <br
/> YouTube video:<br
/> [http://bit.ly/93ijEp http://www.youtube.com/watch?v=uZBU2wP-SyQ]<br
/> <br
/> Project Files:<br
/> [http://bit.ly/dbnV0G http://rouheegames.com/skybuilder/skybuilder.zip]</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Community_Project:_RGS>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/11/unify-wiki-community-project-rgs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] ReliefSpecular</title><link>http://www.bydesigngames.com/2010/07/10/unify-wiki-reliefspecular/</link> <comments>http://www.bydesigngames.com/2010/07/10/unify-wiki-reliefspecular/#comments</comments> <pubDate>Sat, 10 Jul 2010 21:01:02 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: New page: [[Category: Unity 2.x shaders]] [[Category: Cg shaders]] [[Category: Pixel lit shaders]] Author: [[User:Slin&#124;Nils Daumann]]. ==Description== [[Image:Reliefspecular.PNG&#124;thumb&#124;The shader i...[[Category: Unity 2.x shaders]]
[[Category...]]></description> <content:encoded><![CDATA[<p>Summary: New page: [[Category: Unity 2.x shaders]] [[Category: Cg shaders]] [[Category: Pixel lit shaders]] Author: [[User:Slin|Nils Daumann]]. ==Description== [[Image:Reliefspecular.PNG|thumb|The shader i...</p><hr
/><div>[[Category: Unity 2.x shaders]]<br
/> [[Category: Cg shaders]]<br
/> [[Category: Pixel lit shaders]]<br
/> <br
/> Author: [[User:Slin|Nils Daumann]].<br
/> <br
/> ==Description==<br
/> [[Image:Reliefspecular.PNG|thumb|The shader in action.]]<br
/> <br
/> This is a basic relief mapping shader with per pixel lighting based on a tangent space normalmap. It also adds specularity.<br
/> <br
/> Works on shader model 3.0 capable cards. Supports fog and shadows.<br
/> <br
/> <br
/> ==Usage==<br
/> <br
/> [[Image:Reliefspecular_setup.PNG|Typical setup]]<br
/> <br
/> * Color is the general color of the material.<br
/> * Height is a slider which adjusts how deep the heightmaps black pixels actually are (at least indirectly ;)).<br
/> * Specular Color influences the color of the specularity.<br
/> * Shininess influences the size of the specular highlights. The higher the value, the smaller the highlights.<br
/> * Texture is mapped on the object using its uv set (put it into a textures RGB channels).<br
/> * Specmap is a grayscale texture defining the specularity strength for each pixel of the texture (put it into the same textures alpha channel).<br
/> * Normalmap is a tangent space normalmap used for the lighting (put it into a textures RGB channels).<br
/> * Heightmap is a grayscale heightmap defining the shape of the surface (put it into the same textures alpha channel).<br
/> * Tiling and Offset works for all textures.<br
/> <br
/> * You can adjust the speed and quality of the shader by adjusting the LINEAR_SEARCH and BINARY_SEARCH values in both passes. Higher values can slow it down a lot and also result in an error, but cause a higher quality (you should usually just stick to the default ones).<br
/> <br
/> <br
/> ==Download==<br
/> [[Media:Relief_Specular.zip]]<br
/> <br
/> <br
/> ==ShaderLab - ReliefSpecular.shader==<br
/> &lt;shaderlab&gt;<br
/> Shader "Relief Specular"<br
/> {<br
/> Properties<br
/> {<br
/> _Color("Color", Color) = (0.5, 0.5, 0.5, 1)<br
/> _Height("Height", Range(0, 0.2)) = 0.05<br
/> _SpecColor("Specular Color", Color) = (0.5, 0.5, 0.5, 1)<br
/> _Shininess("Shininess", Range (0, 1)) = 0.078125<br
/> _MainTex("Texture (RGB), Specmap (A)", 2D) = "white" {}<br
/> _NormalTex("Normalmap (RGB), Heightmap (A)", 2D) = "white" {}<br
/> }<br
/> <br
/> SubShader<br
/> {<br
/> Pass<br
/> {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "Always"}<br
/> <br
/> CGPROGRAM<br
/> #pragma target 3.0<br
/> #pragma profileoption MaxTexIndirections=256<br
/> <br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> <br
/> #define LINEAR_SEARCH 20<br
/> #define BINARY_SEARCH 10<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float4 _MainTex_ST;<br
/> uniform sampler2D _NormalTex;<br
/> uniform float4 _NormalTex_ST;<br
/> uniform float _Height;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float4 texcoord;<br
/> float3 viewdir;<br
/> }; <br
/> <br
/> v2f vert(appdata_tan v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.texcoord.xy = TRANSFORM_TEX(v.texcoord, _MainTex);<br
/> o.texcoord.zw = TRANSFORM_TEX(v.texcoord, _NormalTex);<br
/> <br
/> TANGENT_SPACE_ROTATION;<br
/> o.viewdir = _ObjectSpaceCameraPos-v.vertex;<br
/> o.viewdir = mul(rotation, o.viewdir);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float ray_intersect_rm(in sampler2D reliefmap, in float2 dp, in float2 ds, in float bias)<br
/> {<br
/> float size = 1.0/LINEAR_SEARCH; // current size of search window<br
/> float depth = -bias;// current depth position<br
/> int i;<br
/> for(i = 0; i &lt; LINEAR_SEARCH-1; i++)// search front to back for first point inside object <br
/> {<br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += size;<br
/> }<br
/> <br
/> for(i = 0; i &lt; BINARY_SEARCH; i++) // recurse around first point (depth) for closest match<br
/> {<br
/> size*=0.5;<br
/> <br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += (2*size);<br
/> <br
/> depth -= size;<br
/> }<br
/> <br
/> return depth;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.viewdir = normalize(i.viewdir);<br
/> float2 view = i.viewdir.xy*_Height;<br
/> float depth = ray_intersect_rm(_NormalTex, i.texcoord.zw, view, 1.0f);<br
/> <br
/> i.texcoord.xy += view*depth;<br
/> float4 color = tex2D(_MainTex, i.texcoord.xy);<br
/> <br
/> return float4(color.rgb*_PPLAmbient, 1.0);<br
/> }<br
/> ENDCG<br
/> }<br
/> <br
/> Pass<br
/> {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "Pixel"}<br
/> Blend AppSrcAdd AppDstAdd<br
/> <br
/> CGPROGRAM<br
/> #pragma target 3.0<br
/> #pragma profileoption MaxTexIndirections=256<br
/> <br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> #define LINEAR_SEARCH 20<br
/> #define BINARY_SEARCH 10<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float4 _MainTex_ST;<br
/> uniform sampler2D _NormalTex;<br
/> uniform float4 _NormalTex_ST;<br
/> uniform float _Height;<br
/> uniform float _Shininess;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> LIGHTING_COORDS<br
/> float4 texcoord;<br
/> float3 viewdir;<br
/> float3 lightdir;<br
/> }; <br
/> <br
/> v2f vert(appdata_tan v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.texcoord.xy = TRANSFORM_TEX(v.texcoord, _MainTex);<br
/> o.texcoord.zw = TRANSFORM_TEX(v.texcoord, _NormalTex);<br
/> <br
/> TANGENT_SPACE_ROTATION;<br
/> o.viewdir = _ObjectSpaceCameraPos-v.vertex;<br
/> o.viewdir = mul(rotation, o.viewdir);<br
/> <br
/> o.lightdir = ObjSpaceLightDir(v.vertex);<br
/> o.lightdir = mul(rotation, o.lightdir);<br
/> <br
/> TRANSFER_VERTEX_TO_FRAGMENT(o);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float ray_intersect_rm(in sampler2D reliefmap, in float2 dp, in float2 ds, in float bias)<br
/> {<br
/> float size = 1.0/LINEAR_SEARCH; // current size of search window<br
/> float depth = -bias;// current depth position<br
/> int i;<br
/> for(i = 0; i &lt; LINEAR_SEARCH-1; i++)// search front to back for first point inside object <br
/> {<br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += size;<br
/> }<br
/> <br
/> for(i = 0; i &lt; BINARY_SEARCH; i++) // recurse around first point (depth) for closest match<br
/> {<br
/> size*=0.5;<br
/> <br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += (2*size);<br
/> <br
/> depth -= size;<br
/> }<br
/> <br
/> return depth;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.viewdir = normalize(i.viewdir);<br
/> float2 view = i.viewdir.xy*_Height;<br
/> float depth = ray_intersect_rm(_NormalTex, i.texcoord.zw, view, 1.0f);<br
/> <br
/> float2 offset = view*depth;<br
/> float4 color = tex2D(_MainTex, i.texcoord.xy+offset);<br
/> <br
/> float4 normal = tex2D(_NormalTex, i.texcoord.zw+offset);<br
/> normal.rgb = normalize(normal*2.0-1.0);<br
/> <br
/> return SpecularLight(i.lightdir, i.viewdir, normal.rgb, color, _Shininess*128, LIGHT_ATTENUATION(i));<br
/> }<br
/> ENDCG<br
/> }<br
/> }<br
/> <br
/> FallBack "Parallax Specular"<br
/> }<br
/> &lt;/shaderlab&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=ReliefSpecular>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/10/unify-wiki-reliefspecular/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] ReliefDiffuse</title><link>http://www.bydesigngames.com/2010/07/10/unify-wiki-reliefdiffuse/</link> <comments>http://www.bydesigngames.com/2010/07/10/unify-wiki-reliefdiffuse/#comments</comments> <pubDate>Sat, 10 Jul 2010 15:54:57 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* ShaderLab - ReliefDiffuse.shader */[[Category: Unity 2.x shaders]]
[[Category: Cg shaders]]
[[Category: Pixel lit shaders]]Author: [[User:Slin&#124;Nils Daumann]].==Description==
[[Image:reliefdiffuse.PNG&#124;thumb&#124;The shader in action.]]
[[Im...]]></description> <content:encoded><![CDATA[<p>Summary: /* ShaderLab - ReliefDiffuse.shader */</p><hr
/><div>[[Category: Unity 2.x shaders]]<br
/> [[Category: Cg shaders]]<br
/> [[Category: Pixel lit shaders]]<br
/> <br
/> Author: [[User:Slin|Nils Daumann]].<br
/> <br
/> ==Description==<br
/> [[Image:reliefdiffuse.PNG|thumb|The shader in action.]]<br
/> [[Image:reliefdiffuse_comp.PNG|thumb|Comparision of this shader with the builtin diffuse one.]]<br
/> <br
/> This is a basic relief mapping shader with per pixel lighting based on a tangent space normalmap.<br
/> <br
/> Works on shader model 3.0 capable cards. Supports fog and shadows.<br
/> <br
/> <br
/> ==Usage==<br
/> <br
/> [[Image:Reliefdiffuse_setup.PNG|Typical setup]]<br
/> <br
/> * Color is the general color of the material.<br
/> * Height is a slider which adjusts how deep the heightmaps black pixels actually are (at least indirectly ;)).<br
/> * Texture is mapped on the object using its uv set (Tiling and Offset works!).<br
/> * Normalmap is a tangent space normalmap used for the lighting (put it into a textures RGB channels).<br
/> * Heightmap is a grayscale heightmap defining the shape of the surface (put it into the same textures alpha channel).<br
/> <br
/> * You can adjust the speed and quality of the shader by adjusting the LINEAR_SEARCH and BINARY_SEARCH values in both passes. Higher values can slow it down a lot and also result in an error, but cause a higher quality (you should usually just stick to the default ones).<br
/> <br
/> <br
/> ==Download==<br
/> [[Media:ReliefDiffuse.zip]]<br
/> <br
/> <br
/> ==ShaderLab - ReliefDiffuse.shader==<br
/> &lt;shaderlab&gt;<br
/> Shader "Relief Diffuse"<br
/> {<br
/> Properties<br
/> {<br
/> _Color("Color", Color) = (0.5, 0.5, 0.5, 1)<br
/> _Height("Height", Range(0, 0.2)) = 0.05<br
/> _MainTex("Texture (RGB)", 2D) = "white" {}<br
/> _NormalTex("Normalmap (RGB), Heightmap (A)", 2D) = "white" {}<br
/> }<br
/> <br
/> SubShader<br
/> {<br
/> Pass<br
/> {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "Always"}<br
/> <br
/> CGPROGRAM<br
/> #pragma target 3.0<br
/> #pragma profileoption MaxTexIndirections=256<br
/> <br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> <br
/> #define LINEAR_SEARCH 20<br
/> #define BINARY_SEARCH 10<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float4 _MainTex_ST;<br
/> uniform sampler2D _NormalTex;<br
/> uniform float4 _NormalTex_ST;<br
/> uniform float _Height;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float4 texcoord;<br
/> float3 viewdir;<br
/> }; <br
/> <br
/> v2f vert(appdata_tan v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.texcoord.xy = TRANSFORM_TEX(v.texcoord, _MainTex);<br
/> o.texcoord.zw = TRANSFORM_TEX(v.texcoord, _NormalTex);<br
/> <br
/> TANGENT_SPACE_ROTATION;<br
/> o.viewdir = _ObjectSpaceCameraPos-v.vertex;<br
/> o.viewdir = mul(rotation, o.viewdir);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float ray_intersect_rm(in sampler2D reliefmap, in float2 dp, in float2 ds, in float bias)<br
/> {<br
/> float size = 1.0/LINEAR_SEARCH; // current size of search window<br
/> float depth = -bias;// current depth position<br
/> int i;<br
/> for(i = 0; i &lt; LINEAR_SEARCH-1; i++)// search front to back for first point inside object <br
/> {<br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += size;<br
/> }<br
/> <br
/> for(i = 0; i &lt; BINARY_SEARCH; i++) // recurse around first point (depth) for closest match<br
/> {<br
/> size*=0.5;<br
/> <br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += (2*size);<br
/> <br
/> depth -= size;<br
/> }<br
/> <br
/> return depth;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.viewdir = normalize(i.viewdir);<br
/> float2 view = i.viewdir.xy*_Height;<br
/> float depth = ray_intersect_rm(_NormalTex, i.texcoord.zw, view, 1.0f);<br
/> <br
/> i.texcoord.xy += view*depth;<br
/> float4 color = tex2D(_MainTex, i.texcoord.xy);<br
/> <br
/> return float4(color.rgb*_PPLAmbient, 1.0);<br
/> }<br
/> ENDCG<br
/> }<br
/> <br
/> Pass<br
/> {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "Pixel"}<br
/> Blend AppSrcAdd AppDstAdd<br
/> <br
/> CGPROGRAM<br
/> #pragma target 3.0<br
/> #pragma profileoption MaxTexIndirections=256<br
/> <br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> #define LINEAR_SEARCH 20<br
/> #define BINARY_SEARCH 10<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float4 _MainTex_ST;<br
/> uniform sampler2D _NormalTex;<br
/> uniform float4 _NormalTex_ST;<br
/> uniform float _Height;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> LIGHTING_COORDS<br
/> float4 texcoord;<br
/> float3 viewdir;<br
/> float3 lightdir;<br
/> }; <br
/> <br
/> v2f vert(appdata_tan v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.texcoord.xy = TRANSFORM_TEX(v.texcoord, _MainTex);<br
/> o.texcoord.zw = TRANSFORM_TEX(v.texcoord, _NormalTex);<br
/> <br
/> TANGENT_SPACE_ROTATION;<br
/> o.viewdir = _ObjectSpaceCameraPos-v.vertex;<br
/> o.viewdir = mul(rotation, o.viewdir);<br
/> <br
/> o.lightdir = ObjSpaceLightDir(v.vertex);<br
/> o.lightdir = mul(rotation, o.lightdir);<br
/> <br
/> TRANSFER_VERTEX_TO_FRAGMENT(o);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float ray_intersect_rm(in sampler2D reliefmap, in float2 dp, in float2 ds, in float bias)<br
/> {<br
/> float size = 1.0/LINEAR_SEARCH; // current size of search window<br
/> float depth = -bias;// current depth position<br
/> int i;<br
/> for(i = 0; i &lt; LINEAR_SEARCH-1; i++)// search front to back for first point inside object <br
/> {<br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += size;<br
/> }<br
/> <br
/> for(i = 0; i &lt; BINARY_SEARCH; i++) // recurse around first point (depth) for closest match<br
/> {<br
/> size*=0.5;<br
/> <br
/> float4 t = tex2D(reliefmap,dp+ds*depth).a;<br
/> <br
/> if(depth &lt; t.w-bias)<br
/> depth += (2*size);<br
/> <br
/> depth -= size;<br
/> }<br
/> <br
/> return depth;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.viewdir = normalize(i.viewdir);<br
/> float2 view = i.viewdir.xy*_Height;<br
/> float depth = ray_intersect_rm(_NormalTex, i.texcoord.zw, view, 1.0f);<br
/> <br
/> float2 offset = view*depth;<br
/> float4 color = tex2D(_MainTex, i.texcoord.xy+offset);<br
/> <br
/> float4 normal = tex2D(_NormalTex, i.texcoord.zw+offset);<br
/> normal.rgb = normalize(normal*2.0-1.0);<br
/> <br
/> return DiffuseLight(i.lightdir, normal.rgb, color, LIGHT_ATTENUATION(i));<br
/> }<br
/> ENDCG<br
/> }<br
/> }<br
/> <br
/> FallBack "Parallax Diffuse"<br
/> }<br
/> &lt;/shaderlab&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=ReliefDiffuse>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/10/unify-wiki-reliefdiffuse/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] TransformInspector</title><link>http://www.bydesigngames.com/2010/07/10/unify-wiki-transforminspector/</link> <comments>http://www.bydesigngames.com/2010/07/10/unify-wiki-transforminspector/#comments</comments> <pubDate>Sat, 10 Jul 2010 00:50:15 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: New page: ==Description== '''TransformInspector.cs''' is a reverse engineered version of Unity's built-in ''UnityEditor.TransformInspector'' class. It should both look and function exactly as the or...==Description==
'''TransformInspector.cs...]]></description> <content:encoded><![CDATA[<p>Summary: New page: ==Description== '''TransformInspector.cs''' is a reverse engineered version of Unity's built-in ''UnityEditor.TransformInspector'' class. It should both look and function exactly as the or...</p><hr
/><div>==Description==<br
/> '''TransformInspector.cs''' is a reverse engineered version of Unity's built-in ''UnityEditor.TransformInspector'' class. It should both look and function exactly as the original, bugs and all. Once loaded into your project, all Transform components will be routed through TransformInspector.cs allowing you to easily extend or modify the inspector.<br
/> <br
/> This is currently a much better alternative to using Editor.DrawDefaultInspector in your custom Transform inspector class since DrawDefaultInspector does not preserve the inspector's unique GUI layout.<br
/> <br
/> ==Usage==<br
/> Place TransformInspector.cs into an Editor folder inside of your project's Assets folder.<br
/> <br
/> ==TransformInspector.cs==<br
/> &lt;csharp&gt;// Reverse engineered UnityEditor.TransformInspector<br
/> <br
/> using UnityEngine;<br
/> using UnityEditor;<br
/> using System.Collections;<br
/> <br
/> [CustomEditor(typeof(Transform))]<br
/> public class TransformInspector : Editor {<br
/> <br
/> private bool firstSet;<br
/> private Vector3 rotation;<br
/> private Quaternion oldQuaternion;<br
/> <br
/> <br
/> public TransformInspector ()<br
/> {<br
/> this.firstSet = true;<br
/> }<br
/> <br
/> <br
/> public override void OnInspectorGUI ()<br
/> {<br
/> EditorGUIUtility.LookLikeControls();<br
/> Transform t = (Transform)this.target;<br
/> EditorGUI.indentLevel = 0;<br
/> if (!this.firstSet)<br
/> {<br
/> if (this.oldQuaternion != t.localRotation)<br
/> {<br
/> this.firstSet = false;<br
/> this.rotation = t.localEulerAngles;<br
/> this.oldQuaternion = t.localRotation;<br
/> }<br
/> }<br
/> Vector3 position = EditorGUILayout.Vector3Field("Position", t.localPosition);<br
/> this.rotation = EditorGUILayout.Vector3Field("Rotation", this.rotation);<br
/> Vector3 scale = EditorGUILayout.Vector3Field("Scale", t.localScale);<br
/> if (GUI.changed)<br
/> {<br
/> Undo.RegisterUndo(t, "Transform Change");<br
/> this.rotation = this.FixIfNaN(this.rotation);<br
/> t.localPosition = this.FixIfNaN(position);<br
/> t.localEulerAngles = this.rotation;<br
/> this.oldQuaternion = t.localRotation;<br
/> t.localScale = this.FixIfNaN(scale);<br
/> }<br
/> EditorGUIUtility.LookLikeInspector();<br
/> }<br
/> <br
/> <br
/> private Vector3 FixIfNaN (Vector3 v)<br
/> {<br
/> if (float.IsNaN(v.x))<br
/> {<br
/> v.x = 0;<br
/> }<br
/> if (float.IsNaN(v.y))<br
/> {<br
/> v.y = 0;<br
/> }<br
/> if (float.IsNaN(v.z))<br
/> {<br
/> v.z = 0;<br
/> }<br
/> return v;<br
/> }<br
/> <br
/> }<br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=TransformInspector>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/10/unify-wiki-transforminspector/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] The Game Developers Radio Episode #10 Marketing Techniques for Indie Game Marvelopers</title><link>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-the-game-developers-radio-episode-10-marketing-techniques-for-indie-game-marvelopers/</link> <comments>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-the-game-developers-radio-episode-10-marketing-techniques-for-indie-game-marvelopers/#comments</comments> <pubDate>Fri, 09 Jul 2010 19:39:14 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9140</guid> <description><![CDATA[
My first radio interview was with Joseph Burchett Marketing Techniques for Indie Game Developers at GameDevRadio.net. In this interview we discussed various strategies for inexpensive yet effective ways to grow your buzz and build a community around y...]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow" class="post_image_link"  href="http://infiniteunity3d.com/the-game-developers-radio-episode-10-marketing-techniques-for-indie-game-marvelopers/" title="Permanent link to The Game Developers Radio Episode #10 Marketing Techniques for Indie Game Marvelopers"><img
class="post_image alignnone" src="http://infiniteunity3d.com/wp-content/uploads/2010/05/MANI.jpg" width="480" height="720" alt="Marketing for Indie Game Developers"/></a></p><p>My first radio interview was with Joseph Burchett <a
rel="nofollow"  href="http://www.gamedevradio.net/?p=151">Marketing Techniques for Indie Game Developers</a> at <a
rel="nofollow"  href="http://gamedevradio.net">GameDevRadio.net</a>. In this interview we discussed various strategies for inexpensive yet effective ways to grow your buzz and build a community around your game. It&#8217;s covers a lot of the techniques used by Rockstar marvelopers like <a
rel="nofollow"  href="http://www.kehalim.com/aff?u=https://www.e-junkie.com/ecom/gb.php?cl=98829&c=ib&aff=119929&#038;r=46222&%23038;p=6947625">Unity Prefab</a> and Step By Step Unity game Development founders the Tornado Twins. We discuss effective use of Video and Twitter as well as <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/facebook/" class="st_tag internal_tag" title="Posts tagged with facebook">facebook</a> as well as real life opportunities to grow your buzz.</p><p>One of my favorite techniques, used by Digital Roar&#8217;s Kevin Human is to immerse your audience in your game by having them fall in love or hate with your characters. Kevin, who happens to be a talented screenwriter, took this to heart and wrote a screenplay about based on Ascension War Triumvirate!</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" title="games">games</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/indie-game-marketing/" title="indie game marketing">indie game marketing</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/marketing/" title="marketing">marketing</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/marvelopers/" title="marvelopers">marvelopers</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/reddit-indie-developer-care/" title="What is the Infinite Unity3D Reddit? Why should Indie Game developers care? (October 14, 2009)">What is the Infinite Unity3D Reddit? Why should Indie Game developers care?</a> (2)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-beyond-games/" title="Unity3D: beyond games (March 8, 2010)">Unity3D: beyond games</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-is-awesome/" title="Unity3D is awesome! (May 27, 2009)">Unity3D is awesome!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/casual-game-developer-advice-from-the-unity3d-website/" title="Unity Indie Developer Advice from the Unity Technologies Site (January 12, 2010)">Unity Indie Developer Advice from the Unity Technologies Site</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-top-game-engines/" title="Unity 3D is number 4 out of the top 10 game engines! (June 24, 2009)">Unity 3D is number 4 out of the top 10 game engines!</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/the-game-developers-radio-episode-10-marketing-techniques-for-indie-game-marvelopers/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-the-game-developers-radio-episode-10-marketing-techniques-for-indie-game-marvelopers/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] The Nanny Goat and Her 3 Kids Game from Alex Radeu Gorcea</title><link>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-the-nanny-goat-and-her-3-kids-game-from-alex-radeu-gorcea/</link> <comments>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-the-nanny-goat-and-her-3-kids-game-from-alex-radeu-gorcea/#comments</comments> <pubDate>Fri, 09 Jul 2010 14:41:53 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9137</guid> <description><![CDATA[
This is the intro for our new game, The Nanny Goat and her Three Kids, made with Unity 3D.
It&#8217;s a bilingual educational game due to be released in a couple of months.
Tags: Alex Radeu Gorcea, The Nanny Goat and Her 3 Kids Related posts  No rel...]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow" class="post_image_link"  href="http://infiniteunity3d.com/the-nanny-goat-and-her-3-kids-game-from-alex-radeu-gorcea/" title="Permanent link to The Nanny Goat and Her 3 Kids Game from Alex Radeu Gorcea"><img
class="post_image alignright" src="http://infiniteunity3d.com/wp-content/uploads/2010/07/nanny-goat-unity3d-game1.png" width="250" height="152" alt="The Nanny Goat and Her 3 Kids Game from Alex Radeu Gorcea"/></a></p><p>This is the intro for our new game, The Nanny Goat and her Three Kids, made with Unity 3D.</p><p>It&#8217;s a bilingual educational game due to be released in a couple of months.</p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/L9cdXXX6GIA&#038;fs=1" type="application/x-shockwave-flash" width="550" height="334"></iframe></p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/alex-radeu-gorcea/" title="Alex Radeu Gorcea">Alex Radeu Gorcea</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/the-nanny-goat-and-her-3-kids/" title="The Nanny Goat and Her 3 Kids">The Nanny Goat and Her 3 Kids</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li>No related posts.</li></ul><p><a
href=http://infiniteunity3d.com/the-nanny-goat-and-her-3-kids-game-from-alex-radeu-gorcea/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-the-nanny-goat-and-her-3-kids-game-from-alex-radeu-gorcea/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Cute Fish in Unity 3D from dogzer</title><link>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-cute-fish-in-unity-3d-from-dogzer/</link> <comments>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-cute-fish-in-unity-3d-from-dogzer/#comments</comments> <pubDate>Fri, 09 Jul 2010 13:45:54 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9135</guid> <description><![CDATA[
Hi, my name is Jose, i&#8217;m from Uruguay. I&#8217;m making this little game in Unity 3D. I realise the gameplay doesnt make much sense yet but I&#8217;m confident I can come up with something
Tags: fish, javascript Related posts  Updated Unity 2.6...]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow" class="post_image_link"  href="http://infiniteunity3d.com/cute-fish-in-unity-3d-from-dogzer/" title="Permanent link to Cute Fish in Unity 3D from dogzer"><img
class="post_image alignright" src="http://infiniteunity3d.com/wp-content/uploads/2010/07/fish-unity3d-game.png" width="250" height="135" alt="Fish Game in Unity 3D"/></a></p><p>Hi, my name is Jose, i&#8217;m from Uruguay. I&#8217;m making this little game in Unity 3D. I realise the gameplay doesnt make much sense yet but I&#8217;m confident I can come up with something</p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/ErrVFs551r0&#038;fs=1" type="application/x-shockwave-flash" width="550" height="438"></iframe></p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/fish/" title="fish">fish</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/javascript/" title="javascript">javascript</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/updated-unity-2-6-why-you-should-care/" title="Updated Unity 2.6 &amp; why you should care! (November 1, 2009)">Updated Unity 2.6 &amp; why you should care!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-vs-flash-or-not-blogosphere-roundup-version-2/" title="Unity vs Flash or not -Blogosphere Roundup (November 5, 2009)">Unity vs Flash or not -Blogosphere Roundup</a> (5)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-for-flash-developers-tutorial-series-and-cheat-sheet/" title="Unity 3D for Flash Developers Tutorial Series and Cheat Sheet (February 25, 2009)">Unity 3D for Flash Developers Tutorial Series and Cheat Sheet</a> (46)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/tweaking-unity3d-to-work-with-textmate/" title="Tweaking Unity 3D To Work With TextMate (April 11, 2009)">Tweaking Unity 3D To Work With TextMate</a> (1)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/tutorial-coroutines-pt-1-waiting-for-input/" title="Tutorial: Coroutines (pt. 1) &#x002013; Waiting for Input. (September 27, 2009)">Tutorial: Coroutines (pt. 1) – Waiting for Input.</a> (11)</li></ul><p><a
href=http://infiniteunity3d.com/cute-fish-in-unity-3d-from-dogzer/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/09/infiniteunity3d-cute-fish-in-unity-3d-from-dogzer/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Planet</title><link>http://www.bydesigngames.com/2010/07/09/unify-wiki-planet/</link> <comments>http://www.bydesigngames.com/2010/07/09/unify-wiki-planet/#comments</comments> <pubDate>Fri, 09 Jul 2010 00:08:57 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: New page: [[Category: Unity 2.x shaders]] [[Category: Cg shaders]] [[Category: Pixel lit shaders]] Author: [[User:Slin&#124;Nils Daumann]]. ==Description== [[Image:Planet1.PNG&#124;thumb&#124;The planet shader i...[[Category: Unity 2.x shaders]]
[[Category...]]></description> <content:encoded><![CDATA[<p>Summary: New page: [[Category: Unity 2.x shaders]] [[Category: Cg shaders]] [[Category: Pixel lit shaders]] Author: [[User:Slin|Nils Daumann]]. ==Description== [[Image:Planet1.PNG|thumb|The planet shader i...</p><hr
/><div>[[Category: Unity 2.x shaders]]<br
/> [[Category: Cg shaders]]<br
/> [[Category: Pixel lit shaders]]<br
/> <br
/> Author: [[User:Slin|Nils Daumann]].<br
/> <br
/> ==Description==<br
/> [[Image:Planet1.PNG|thumb|The planet shader in action.]]<br
/> [[Image:Planet2.PNG|thumb|The light moved.]]<br
/> <br
/> This shader adds an atmosphere to a a planet as you can see it on the screenshots. To do so, it renders the object in another pass which extrudes the vertices along its normals. In this pass, only the back of the polygons is rendered which results in the outline, which is than faded our<br
/> t using a couple of dot products.<br
/> <br
/> Works on fragment program capable cards (Radeon 9500+, GeForce FX+, Intel 9xx). Supports fog and shadows.<br
/> <br
/> <br
/> ==Usage==<br
/> <br
/> [[Image:Planet_setup.PNG|Typical setup]]<br
/> <br
/> * Texture is mapped on the object using its uv set (Tiling and Offset works!).<br
/> * Color is used as ambient color.<br
/> * Atmosphere Color is the color of the atmosphere.<br
/> * Size is the size of the atmosphere. It is scaled in object space, which means that it will be scaled with the model. Size is the thicknes in units*scale.<br
/> * Falloff defines the fading of the atmosphere.<br
/> * Falloff Planet defines the same for the planet surface.<br
/> * Transparency defines how transparent the atmosphere is.<br
/> * Transparency Planet defines the strength fading into the atmospheres color of the planet surface.<br
/> <br
/> ==Download==<br
/> [[Media:Planet.zip]]<br
/> <br
/> <br
/> ==ShaderLab - Planet.shader==<br
/> &lt;shaderlab&gt;<br
/> Shader "Planet"<br
/> {<br
/> Properties<br
/> {<br
/> _MainTex("Texture (RGB)", 2D) = "black" {}<br
/> _Color("Color", Color) = (0, 0, 0, 1)<br
/> _AtmoColor("Atmosphere Color", Color) = (0.5, 0.5, 1.0, 1)<br
/> _Size("Size", Float) = 0.1<br
/> _Falloff("Falloff", Float) = 5<br
/> _FalloffPlanet("Falloff Planet", Float) = 5<br
/> _Transparency("Transparency", Float) = 15<br
/> _TransparencyPlanet("Transparency Planet", Float) = 1<br
/> }<br
/> <br
/> SubShader<br
/> {<br
/> Pass<br
/> {<br
/> Name "PlanetBase"<br
/> Tags {"LightMode" = "Always"}<br
/> Cull Back<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float4 _MainTex_ST;<br
/> uniform float4 _Color;<br
/> uniform float4 _AtmoColor;<br
/> uniform float _FalloffPlanet;<br
/> uniform float _TransparencyPlanet;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float3 normal;<br
/> float3 viewdir;<br
/> float2 texcoord;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.normal = v.normal;<br
/> o.viewdir = _ObjectSpaceCameraPos-v.vertex;<br
/> o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.normal = normalize(i.normal);<br
/> i.viewdir = normalize(i.viewdir);<br
/> <br
/> float4 atmo = _AtmoColor;<br
/> atmo.a = pow(1.0-saturate(dot(i.viewdir, i.normal)), _FalloffPlanet);<br
/> atmo.a *= _TransparencyPlanet*_Color;<br
/> <br
/> float4 color = tex2D(_MainTex, i.texcoord)*_Color;<br
/> color.rgb = lerp(color.rgb, atmo.rgb, atmo.a);<br
/> <br
/> return color;<br
/> }<br
/> ENDCG<br
/> }<br
/> <br
/> Pass<br
/> {<br
/> Name "AtmosphereBase"<br
/> Tags {"LightMode" = "Always"}<br
/> Cull Front<br
/> Blend SrcAlpha One<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> <br
/> uniform float4 _Color;<br
/> uniform float4 _AtmoColor;<br
/> uniform float _Size;<br
/> uniform float _Falloff;<br
/> uniform float _Transparency;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float3 normal;<br
/> float3 viewdir;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> v.vertex.xyz += v.normal*_Size;<br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.normal = v.normal;<br
/> o.viewdir = v.vertex-_ObjectSpaceCameraPos;<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.normal = normalize(i.normal);<br
/> i.viewdir = normalize(i.viewdir);<br
/> <br
/> float4 color = _AtmoColor;<br
/> color.a = pow(saturate(dot(i.viewdir, i.normal)), _Falloff);<br
/> color.a *= _Transparency*_Color;<br
/> return color;<br
/> }<br
/> ENDCG<br
/> }<br
/> <br
/> Pass<br
/> {<br
/> Name "PlanetLight"<br
/> Tags {"LightMode" = "Pixel"}<br
/> Cull Back<br
/> Blend AppSrcAdd AppDstAdd<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float4 _MainTex_ST;<br
/> uniform float4 _AtmoColor;<br
/> uniform float _FalloffPlanet;<br
/> uniform float _TransparencyPlanet;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> LIGHTING_COORDS<br
/> float3 normal;<br
/> float3 viewdir;<br
/> float3 lightdir;<br
/> float2 texcoord;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.normal = v.normal;<br
/> o.viewdir = _ObjectSpaceCameraPos-v.vertex;<br
/> o.lightdir = ObjSpaceLightDir(v.vertex);<br
/> o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);<br
/> TRANSFER_VERTEX_TO_FRAGMENT(o);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.normal = normalize(i.normal);<br
/> i.viewdir = normalize(i.viewdir);<br
/> i.lightdir = normalize(i.lightdir);<br
/> <br
/> float4 atmo = _AtmoColor;<br
/> atmo.a = pow(1.0-saturate(dot(i.viewdir, i.normal)), _FalloffPlanet);<br
/> atmo.a *= _TransparencyPlanet;<br
/> <br
/> float4 color = tex2D(_MainTex, i.texcoord);<br
/> color.rgb = lerp(color.rgb, atmo.rgb, atmo.a);<br
/> color = DiffuseLight(i.lightdir, i.normal, float4(color.rgb, 1.0), LIGHT_ATTENUATION(i));<br
/> <br
/> return color;<br
/> }<br
/> ENDCG<br
/> }<br
/> <br
/> Pass<br
/> {<br
/> Name "AtmosphereLight"<br
/> Tags {"LightMode" = "Pixel"}<br
/> Cull Front<br
/> Blend SrcAlpha One<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform float4 _AtmoColor;<br
/> uniform float _Size;<br
/> uniform float _Falloff;<br
/> uniform float _Transparency;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> LIGHTING_COORDS<br
/> float3 normal;<br
/> float3 viewdir;<br
/> float3 lightdir;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> v.vertex.xyz += v.normal*_Size;<br
/> PositionFog(v.vertex, o.pos, o.fog);<br
/> o.normal = v.normal;<br
/> o.viewdir = v.vertex-_ObjectSpaceCameraPos;<br
/> o.lightdir = ObjSpaceLightDir(v.vertex);<br
/> TRANSFER_VERTEX_TO_FRAGMENT(o);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> i.normal = normalize(i.normal);<br
/> i.viewdir = normalize(i.viewdir);<br
/> i.lightdir = normalize(i.lightdir);<br
/> <br
/> float4 color = _AtmoColor;<br
/> color.a = pow(saturate(dot(i.viewdir, i.normal)), _Falloff);<br
/> color.a *= _Transparency;<br
/> <br
/> color.a *= DiffuseLight(i.lightdir, i.normal, float4(1.0, 1.0, 1.0, 1.0), LIGHT_ATTENUATION(i));<br
/> <br
/> return color;<br
/> }<br
/> ENDCG<br
/> }<br
/> }<br
/> <br
/> FallBack "Diffuse"<br
/> }<br
/> &lt;/shaderlab&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Planet>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/09/unify-wiki-planet/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] FeedMe</title><link>http://www.bydesigngames.com/2010/07/08/unify-wiki-feedme/</link> <comments>http://www.bydesigngames.com/2010/07/08/unify-wiki-feedme/#comments</comments> <pubDate>Thu, 08 Jul 2010 14:34:19 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: Fixed a reload bug in the FeedMe Script and made sure the write script was up to date with mine.[[Category: MonoBehaviour]]
[[Category: CSharp]]
[[Category: XML]]
Author: [[User:CorruptedHeart&#124;Corrupted Heart]] : I thought I should put some ...]]></description> <content:encoded><![CDATA[<p>Summary: Fixed a reload bug in the FeedMe Script and made sure the write script was up to date with mine.</p><hr
/><div>[[Category: MonoBehaviour]]<br
/> [[Category: CSharp]]<br
/> [[Category: XML]]<br
/> Author: [[User:CorruptedHeart|Corrupted Heart]] : I thought I should put some of my scripts on here since it provides a more centralized area for them than on a blog who knows where.<br
/> <br
/> == Info ==<br
/> FeedMe is a simple XML displayer that utilizes [[TinyXmlReader]] to parse the document which is downloaded from a server.<br
/> [[Image:FeedMeSample.png]]<br
/> <br
/> == PHP Editor Script ==<br
/> I was going to post the php script however it seems to be causes errors for the wiki so you can find the script at my blog: http://www.corruptedheart.co.cc/2010/07/serve-and-feed-me.html<br
/> <br
/> == FeedMe.cs ==<br
/> For reading the feeds into your app.<br
/> &lt;csharp&gt;//&lt;author&gt;Garth "Corrupted Heart" de Wet&lt;/author&gt;<br
/> //&lt;email&gt;mydeathofme[at]gmail[dot]com&lt;/email&gt;<br
/> //&lt;summary&gt;Contains methods in order to get feeds from an xml document located on a server&lt;/summary&gt;<br
/> //&lt;license&gt;Creative Commons:<br
/> //http://creativecommons.org/licenses/by/3.0/<br
/> //FeedMe by Garth "Corrupted Heart" de Wet is licensed under a Creative Commons Attribution 3.0 Unported License.<br
/> //Permissions beyond the scope of this license may be available at www.CorruptedHeart.co.cc<br
/> //&lt;/license&gt;<br
/> using UnityEngine;<br
/> using System.Collections;<br
/> <br
/> public class FeedMe : MonoBehaviour<br
/> {<br
/> #region Variables<br
/> #region URLS<br
/> // The URL to where the feed is located<br
/> public string getFeedURL = "http://localhost/feed.xml";<br
/> #endregion<br
/> // A Struc of what every feed is made up of<br
/> private struct feedThis<br
/> {<br
/> public string Title;<br
/> public string Message;<br
/> public string Date;<br
/> public string Author;<br
/> }<br
/> #region Feed Variables<br
/> // Should the feed only update once per game play<br
/> public bool updateOnce = false;<br
/> // How long till the next update<br
/> public int minutesToUpdate = 60;<br
/> // This is used to make sure that the text loaded doesn't fill more than the array<br
/> private int feedLength = 9;<br
/> // This is the array of a struc of variables used to hold the feeds<br
/> private feedThis[] theFeed = new feedThis[9];<br
/> // When the feed is updated the time is set here plus the minutes to update<br
/> private float timeSinceLastUpdate = 0;<br
/> // if the feed must be updated<br
/> private bool updateFeed = true;<br
/> // if the feed is updating<br
/> private bool updating = false;<br
/> // if there is no errors from the WWW connection<br
/> private bool errorFree = true;<br
/> // used to measure the number of elements within the array<br
/> private int i = 0;<br
/> #endregion<br
/> <br
/> #region GUI<br
/> // Skin for gui<br
/> public GUISkin mySkin;<br
/> // Keeps position of the scroll position<br
/> private Vector2 scrollPosition;<br
/> // The size and position of the feed window - The first two fields are the only ones required<br
/> public Rect feedWinRect = new Rect(0,30,250,50);<br
/> // the actual width of the feed window<br
/> public int winWidth = 250;<br
/> // the size of the feed button<br
/> public int feedBtnWidth = 190;<br
/> // the size of the reload button<br
/> public int reloadBtnWidth = 30;<br
/> // whether the feed window is being displayed or not<br
/> private bool showFeed = false;<br
/> // The icon to display on the feed button<br
/> public Texture2D feedIcon;<br
/> // The icon to display on the reload button<br
/> public Texture2D reloadIcon;<br
/> private GUIContent reloadBtn;<br
/> #endregion<br
/> #endregion<br
/> #region Standard Methods<br
/> void Start()<br
/> {<br
/> // This adds a bit of error checking to see if there is a icon attached to the reloadIcon variable<br
/> // and if there is none then it changes the button size to accomodate the extra width of the words reload<br
/> // and fills the GUIContent with the words reload<br
/> if(reloadIcon)<br
/> {<br
/> reloadBtn = new GUIContent(reloadIcon);<br
/> }<br
/> else<br
/> {<br
/> reloadBtn = new GUIContent("Reload");<br
/> reloadBtnWidth = 50;<br
/> }<br
/> // Starts the getFeed Coroutine<br
/> StartCoroutine(getFeed());<br
/> }<br
/> <br
/> void Update()<br
/> {<br
/> // If it is set to update only once then it skips the next piece<br
/> if(!updateOnce)<br
/> {<br
/> // Checks whether the feed needs to be updated<br
/> if((Time.time &gt;= timeSinceLastUpdate) &amp;&amp; (!updateFeed))<br
/> {<br
/> // Resets the vars<br
/> updateFeed = true;<br
/> i = 0;<br
/> // Starts the getFeed Coroutine<br
/> StartCoroutine(getFeed());<br
/> }<br
/> }<br
/> }<br
/> <br
/> void OnGUI()<br
/> {<br
/> // Creates the GUIContent for the button because it needs to be created for the error checking to work<br
/> // correctly<br
/> GUIContent feedBtn = new GUIContent("Feed: ");<br
/> // creates an empty string for the feed button title<br
/> string Feed = "";<br
/> // If there was a skin set then set it else leave it as default<br
/> if(mySkin != null)<br
/> {<br
/> GUI.skin = mySkin;<br
/> }<br
/> //To show that the feed is updating<br
/> if(updating)<br
/> {<br
/> Feed = "Is updating...";<br
/> }<br
/> // if the feed isn't updating show the latest feed title as button caption<br
/> else<br
/> {<br
/> Feed = theFeed[0].Title;<br
/> }<br
/> // If there is an icon in the feedIcon var then it fills the GUIContent created above with the feed string and <br
/> // icon. Otherwise it creates a string representation of feed<br
/> if(feedIcon != null)<br
/> {	// Sets an icon and the feed string to a GUIContent<br
/> feedBtn = new GUIContent(" " + Feed, feedIcon);<br
/> }<br
/> else<br
/> {<br
/> feedBtn = new GUIContent("Feed: " + Feed);<br
/> }<br
/> // Button for showing the field<br
/> if(GUI.Button(new Rect(0,0,feedBtnWidth, 30),feedBtn))<br
/> {<br
/> // On click it simply switches the feed window on and off<br
/> showFeed = !showFeed;<br
/> } <br
/> // Shows the feed window based upon the value of showFeed<br
/> if(showFeed)<br
/> {<br
/> feedWinRect = GUILayout.Window(1, feedWinRect, theFeedWindow, "Feeds", GUILayout.Width(winWidth));<br
/> }<br
/> // An update now button<br
/> if(GUI.Button(new Rect(feedBtnWidth, 0, reloadBtnWidth, 30), reloadBtn))<br
/> {<br
/> // Resets the vars<br
/> updateFeed = true;<br
/> i = 0;<br
/> // Starts the getFeed Coroutine<br
/> StartCoroutine(getFeed());<br
/> }<br
/> }<br
/> #endregion<br
/> #region Custom Functions<br
/> IEnumerator getFeed()<br
/> {<br
/> // if the feed must be updated run the function<br
/> if(updateFeed)<br
/> {<br
/> // Sets updating to true<br
/> updating = true;<br
/> // Gets the data from the url set in the inspector<br
/> WWWForm form = new WWWForm();<br
/> form.AddField("number", 1221);<br
/> WWW feedPost = new WWW(getFeedURL, form);<br
/> // Returns control to rest of program until it is finished downloading<br
/> yield return feedPost;<br
/> // if there are no errors runs through the function<br
/> if(feedPost.error == null)<br
/> {<br
/> // Creates a instance of TinyXmlReader to loop through the xml document<br
/> // loops through the document and extracts data from each &lt;Feed&gt;&lt;/Feed&gt;<br
/> // For my use, it extracts the title, date, author and message.<br
/> // it stores this in an array of struc type declared above<br
/> TinyXmlReader reader = new TinyXmlReader(feedPost.data);<br
/> while(reader.Read("Feeds") &amp;&amp; (i &lt; feedLength))<br
/> {<br
/> while(reader.Read("Feed"))<br
/> {<br
/> if(reader.tagName == "Title" &amp;&amp; reader.isOpeningTag)<br
/> {<br
/> theFeed[i].Title = reader.content;<br
/> }<br
/> if(reader.tagName == "Date" &amp;&amp; reader.isOpeningTag)<br
/> {<br
/> theFeed[i].Date = reader.content;<br
/> }<br
/> if(reader.tagName == "Author" &amp;&amp; reader.isOpeningTag)<br
/> {<br
/> theFeed[i].Author = reader.content;<br
/> }<br
/> if(reader.tagName == "Message" &amp;&amp; reader.isOpeningTag)<br
/> {<br
/> theFeed[i].Message = reader.content;<br
/> }<br
/> }<br
/> // Increments the counter variable for the array<br
/> i++;<br
/> }<br
/> }<br
/> // if there was an error<br
/> else<br
/> {<br
/> // sets all the error messages<br
/> errorFree = false;<br
/> theFeed[0].Title = "Error connecting to Feed...";<br
/> theFeed[0].Message = feedPost.error;<br
/> // Logs an error<br
/> Debug.LogError(feedPost.error);<br
/> }<br
/> // sets the values of the variables to there off state<br
/> updateFeed = false;<br
/> updating = false;<br
/> // sets the last update time<br
/> timeSinceLastUpdate = Time.time + (60 * minutesToUpdate);<br
/> // Destroys the feedPost...<br
/> feedPost.Dispose();<br
/> }<br
/> }<br
/> #endregion<br
/> #region GUI Functions<br
/> // The feed window GUI<br
/> void theFeedWindow(int WindowID)<br
/> {<br
/> // Creates a empty string to hold all the feeds<br
/> string Feeds = "";<br
/> // Starts a scroll view<br
/> scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(winWidth), GUILayout.Height(400));<br
/> // if there are no errors, shows the feed as is<br
/> if(errorFree)<br
/> {<br
/> // loops through the array adding the feed data to the feed string<br
/> for(int x=0;x&lt;=i-1;x++)<br
/> {<br
/> Feeds = Feeds + theFeed[x].Title + " - " + theFeed[x].Date + "&#92;n"<br
/> + "Author: " + theFeed[x].Author + "&#92;n" + theFeed[x].Message + "&#92;n&#92;n";<br
/> }<br
/> }<br
/> // if there is an error sets the feed to just 0 and not a loop<br
/> else<br
/> {<br
/> Feeds = theFeed[0].Title + "&#92;n" + theFeed[0].Message;<br
/> }<br
/> // Creates a label from the feed string<br
/> GUILayout.Label(Feeds);<br
/> // ends the view<br
/> GUILayout.EndScrollView();<br
/> }<br
/> #endregion<br
/> }&lt;/csharp&gt;<br
/> <br
/> == WriteFeed.cs ==<br
/> For writing feeds from within your app.<br
/> &lt;csharp&gt;//&lt;author&gt;Garth "Corrupted Heart" de Wet&lt;/author&gt;<br
/> //&lt;email&gt;mydeathofme[at]gmail[dot]com&lt;/email&gt;<br
/> //&lt;summary&gt;Contains methods in order to get feeds from an xml document located on a server&lt;/summary&gt;<br
/> //&lt;license&gt;Creative Commons:<br
/> //http://creativecommons.org/licenses/by/3.0/<br
/> //FeedMe by Garth "Corrupted Heart" de Wet is licensed under a Creative Commons Attribution 3.0 Unported License.<br
/> //Permissions beyond the scope of this license may be available at www.CorruptedHeart.co.cc<br
/> //&lt;/license&gt;<br
/> using UnityEngine;<br
/> using System.Collections;<br
/> <br
/> public class WriteFeed : MonoBehaviour<br
/> {<br
/> #region Variables<br
/> #region URLS<br
/> // The URL to where the feed is located<br
/> public string NewFeedURL = "http://localhost/create.php";<br
/> #endregion<br
/> // A Struc of what every feed is made up of<br
/> private struct FeedThis<br
/> {<br
/> public string Title;<br
/> public string Message;<br
/> public string Author;<br
/> }<br
/> #region Feed Variables<br
/> // This creates a FeedThis<br
/> private FeedThis NewFeed = new FeedThis();<br
/> // if the feed must be updated<br
/> private bool Updated = false;<br
/> // if the feed is updating<br
/> private bool Updating = false;<br
/> // if there is no errors from the WWW connection<br
/> private bool ErrorFree = true;<br
/> private string FeedBack;<br
/> #endregion<br
/> #region GUI<br
/> // Skin for gui<br
/> public GUISkin MySkin;<br
/> // Keeps position of the scroll position<br
/> private Vector2 ScrollPosition;<br
/> // The size and position of the feed window - The first two fields are the only ones required<br
/> public Rect FeedWinRect = new Rect(270,30,250,400);<br
/> // The size and position of the feed window - The first two fields are the only ones required<br
/> public Rect FeedBtnWidth = new Rect(220,0,35,30);<br
/> // The width of the window<br
/> public int FeedWidth = 250;<br
/> // The height of the window<br
/> public int FeedHeight = 400;<br
/> // whether the feed window is being displayed or not<br
/> private bool ShowFeed = false;<br
/> // The icon to display on the feed button<br
/> public Texture2D PostFeedIcon;<br
/> #endregion<br
/> #endregion<br
/> #region Standard Methods<br
/> void Start()<br
/> {<br
/> // Setting the feed to empty in order to allow the input to work<br
/> NewFeed.Author = "";<br
/> NewFeed.Message = "";<br
/> NewFeed.Title = "";<br
/> }<br
/> <br
/> void OnGUI()<br
/> {<br
/> // If there was a skin set then set it else leave it as default<br
/> if(MySkin != null)<br
/> {<br
/> GUI.skin = MySkin;<br
/> }<br
/> // Button for showing the field<br
/> if(GUI.Button(FeedBtnWidth,PostFeedIcon))<br
/> {<br
/> // On click it simply switches the feed window on and off<br
/> ShowFeed = !ShowFeed;<br
/> }<br
/> // Shows the feed window based upon the value of showFeed<br
/> if(ShowFeed)<br
/> {<br
/> // creates the window<br
/> FeedWinRect = GUILayout.Window(2, FeedWinRect, theFeedWindow, "New Feed", GUILayout.Width(FeedWidth));<br
/> }<br
/> }<br
/> #endregion<br
/> #region Custom Functions<br
/> IEnumerator PostFeed()<br
/> {<br
/> // Sets updating to true<br
/> Updating = true;<br
/> // Creates a WWWForm in order to fill in the details that will be submitted to the php script<br
/> WWWForm theFeed = new WWWForm();<br
/> // Adds the Title<br
/> theFeed.AddField("title", NewFeed.Title);<br
/> // Adds the message<br
/> theFeed.AddField("message", NewFeed.Message);<br
/> // Adds the name<br
/> theFeed.AddField("name", NewFeed.Author);<br
/> // Sends the form and gets the reply from the server<br
/> WWW feedPost = new WWW(NewFeedURL, theFeed);<br
/> // Returns control to rest of program until it is finished downloading<br
/> yield return feedPost;<br
/> // if there are no errors runs through the function<br
/> if(feedPost.error == null)<br
/> {<br
/> FeedBack = feedPost.data;<br
/> Updated = true;<br
/> }<br
/> // if there was an error<br
/> else<br
/> {<br
/> // sets all the error messages<br
/> ErrorFree = false;<br
/> // Logs an error<br
/> Debug.LogError(feedPost.error);<br
/> FeedBack = feedPost.error;<br
/> }<br
/> // sets the values of the variables to there off state<br
/> Updating = false;<br
/> // Destroys the feedPost...<br
/> feedPost.Dispose();<br
/> }<br
/> #endregion<br
/> #region GUI Functions<br
/> // The feed window GUI<br
/> void theFeedWindow(int WindowID)<br
/> {<br
/> // Starts a scroll view<br
/> ScrollPosition = GUILayout.BeginScrollView(ScrollPosition, GUILayout.Width(FeedWidth), GUILayout.Height(FeedHeight));<br
/> // if it is not error free create a label with the error code<br
/> if(!ErrorFree)<br
/> {<br
/> GUILayout.Label("Error: " + FeedBack);<br
/> }<br
/> // if it was updated then clear the inputs and put a label with the answer from the server<br
/> if(Updated)<br
/> {<br
/> GUILayout.Label(FeedBack);<br
/> NewFeed.Author = "";<br
/> NewFeed.Message = "";<br
/> NewFeed.Title = "";<br
/> }<br
/> // if it is currently updating then display that in a label or else display the input area<br
/> if(Updating)<br
/> {<br
/> GUILayout.Label("Feed is being updated...");<br
/> }<br
/> else<br
/> {<br
/> GUILayout.Label("Enter Your Name:");<br
/> NewFeed.Author = GUILayout.TextField(NewFeed.Author);<br
/> GUILayout.Label("Enter The Title:");<br
/> NewFeed.Title = GUILayout.TextField(NewFeed.Title);<br
/> GUILayout.Label("Enter Your Message:");<br
/> NewFeed.Message = GUILayout.TextArea(NewFeed.Message);<br
/> <br
/> if(GUILayout.Button("Submit"))<br
/> {<br
/> Updated = false;<br
/> StartCoroutine(PostFeed());<br
/> }<br
/> if(GUILayout.Button("Reset"))<br
/> {<br
/> NewFeed.Author = "";<br
/> NewFeed.Message = "";<br
/> NewFeed.Title = "";<br
/> }<br
/> }<br
/> // ends the view<br
/> GUILayout.EndScrollView();<br
/> }<br
/> #endregion<br
/> }&lt;/csharp&gt;<br
/> <br
/> == XML Structure ==<br
/> &lt;xml&gt;&lt;Feeds&gt;<br
/> &lt;Feed&gt;<br
/> &lt;Title&gt;&lt;/Title&gt;<br
/> &lt;Date&gt;&lt;/Date&gt;<br
/> &lt;Author&gt;&lt;/Author&gt;<br
/> &lt;Message&gt;&lt;/Message&gt;<br
/> &lt;/Feed&gt;<br
/> &lt;/Feeds&gt;&lt;/xml&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=FeedMe>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/08/unify-wiki-feedme/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] Unity Custom Input Manager</title><link>http://www.bydesigngames.com/2010/07/08/unify-wiki-unity-custom-input-manager/</link> <comments>http://www.bydesigngames.com/2010/07/08/unify-wiki-unity-custom-input-manager/#comments</comments> <pubDate>Thu, 08 Jul 2010 13:25:39 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: New page: [[Category: Utility Scripts]] [[Category: C#]] Author: Ward Dewaele (Roidz) Special thanks to BLiTZWiNG &#38; NCarter for help &#38; testing. ==Description== Custom inputmanager that allows you ...[[Category: Utility Scripts]]
[[Ca...]]></description> <content:encoded><![CDATA[<p>Summary: New page: [[Category: Utility Scripts]] [[Category: C#]] Author: Ward Dewaele (Roidz) Special thanks to BLiTZWiNG &amp; NCarter for help &amp; testing. ==Description== Custom inputmanager that allows you ...</p><hr
/><div>[[Category: Utility Scripts]]<br
/> [[Category: C#]]<br
/> Author: Ward Dewaele (Roidz)<br
/> <br
/> Special thanks to BLiTZWiNG &amp; NCarter for help &amp; testing.<br
/> <br
/> ==Description==<br
/> Custom inputmanager that allows you to change inputs from keyboard,mouse and joystick (including axes) on the fly. <br
/> Unity's default inputmanager only allows you to change the inputs at start.<br
/> <br
/> == Usage ==<br
/> Go to the link and download the custom inputmanager. Extract the rar file with Winrar or a simular tool.<br
/> This will extract a unity project folder that you can open in unity. <br
/> <br
/> You can start using the script right away if you please or you can test the example scene first.<br
/> The script is well commented and should be selfexplaining. <br
/> <br
/> If you would still have problems/questions mail me at ward.dewaele@pandora.be<br
/> <br
/> == Link ==<br
/> [http://roidz.weebly.com/ Unity Custom InputManager]<br
/> <br
/> == Legal Notice ==<br
/> Although i tried to make sure this script works fine i am not liable for any damage resulting from use of this script/software.<br
/> <br
/> Even this is completely free to use, this does NOT mean that you can resell it or claim as<br
/> your own creation. Credits are not needed but welcome. <br
/> <br
/> © Ward Dewaele (Roidz)</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=Unity_Custom_Input_Manager>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/08/unify-wiki-unity-custom-input-manager/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Sneak Away to iPark The Virtual iPARK done by Mixed Dimensions</title><link>http://www.bydesigngames.com/2010/07/08/infiniteunity3d-sneak-away-to-ipark-the-virtual-ipark-done-by-mixed-dimensions/</link> <comments>http://www.bydesigngames.com/2010/07/08/infiniteunity3d-sneak-away-to-ipark-the-virtual-ipark-done-by-mixed-dimensions/#comments</comments> <pubDate>Thu, 08 Jul 2010 05:51:03 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9132</guid> <description><![CDATA[
I&#8217;ve got a secret. Last week I got a chance to sneak away to the first of the Unity 3D Incubators from Mixed Dimensions. You may recall that Mixed Dimensions brought us our first virtual mall on Facebook back in May. I was met in the lobby in re...]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow" class="post_image_link"  href="http://infiniteunity3d.com/sneak-away-to-ipark-the-virtual-ipark-done-by-mixed-dimensions/" title="Permanent link to Sneak Away to iPark The Virtual iPARK done by Mixed Dimensions"><img
class="post_image alignright" src="http://infiniteunity3d.com/wp-content/uploads/2010/07/mixeddimmensions-virtual-ipark.png" width="623" height="345" alt="Mixed Dimensions Virtual iPark"/></a></p><p>I&#8217;ve got a secret. Last week I got a chance to sneak away to the first of the Unity 3D Incubators from <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/mixed-dimensions/">Mixed Dimensions</a>. You may recall that Mixed Dimensions brought us our <a
rel="nofollow"  href="http://infiniteunity3d.com/mxd-mall-%E2%80%93-the-first-virtual-mall-on-facebook-built-with-unity/">first virtual mall on Facebook</a> back in May. I was met in the lobby in real time by a member of the Mixed Dimensions team and escorted to a room where I got to enjoy sketching on a sharedwhiteboard as well as changing colors of paint brushes. I plan to share my videos from this immersive experience created in the Unity Engine by the Mixed Dimensions team but for now here&#8217;s a video that they have shared on the<a
rel="nofollow"  href="http://www.youtube.com/user/MixedDimensions"> Mixed Dimensions YouTube Channel </a>. Subscribe to keep up to date on the latest participants in the Unity 3D Virtual Incubators.</p><p>Meanwhile keep your eyes on this video Virtual iPark</p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/aEGrnPOHhcM&#038;fs=1" type="application/x-shockwave-flash" width="550" height="438"></iframe></p><p>this video introduces the first virtual incubator online and as an application on facebook, the virtual iPARK allows incubation of companies virtually and adds support to meetings, training, conferences and more through a set of tools including a whiteboard.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/facebook-mall/" title="facebook mall">facebook mall</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/mixed-dimensions/" title="Mixed Dimensions">Mixed Dimensions</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/mxd/" title="MXD">MXD</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-incubator/" title="Unity Incubator">Unity Incubator</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/virtual-ipark/" title="virtual iPark">virtual iPark</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/virtual-mall/" title="Virtual Mall">Virtual Mall</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/mxd-mall-%E2%80%93-the-first-virtual-mall-on-facebook-built-with-unity/" title="MXD Mall &#x002013; the first virtual mall on facebook built with Unity (May 27, 2010)">MXD Mall – the first virtual mall on facebook built with Unity</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/sneak-away-to-ipark-the-virtual-ipark-done-by-mixed-dimensions/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/08/infiniteunity3d-sneak-away-to-ipark-the-virtual-ipark-done-by-mixed-dimensions/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Today I Watched in Awe as my students at the Creative Circus Heard their first Client Pitches</title><link>http://www.bydesigngames.com/2010/07/08/infiniteunity3d-today-i-watched-in-awe-as-my-students-at-the-creative-circus-heard-their-first-client-pitches/</link> <comments>http://www.bydesigngames.com/2010/07/08/infiniteunity3d-today-i-watched-in-awe-as-my-students-at-the-creative-circus-heard-their-first-client-pitches/#comments</comments> <pubDate>Thu, 08 Jul 2010 05:31:49 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9131</guid> <description><![CDATA[This post is in BETA
Today was the first day of Polishing Your Application. It&#8217;s a multidisciplinary training exercise at the Creative Circus during which my 3rd quarter students in the Interactive Development Program got to hear students from ou...]]></description> <content:encoded><![CDATA[<p></p><h3>This post is in BETA</h3><p>Today was the first day of Polishing Your Application. It&#8217;s a multidisciplinary training exercise at <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/the-creative-circus/" class="st_tag internal_tag" title="Posts tagged with the creative circus">the Creative Circus</a> during which my 3rd quarter students in the Interactive Development Program got to hear students from our Art Direction Program Pitch Ideas. I was amazed at the talent coming from the Creative Team but even more amazed at how my students naturally fell in to collaborative roles. They quickly realized that they needed to help each other across projects based on their areas of strength. As time passed the delegated communicating with each Creative Team&#8217;s best communicator to a liaison for that project.</p><p>Our Creative Circus Art Directors in-training pitched everything from a re-branding Idea for British Knights as dance shoes (and by dance I mean The Nightclub) to A Championship Poker Experience. We witnessed as the Interactive Developers for the first time got to see what it&#8217;s like when a creative mind is at work. The liaisons from both sides of the divide will be communicating project progress which will give each of our Interactive Developers a constant window into the world of the Creative Team for each project. This relationship will be carried through the life of the project and result in less lapses in responsibility for communication.</p><p>Keep in mind that throughout this exercise students from the Creative and the interactive departments are forming effective working relationships with colleagues that will be the rising stars in the industry. There&#8217;s no doubt that WHO you know plays a role in your future success. There&#8217;s also no doubt that the best time to form a good working relationship with a Rock Star is while she is in the process of becoming one and helping her up along the way.</p><p>In the background the students in the Interactive Development Department at <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/the-creative-circus/" class="st_tag internal_tag" title="Posts tagged with the creative circus">the Creative Circus</a> are also getting a healthy helping of Social media Savvy. As they carry on discussions in the social sphere they are not only learning the leverage social media as a means of building their brand they are already building their brand. They are accumulating feedback and connections with rising stars and a public history of sharing outstanding work.</p><p>Every developer can help the success of his endeavors and collaborations by learning effective self branding and by spotting trends. That&#8217;s why ID Students will get to spend an entire quarter learning trend spotting as well as a quarter learning personal branding and brand extension.</p><p>It&#8217;s very rewarding to watch the students naturally discover effective working plans and patterns and make such significant discoveries before even having completed half of our program. I&#8217;m very excited about what the future holds.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/berwyn/" title="Berwyn">Berwyn</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/client-pitch/" title="client pitch">client pitch</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/marvelopers/" title="marvelopers">marvelopers</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/polishing-your-application/" title="Polishing Your Application">Polishing Your Application</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/the-creative-circus/" title="the creative circus">the creative circus</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/welcome-to-the-circus-mani/" title="Welcome to The Circus, Mani (June 22, 2010)">Welcome to The Circus, Mani</a> (1)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/the-game-developers-radio-episode-10-marketing-techniques-for-indie-game-marvelopers/" title="The Game Developers Radio Episode #10 Marketing Techniques for Indie Game Marvelopers (July 9, 2010)">The Game Developers Radio Episode #10 Marketing Techniques for Indie Game Marvelopers</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/today-i-watched-in-awe-as-my-students-at-the-creative-circus-heard-their-first-client-pitches/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/08/infiniteunity3d-today-i-watched-in-awe-as-my-students-at-the-creative-circus-heard-their-first-client-pitches/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Unity Engine 3 New Features: Audio Features by Tornado Twins</title><link>http://www.bydesigngames.com/2010/07/07/infiniteunity3d-unity-engine-3-new-features-audio-features-by-tornado-twins/</link> <comments>http://www.bydesigngames.com/2010/07/07/infiniteunity3d-unity-engine-3-new-features-audio-features-by-tornado-twins/#comments</comments> <pubDate>Wed, 07 Jul 2010 15:25:49 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9124</guid> <description><![CDATA[Unity3d is quickly releasing version 3.0 &#8211; one of the most anticipated releases of Unity3D we&#8217;ve ever had.
This version can publish to PS3, XBOX360, Android Phones, ipad, iPhone, Mac, PC and Wii!! UN-BE-LIEVABLE!
Here&#8217;s an overview of...]]></description> <content:encoded><![CDATA[<p>Unity3d is quickly releasing version 3.0 &#8211; one of the most anticipated releases of Unity3D we&#8217;ve ever had.<br
/> This version can publish to PS3, XBOX360, Android Phones, ipad, iPhone, Mac, PC and Wii!! UN-BE-LIEVABLE!<br
/> Here&#8217;s an overview of the new audio features. Check out <a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-what-we-know-so-far/">Unity 3 What we know so far</a> for more info on this upcoming gamechanger.</p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/kcMsyZ91Cgs&#038;fs=1" type="application/x-shockwave-flash" width="550" height="334"></iframe></p><p>Also drop by <a
rel="nofollow"  href="http://www.kehalim.com/aff?u=https://www.e-junkie.com/ecom/gb.php?cl=98829&c=ib&aff=119929&#038;r=163814&%23038;p=6947625">Unity Prefabs</a> to check out some of the timesaving Prefabs produced by the Tornado Twins <a
rel="nofollow"  href="http://www.youtube.com/user/TornadoTwins">Subscribe to the Tornado Twins YouTube for more Unity Engine 3 New features</a></p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/tornado-twins/" title="#stepbystepgamedevelopment with the @TornadoTwins">#stepbystepgamedevelopment with the @TornadoTwins</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/new-features/" title="new features">new features</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-engine-3/" title="Unity Engine 3">Unity Engine 3</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/videos/" title="Videos">Videos</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/making-a-videogame-13-adding-lives-gui-hud-unity3d-engine/" title="Making a videogame #13: Adding lives, GUI &amp; HUD [Unity3d engine] (January 4, 2010)">Making a videogame #13: Adding lives, GUI &amp; HUD [Unity3d engine]</a> (4)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/making-a-character-respawn-in-unity-3d-game-engine-12/" title="Making a character respawn in Unity 3d game engine #12 (December 29, 2009)">Making a character respawn in Unity 3d game engine #12</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-video-tutorials/" title="Infinite Unity 3D Video Tutorials List (April 9, 2009)">Infinite Unity 3D Video Tutorials List</a> (30)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/creating-a-team-of-game-designers-around-you-part8/" title="Creating a team of game-designers around you [Part8] (December 26, 2009)">Creating a team of game-designers around you [Part8]</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/congratulations-tornado-twins1000-subscribers/" title="Congratulations Tornado Twins:1000 Unity Game Tutorial (February 4, 2010)">Congratulations Tornado Twins:1000 Unity Game Tutorial</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/unity-engine-3-new-features-audio-features-by-tornado-twins/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/07/infiniteunity3d-unity-engine-3-new-features-audio-features-by-tornado-twins/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] RFP: Unity to Award 60 Android Smart Phones to Schools</title><link>http://www.bydesigngames.com/2010/07/07/unity-technologies-rfp-unity-to-award-60-android-smart-phones-to-schools/</link> <comments>http://www.bydesigngames.com/2010/07/07/unity-technologies-rfp-unity-to-award-60-android-smart-phones-to-schools/#comments</comments> <pubDate>Wed, 07 Jul 2010 00:02:08 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3152</guid> <description><![CDATA[Hello Unity Community. This is my first blog post and I’m happy to be sharing some very exciting news. I joined Unity almost two months ago to assist with commercial and institutional licensing. In my short time here, Unity has maintained a whirlwind pace of product announcements, resource partnerships, tech demos and [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignnone size-medium wp-image-3153" title="the_academy_of_athens" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/the_academy_of_athens-300x232.jpg" alt="the_academy_of_athens" width="300" height="232"/></p><p>Hello Unity Community. This is my first blog post and I’m happy to be sharing some very exciting news. I joined Unity almost two months ago to assist with commercial and institutional licensing. In my short time here, Unity has maintained a whirlwind pace of <a
rel="nofollow"  href="http://blogs.unity3d.com/2010/06/24/pre-order-unity-android-get-a-google-nexus-one/">product announcements</a>, <a
rel="nofollow"  href="http://forum.unity3d.com/viewtopic.php?t=55143">resource partnerships</a>, <a
rel="nofollow"  href="http://blogs.unity3d.com/2010/05/19/google-android-and-the-future-of-games-on-the-web/">tech demos</a> and <a
rel="nofollow"  href="http://www.neoseeker.com/news/14201-e3-2010-battlestar-galactica-online-utilizes-unity-engine/">conference appearances</a>. It has certainly been an exhilarating start to a new job.</p><p>Prior to joining Unity I spent a number of years working with colleges setting up game design and game programming courses around the world. In 2005 there were only 30 schools that offered any sort of accredited game development courses. Fast-forward to 2010 and hundreds of higher education institutions are now offering, not just courses, but full-fledged degrees in 3D simulation and electronic game production. During this time, Unity has rapidly become the most popular game engine in use at these schools. Every month dozens of professors and program directors contact us asking for more information about adopting Unity Pro and Unity iPhone.</p><p>Unity is also firmly committed to supporting the Google Android platform. We strongly feel that competition in the mobile handset and tablet PC markets will create lucrative opportunities for mobile developers. Last week we announced a huge opportunity for Unity developers who want to expand their business to Android: we are giving away 500 Nexus One Android phones (<a
rel="nofollow"  href="http://blogs.unity3d.com/2010/06/24/pre-order-unity-android-get-a-google-nexus-one/">details available here.</a>) However, in our eagerness to kick start Unity Android game production, we do not want to skip over the important role schools play in shaping the next generation of application designers. That is why I am pleased to announce that today Unity is opening an RFP (Request For Proposal) to select up to three schools whose programs will each be awarded 20 copies of Unity Android Pro, Unity Pro and 20 Nexus One Phones.</p><p>The full details of the RFP can be accessed <a
rel="nofollow"  href="http://dl.dropbox.com/u/7429589/Unity_Mobile_Generation_Education_RFP.pdf">here</a>. For additional questions please post comments in the space below or contact us directly at <a
rel="nofollow" style="color:#2a5db0;"  href="mailto:education@unity3d.com">education@unity3d.com</a> .</p><p>Disclaimers</p><p><em>We will try to ship phones to most places. Although accredited colleges and universities worldwide are eligible, Unity Technologies can only ship phones to addresses in the US, Canada, EU / EEA states, Switzerland, Hong Kong, Taiwan and Singapore. If Unity Technologies cannot ship a phone(s) to a school because of taxes, embargoes, FCC restrictions, customs duties and / or fees levied by the destination country or any other reason, Unity Technologies may still grant the software portion of the award. Unity Technologies reserves the right at all times to cancel or alter to the award criteria and reclaim any awarded materials</em></p><p><em>All participating schools agree that this promotion shall be governed by the laws of the state of Denmark.</em></p><p><a
href=http://blogs.unity3d.com/2010/07/07/rfp-unity-to-award-60-android-smart-phones-to-schools/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/07/unity-technologies-rfp-unity-to-award-60-android-smart-phones-to-schools/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] 3SideProjDiffuse</title><link>http://www.bydesigngames.com/2010/07/06/unify-wiki-3sideprojdiffuse/</link> <comments>http://www.bydesigngames.com/2010/07/06/unify-wiki-3sideprojdiffuse/#comments</comments> <pubDate>Tue, 06 Jul 2010 19:56:19 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary: /* ShaderLab - WorldTextureDiffuse.shader */[[Category: Unity 2.x shaders]]
[[Category: Cg shaders]]
[[Category: Pixel lit shaders]]Author: [[User:Slin&#124;Nils Daumann]].==Description==
[[Image:3SideProjDiff_preview.JPG&#124;thumb&#124;A model using ...]]></description> <content:encoded><![CDATA[<p>Summary: /* ShaderLab - WorldTextureDiffuse.shader */</p><hr
/><div>[[Category: Unity 2.x shaders]]<br
/> [[Category: Cg shaders]]<br
/> [[Category: Pixel lit shaders]]<br
/> <br
/> Author: [[User:Slin|Nils Daumann]].<br
/> <br
/> ==Description==<br
/> [[Image:3SideProjDiff_preview.JPG|thumb|A model using this shader]]<br
/> <br
/> The shader projects the texture from three sides at the mesh it is applied to. This works especially very good for simple, kinda organic objects. The object it is applied to will only be effected by per pixel lights.<br
/> This shader basicly removes the need for a decent uv map. The texture will be tiled.<br
/> <br
/> Works on fragment program capable cards (Radeon 9500+, GeForce FX+, Intel 9xx). Supports fog and shadows.<br
/> <br
/> <br
/> ==Usage==<br
/> <br
/> [[Image:3SideProjDiff_setup.JPG|Typical setup]]<br
/> <br
/> * Color is the general color of the material.<br
/> * Texture is for color (Tiling and Offset have no effect).<br
/> * Tile factor specifies how much the texture is tiled.<br
/> <br
/> ==Download==<br
/> [[Media:WorldTextureDiffuse.zip]]<br
/> <br
/> <br
/> ==ShaderLab - WorldTextureDiffuse.shader==<br
/> &lt;shaderlab&gt;<br
/> Shader "World Texture Diffuse"<br
/> {<br
/> Properties<br
/> {<br
/> _Color ("Main Color", Color) = (1,1,1,1)<br
/> _MainTex("Texture", 2D) = "white" {}<br
/> _TileFac("Tile factor", Float) = 5<br
/> }<br
/> <br
/> SubShader<br
/> {<br
/> Pass {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "None"}<br
/> Blend AppSrcAdd AppDstAdd<br
/> Fog { Color [_AddFog] }<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float _TileFac;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float3 worldnormal;<br
/> float3 worldpos;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> <br
/> o.worldnormal = mul(_Object2World, float4(v.normal, 0.0f)).xyz;<br
/> o.worldpos = mul(_Object2World, v.vertex);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> float2 s = float2(_TileFac, -_TileFac);<br
/> <br
/> float2 tex0 = i.worldpos.xy/s;<br
/> float2 tex1 = i.worldpos.zx/s;<br
/> float2 tex2 = i.worldpos.zy/s;<br
/> <br
/> float4 color0_ = tex2D(_MainTex, tex0);<br
/> float4 color1_ = tex2D(_MainTex, tex1);<br
/> float4 color2_ = tex2D(_MainTex, tex2);<br
/> <br
/> i.worldnormal = normalize(i.worldnormal);<br
/> float3 projnormal = saturate(pow(i.worldnormal*1.5, 4));<br
/> <br
/> float3 color = lerp(color1_, color0_, projnormal.z);<br
/> color = lerp(color, color2_, projnormal.x);<br
/> <br
/> return float4(color.rgb*_PPLAmbient, 1.0);<br
/> }<br
/> ENDCG<br
/> }<br
/> Pass {<br
/> Name "BASE"<br
/> Tags {"LightMode" = "VertexOrPixel"}<br
/> Blend AppSrcAdd AppDstAdd<br
/> Fog { Color [_AddFog] }<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float _TileFac;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> float3 worldnormal;<br
/> float3 worldpos;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> <br
/> o.worldnormal = mul(_Object2World, float4(v.normal, 0.0f)).xyz;<br
/> o.worldpos = mul(_Object2World, v.vertex);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> float2 s = float2(_TileFac, -_TileFac);<br
/> <br
/> float2 tex0 = i.worldpos.xy/s;<br
/> float2 tex1 = i.worldpos.zx/s;<br
/> float2 tex2 = i.worldpos.zy/s;<br
/> <br
/> float4 color0_ = tex2D(_MainTex, tex0);<br
/> float4 color1_ = tex2D(_MainTex, tex1);<br
/> float4 color2_ = tex2D(_MainTex, tex2);<br
/> <br
/> i.worldnormal = normalize(i.worldnormal);<br
/> float3 projnormal = saturate(pow(i.worldnormal*1.5, 4));<br
/> <br
/> float3 color = lerp(color1_, color0_, projnormal.z);<br
/> color = lerp(color, color2_, projnormal.x);<br
/> <br
/> return float4(color.rgb*_PPLAmbient, 1.0);<br
/> }<br
/> ENDCG<br
/> }<br
/> Pass<br
/> {<br
/> Name "PPL"<br
/> Tags { "LightMode" = "Pixel" }<br
/> <br
/> Blend AppSrcAdd AppDstAdd<br
/> Fog { Color [_AddFog] }<br
/> <br
/> CGPROGRAM<br
/> #pragma vertex vert<br
/> #pragma fragment frag<br
/> <br
/> #pragma multi_compile_builtin<br
/> #pragma fragmentoption ARB_fog_exp2<br
/> #pragma fragmentoption ARB_precision_hint_fastest<br
/> <br
/> #include "UnityCG.cginc"<br
/> #include "AutoLight.cginc"<br
/> <br
/> uniform sampler2D _MainTex;<br
/> uniform float _TileFac;<br
/> <br
/> struct v2f<br
/> {<br
/> V2F_POS_FOG;<br
/> LIGHTING_COORDS<br
/> float3 normal;<br
/> float3 worldnormal;<br
/> float3 worldpos;<br
/> float3 lightDir;<br
/> }; <br
/> <br
/> v2f vert(appdata_base v)<br
/> {<br
/> v2f o;<br
/> <br
/> PositionFog( v.vertex, o.pos, o.fog );<br
/> o.normal = v.normal;<br
/> <br
/> o.worldnormal = mul(_Object2World, float4(v.normal, 0.0f)).xyz;<br
/> o.worldpos = mul(_Object2World, v.vertex);<br
/> <br
/> o.lightDir = ObjSpaceLightDir(v.vertex);<br
/> TRANSFER_VERTEX_TO_FRAGMENT(o);<br
/> <br
/> return o;<br
/> }<br
/> <br
/> float4 frag(v2f i) : COLOR<br
/> {<br
/> float2 s = float2(_TileFac, -_TileFac);<br
/> <br
/> float2 tex0 = i.worldpos.xy/s;<br
/> float2 tex1 = i.worldpos.zx/s;<br
/> float2 tex2 = i.worldpos.zy/s;<br
/> <br
/> float4 color0_ = tex2D(_MainTex, tex0);<br
/> float4 color1_ = tex2D(_MainTex, tex1);<br
/> float4 color2_ = tex2D(_MainTex, tex2);<br
/> <br
/> i.normal = normalize(i.normal);<br
/> <br
/> i.worldnormal = normalize(i.worldnormal);<br
/> float3 projnormal = saturate(pow(i.worldnormal*1.5, 4));<br
/> <br
/> float3 color = lerp(color1_, color0_, projnormal.z);<br
/> color = lerp(color, color2_, projnormal.x);<br
/> <br
/> return DiffuseLight(i.lightDir, i.normal, float4(color.rgb, 1.0), LIGHT_ATTENUATION(i));<br
/> }<br
/> ENDCG<br
/> }<br
/> }<br
/> <br
/> FallBack "Diffuse"<br
/> }<br
/> &lt;/shaderlab&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=3SideProjDiffuse>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/06/unify-wiki-3sideprojdiffuse/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] HP</title><link>http://www.bydesigngames.com/2010/07/06/unify-wiki-hp/</link> <comments>http://www.bydesigngames.com/2010/07/06/unify-wiki-hp/#comments</comments> <pubDate>Tue, 06 Jul 2010 18:32:54 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:Author: Sobhan Bahrami== Description ==This tutorial is for "Adding HP to your Enemy and Explode it!!"ok you have to Do following things to get the result :Add this script to your enemy: Make sure your enemy have collisions, rigidbo...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>Author: Sobhan Bahrami<br
/> <br
/> == Description ==<br
/> <br
/> This tutorial is for "Adding HP to your Enemy and Explode it!!"<br
/> <br
/> ok you have to Do following things to get the result :<br
/> <br
/> <br
/> Add this script to your enemy: Make sure your enemy have collisions, rigidbody or box collider.<br
/> <br
/> And you bullet Perfab Most have "Box Collider, rigidbody.<br
/> <br
/> '''Note : Please Do not Made an Illegal Copy Of this Article .''' <br
/> <br
/> thanks , S. Bahrami<br
/> <br
/> == JavaScript==<br
/> <br
/> &lt;javascript&gt;<br
/> <br
/> var damage = 5; // take 5 hit of damage every bullet collision.<br
/> var health = 100; //can have more than 100 of health.<br
/> var explosion : Transform; // The explosion perfab<br
/> <br
/> function OnCollisionEnter(collision : Collision)<br
/> {<br
/> if (health &lt;=0)<br
/> {<br
/> Destroy(gameObject); // destroy the object of the scene<br
/> var exp = Instantiate(explosion, gameObject.transform.position, Quaternion.identity); //Start the explosion.<br
/> BroadcastMessage("IsGone"); // Show the message notification.<br
/> }<br
/> health = health - damage; // get down the damage.<br
/> }</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=HP>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/06/unify-wiki-hp/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unify Wiki] DropDownList</title><link>http://www.bydesigngames.com/2010/07/06/unify-wiki-dropdownlist/</link> <comments>http://www.bydesigngames.com/2010/07/06/unify-wiki-dropdownlist/#comments</comments> <pubDate>Tue, 06 Jul 2010 15:24:14 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Summary:[[Category: C Sharp]]
[[Category: MonoBehaviour]]
[[Category: GUI]]
Author: rkite
==Description==
Creates a GUI Dropdown list that looks and works like the Hierarchy window in Unity, using a heirercy basied on the parent/child releastionship...]]></description> <content:encoded><![CDATA[<p>Summary:</p><hr
/><div>[[Category: C Sharp]]<br
/> [[Category: MonoBehaviour]]<br
/> [[Category: GUI]]<br
/> Author: rkite<br
/> ==Description==<br
/> Creates a GUI Dropdown list that looks and works like the Hierarchy window in Unity, using a heirercy basied on the parent/child releastionship of the objects transforms.<br
/> <br
/> ==Functionality==<br
/> The script finds objects that start with whatever text is typed in the text field and updates the dropdown list to show only matching items.<br
/> If the text field is blank it expands the whole list.<br
/> <br
/> <br
/> [[Image:DropMenu.png]]<br
/> <br
/> ==Usage==<br
/> 1.) Attach this script to a [http://unity3d.com/support/documentation/ScriptReference/GameObject.html GameObject] in your project. <br
/> <br
/> 2.) Set the root to the GameObject that is the top of your hierarchy.<br
/> <br
/> 3.) Set dropSkin to a [http://unity3d.com/support/documentation/ScriptReference/GUISkin.html GUISkin] with 3 [http://unity3d.com/support/documentation/ScriptReference/GUISkin-customStyles.html Custom Styles] for each level of your Hierarchy. Each set of three Custom Styles should have the Content Offset adjusted for the level of the hierachy. Its kind of a pain but I have not found a better way to do this yet. If your hieracrhy has 10 levels you need 30 custom styles to give you the proper indented look.<br
/> <br
/> 4.) Give the [http://unity3d.com/support/documentation/ScriptReference/GUISkin-customStyles.html Custom Styles] the approprate texture for Normal, Hover and Active.<br
/> <br
/> ==C# - DropDownList.cs==<br
/> <br
/> &lt;csharp&gt;/* Usage:<br
/> * Add script to an object in the game.<br
/> * root = the transform of <br
/> * dropSkin = the GUISkin used to set the look of your list.<br
/> * The GUISkin must contain 3 Custom Styles for each level of the Hierarchy<br
/> * Element 0 = the settings for element with children<br
/> * Element 1 = the settings for element with no children<br
/> * Element 3 = the settings for selected element with children<br
/> *//////////////////////////////////////////////////////////////////////////<br
/> using UnityEngine;<br
/> using System.Collections;<br
/> using System.Collections.Generic;<br
/> using System.Text.RegularExpressions;<br
/> public class DropDownList : MonoBehaviour<br
/> {<br
/> private Rect DropDownRect; // Size and Location for drop down<br
/> private Transform currentRoot; // selected object transform<br
/> private Vector2 ListScrollPos; // scroll list position<br
/> public string selectedItemCaption; // name of selected item<br
/> private string lastCaption; // last selected item<br
/> private int guiWidth; // width of drop list<br
/> private int guiHight; // hight of drop list<br
/> private bool textChanged; // if text in text box has changed look for item<br
/> private bool clearDropList; // clear text box<br
/> public bool DropdownVisible; // show drop down list<br
/> public bool updateInfo; // update info window<br
/> <br
/> public Transform root; // top of the Hierarchy<br
/> public GUISkin dropSkin; // GUISkin for drop down list<br
/> public int itemtSelected; // index of selected item<br
/> public bool targetChange; // text in text box was changed, update list<br
/> <br
/> public class GuiListItem //The class that contains our list items <br
/> {<br
/> public string Name; // name of the item<br
/> public int GuiStyle; // current style to use<br
/> public int UnSelectedStyle; // unselected GUI style<br
/> public int SelectedStyle; // selected GUI style<br
/> public int Depth; // depth in the Hierarchy<br
/> public bool Selected; // if the item is selected<br
/> public bool ToggleChildren; // show child objects in list<br
/> <br
/> // constructors <br
/> public GuiListItem(bool mSelected, string mName, int iGuiStyle, bool childrenOn, int depth)<br
/> {<br
/> Selected = mSelected;<br
/> Name = mName;<br
/> GuiStyle = iGuiStyle;<br
/> ToggleChildren = childrenOn;<br
/> Depth = depth;<br
/> UnSelectedStyle = 0;<br
/> SelectedStyle = 0;<br
/> <br
/> }<br
/> public GuiListItem(bool mSelected, string mName)<br
/> {<br
/> Selected = mSelected;<br
/> Name = mName;<br
/> GuiStyle = 0;<br
/> ToggleChildren = true;<br
/> Depth = 0;<br
/> UnSelectedStyle = 0;<br
/> SelectedStyle = 0;<br
/> }<br
/> public GuiListItem(string mName)<br
/> {<br
/> Selected = false;<br
/> Name = mName;<br
/> GuiStyle = 0;<br
/> ToggleChildren = true;<br
/> Depth = 0;<br
/> UnSelectedStyle = 0;<br
/> SelectedStyle = 0;<br
/> }<br
/> <br
/> // Accessors<br
/> public void enable()// don't show in list<br
/> {<br
/> Selected = true;<br
/> }<br
/> public void disable()// show in list<br
/> {<br
/> Selected = false;<br
/> }<br
/> public void setStlye(int stlye)<br
/> {<br
/> GuiStyle = stlye;<br
/> }<br
/> public void setToggleChildren(bool childrenOn)<br
/> {<br
/> ToggleChildren = childrenOn;<br
/> }<br
/> public void setDepth(int depth)<br
/> {<br
/> Depth = depth;<br
/> }<br
/> public void SetStyles(int unSelected, int selected)<br
/> {<br
/> UnSelectedStyle = unSelected;<br
/> SelectedStyle = selected;<br
/> }<br
/> }<br
/> <br
/> //Declare our list of stuff <br
/> public List&lt;GuiListItem&gt; MyListOfStuff; <br
/> <br
/> // Initialization<br
/> void Start()<br
/> {<br
/> guiWidth = 400;<br
/> guiHight = 28;<br
/> // Manually position our list, because the dropdown will appear over other controls <br
/> DropDownRect = new Rect(10, 10, guiWidth, guiHight);<br
/> DropdownVisible = false;<br
/> itemtSelected = -1;<br
/> targetChange = false;<br
/> lastCaption = selectedItemCaption = "Select a Part...";<br
/> <br
/> if (!root)<br
/> root = gameObject.transform;<br
/> <br
/> MyListOfStuff = new List&lt;GuiListItem&gt;(); //Initialize our list of stuff <br
/> // fill the list<br
/> BuildList(root);<br
/> // set GUI for each item in list<br
/> SetupGUISetting();<br
/> // fill the list<br
/> FillList(root);<br
/> }<br
/> <br
/> void OnGUI()<br
/> {<br
/> //Show the dropdown list if required (make sure any controls that should appear behind the list are before this block) <br
/> if (DropdownVisible)<br
/> {<br
/> GUI.SetNextControlName("ScrollView");<br
/> GUILayout.BeginArea(new Rect(DropDownRect.xMin, DropDownRect.yMin + DropDownRect.height, guiWidth, Screen.height * .25f), "", "box");<br
/> ListScrollPos = GUILayout.BeginScrollView(ListScrollPos, dropSkin.scrollView);<br
/> GUILayout.BeginVertical(GUILayout.Width(120));<br
/> <br
/> for (int i = 0; i &lt; MyListOfStuff.Count; i++)<br
/> {<br
/> if (MyListOfStuff[i].Selected &amp;&amp; GUILayout.Button(MyListOfStuff[i].Name, dropSkin.customStyles[MyListOfStuff[i].GuiStyle]))<br
/> {<br
/> HandleSelectedButton(i);<br
/> }<br
/> }<br
/> GUILayout.EndVertical();<br
/> GUILayout.EndScrollView();<br
/> GUILayout.EndArea();<br
/> }<br
/> //Draw the dropdown control <br
/> GUILayout.BeginArea(DropDownRect, "", "box");<br
/> GUILayout.BeginHorizontal();<br
/> string ButtonText = (DropdownVisible) ? "&lt;&lt;" : "&gt;&gt;";<br
/> DropdownVisible = GUILayout.Toggle(DropdownVisible, ButtonText, "button", GUILayout.Width(32), GUILayout.Height(20));<br
/> GUI.SetNextControlName("PartSelect");<br
/> selectedItemCaption = GUILayout.TextField(selectedItemCaption);<br
/> clearDropList = GUILayout.Toggle(clearDropList, "Clear", "button", GUILayout.Width(40), GUILayout.Height(20));<br
/> GUILayout.EndHorizontal();<br
/> GUILayout.EndArea();<br
/> }<br
/> <br
/> void Update()<br
/> {<br
/> //check if text box info changed<br
/> if (selectedItemCaption != lastCaption)<br
/> {<br
/> textChanged = true;<br
/> }<br
/> <br
/> // if text box info changed look for part matching text<br
/> if (textChanged)<br
/> {<br
/> lastCaption = selectedItemCaption;<br
/> textChanged = false;<br
/> // go though list to find item<br
/> for (int i = 0; i &lt; MyListOfStuff.Count; ++i)<br
/> {<br
/> if (MyListOfStuff[i].Name.StartsWith(selectedItemCaption, System.StringComparison.CurrentCultureIgnoreCase))<br
/> {<br
/> <br
/> MyListOfStuff[i].enable();<br
/> MyListOfStuff[i].ToggleChildren = false;<br
/> MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;<br
/> }<br
/> else<br
/> {<br
/> MyListOfStuff[i].disable();<br
/> MyListOfStuff[i].ToggleChildren = false;<br
/> MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;<br
/> }<br
/> }<br
/> <br
/> <br
/> for (int i = 0; i &lt; MyListOfStuff.Count; ++i)<br
/> {<br
/> // check list for item<br
/> int test = string.Compare(selectedItemCaption, MyListOfStuff[i].Name, true);<br
/> if (test == 0)<br
/> {<br
/> itemtSelected = i;<br
/> targetChange = true;<br
/> break; // stop looking when found<br
/> }<br
/> }<br
/> }<br
/> <br
/> // reset message if list closed and text box is empty<br
/> if (selectedItemCaption == "" &amp;&amp; !DropdownVisible)<br
/> {<br
/> lastCaption = selectedItemCaption = "Select a Part...";<br
/> ClearList(root);<br
/> FillList(root);<br
/> }<br
/> <br
/> // if Clear button pushed<br
/> if (clearDropList)<br
/> {<br
/> clearDropList = false;<br
/> selectedItemCaption = "";<br
/> }<br
/> }<br
/> <br
/> <br
/> public void HandleSelectedButton(int selection)<br
/> {<br
/> // do the stuff, camera etc<br
/> itemtSelected = selection;//Set the index for our currently selected item <br
/> updateInfo = true;<br
/> selectedItemCaption = MyListOfStuff[selection].Name;<br
/> currentRoot = GameObject.Find(MyListOfStuff[itemtSelected].Name).transform;<br
/> <br
/> // toggle item show child<br
/> MyListOfStuff[selection].ToggleChildren = !MyListOfStuff[selection].ToggleChildren;<br
/> <br
/> lastCaption = selectedItemCaption;<br
/> // fill my drop down list with the children of the current selected object<br
/> if (!MyListOfStuff[selection].ToggleChildren)<br
/> {<br
/> if (currentRoot.childCount &gt; 0)<br
/> {<br
/> MyListOfStuff[selection].GuiStyle = MyListOfStuff[selection].SelectedStyle;<br
/> }<br
/> FillList(currentRoot);<br
/> }<br
/> else<br
/> {<br
/> if (currentRoot.childCount &gt; 0)<br
/> {<br
/> MyListOfStuff[selection].GuiStyle = MyListOfStuff[selection].UnSelectedStyle;<br
/> }<br
/> ClearList(currentRoot);<br
/> }<br
/> targetChange = true;<br
/> <br
/> <br
/> }<br
/> <br
/> // show only items that are the root and its children<br
/> public void FillList(Transform root)<br
/> {<br
/> foreach (Transform child in root)<br
/> {<br
/> for (int i = 0; i &lt; MyListOfStuff.Count; ++i)<br
/> {<br
/> if (MyListOfStuff[i].Name == child.name)<br
/> {<br
/> MyListOfStuff[i].enable();<br
/> MyListOfStuff[i].ToggleChildren = false;<br
/> MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;<br
/> }<br
/> }<br
/> }<br
/> }<br
/> // turn off children objects<br
/> public void ClearList(Transform root)<br
/> {<br
/> //Debug.Log(root.name);<br
/> Transform[] childs = root.GetComponentsInChildren&lt;Transform&gt;();<br
/> foreach (Transform child in childs)<br
/> {<br
/> for (int i = 0; i &lt; MyListOfStuff.Count; ++i)<br
/> {<br
/> if (MyListOfStuff[i].Name == child.name &amp;&amp; MyListOfStuff[i].Name != root.name)<br
/> {<br
/> MyListOfStuff[i].disable();<br
/> MyListOfStuff[i].ToggleChildren = false;<br
/> MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;<br
/> }<br
/> }<br
/> }<br
/> }<br
/> <br
/> // recursively build the list so the hierarchy is in tact<br
/> void BuildList(Transform root)<br
/> {<br
/> // for every object in the thing we are viewing<br
/> foreach (Transform child in root)<br
/> {<br
/> // add the item<br
/> MyListOfStuff.Add(new GuiListItem(false, child.name));<br
/> // if it has children add the children<br
/> if (child.childCount &gt; 0)<br
/> {<br
/> BuildList(child);<br
/> }<br
/> }<br
/> }<br
/> <br
/> public void ResetDropDownList()<br
/> {<br
/> selectedItemCaption = "";<br
/> ClearList(root);<br
/> FillList(root);<br
/> }<br
/> <br
/> public string RemoveNumbers(string key)<br
/> {<br
/> return Regex.Replace(key, @"&#92;d", "");<br
/> }<br
/> <br
/> // sets the drop list elements to use the correct GUI skin custom style<br
/> private void SetupGUISetting()<br
/> {<br
/> // set drop down list gui<br
/> int depth = 0;<br
/> // check all the parts for hierarchy depth<br
/> for (int i = 0; i &lt; MyListOfStuff.Count; ++i)<br
/> {<br
/> GameObject currentObject = GameObject.Find(MyListOfStuff[i].Name);<br
/> Transform currentTransform = currentObject.transform;<br
/> depth = 0;<br
/> <br
/> if (currentObject.transform.parent == root) // if under root<br
/> {<br
/> if (currentObject.transform.childCount &gt; 0)<br
/> {<br
/> MyListOfStuff[i].GuiStyle = depth;<br
/> MyListOfStuff[i].UnSelectedStyle = depth;<br
/> MyListOfStuff[i].SelectedStyle = depth + 2;<br
/> }<br
/> else<br
/> {<br
/> MyListOfStuff[i].GuiStyle = depth + 1;<br
/> MyListOfStuff[i].UnSelectedStyle = depth + 1;<br
/> MyListOfStuff[i].SelectedStyle = depth + 1;<br
/> }<br
/> <br
/> MyListOfStuff[i].Depth = depth;<br
/> <br
/> }<br
/> else // if not under root find depth<br
/> {<br
/> while (currentTransform.parent != root)<br
/> {<br
/> ++depth;<br
/> currentTransform = currentTransform.parent;<br
/> }<br
/> MyListOfStuff[i].Depth = depth;<br
/> // set gui basied on depth<br
/> if (currentObject.transform.childCount &gt; 0)<br
/> {<br
/> MyListOfStuff[i].GuiStyle = depth * 3;<br
/> MyListOfStuff[i].UnSelectedStyle = depth * 3;<br
/> MyListOfStuff[i].SelectedStyle = (depth * 3) + 2;<br
/> }<br
/> else<br
/> {<br
/> MyListOfStuff[i].GuiStyle = depth * 3 + 1;<br
/> MyListOfStuff[i].UnSelectedStyle = depth * 3 + 1;<br
/> MyListOfStuff[i].SelectedStyle = depth * 3 + 1;<br
/> }<br
/> }<br
/> }<br
/> }<br
/> }<br
/> &lt;/csharp&gt;</div><p><a
href=http://www.unifycommunity.com/wiki/index.php?title=DropDownList>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/06/unify-wiki-dropdownlist/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] How to make a tunnel effect with particle in Unity 3D from amit1532</title><link>http://www.bydesigngames.com/2010/07/05/infiniteunity3d-how-to-make-a-tunnel-effect-with-particle-in-unity-3d-from-amit1532/</link> <comments>http://www.bydesigngames.com/2010/07/05/infiniteunity3d-how-to-make-a-tunnel-effect-with-particle-in-unity-3d-from-amit1532/#comments</comments> <pubDate>Mon, 05 Jul 2010 15:59:49 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9116</guid> <description><![CDATA[Well, even tho im nub begginer with unity, i want to share this with the other nubs o-o
Hope you like it
Great demo of using the particle systems. Music&#8217;s got me wanting to grab a glo-stick!! Thanks for sharing this.- Mani Tags: amit1532, parti...]]></description> <content:encoded><![CDATA[<p>Well, even tho im nub begginer with unity, i want to share this with the other nubs o-o<br
/> Hope you like it</p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/bftaTmZlT_4&#038;fs=1" type="application/x-shockwave-flash" width="550" height="334"></iframe></p><p>Great demo of using the <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/particle-systems/" class="st_tag internal_tag" title="Posts tagged with particle systems">particle systems</a>. <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/music/" class="st_tag internal_tag" title="Posts tagged with Music">Music</a>&#8217;s got me wanting to grab a glo-stick!! Thanks for sharing this.- Mani</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/amit1532/" title="amit1532">amit1532</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/particle-systems/" title="particle systems">particle systems</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/tunnel/" title="tunnel">tunnel</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/13-reasons-for-flash-developers-to-learn-unity-3d-90-days-later/" title="13 Reasons For Flash Developers to Learn Unity 3D- 90 Days Later (April 17, 2009)">13 Reasons For Flash Developers to Learn Unity 3D- 90 Days Later</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/how-to-make-a-tunnel-effect-with-particle-in-unity-3d-from-amit1532/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/05/infiniteunity3d-how-to-make-a-tunnel-effect-with-particle-in-unity-3d-from-amit1532/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Realtime cloth physics and mod music using Unity 3.0 from Decane Games</title><link>http://www.bydesigngames.com/2010/07/05/infiniteunity3d-realtime-cloth-physics-and-mod-music-using-unity-3-0-from-decane-games/</link> <comments>http://www.bydesigngames.com/2010/07/05/infiniteunity3d-realtime-cloth-physics-and-mod-music-using-unity-3-0-from-decane-games/#comments</comments> <pubDate>Mon, 05 Jul 2010 15:55:12 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9114</guid> <description><![CDATA[Demo showing realtime physics cloth and mod music in a nice little intro demo&#8230; This is a nice one from Decane games demonstrating some tennis balls tearing through some cloth in Unity version 3.
subscribe to Decane Games on YouTube to stay in t...]]></description> <content:encoded><![CDATA[<p>Demo showing realtime physics cloth and mod <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/music/" class="st_tag internal_tag" title="Posts tagged with Music">music</a> in a nice little intro demo&#8230; This is a nice one from Decane <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" class="st_tag internal_tag" title="Posts tagged with games">games</a> demonstrating some tennis balls tearing through some cloth in Unity version 3.</p><p><iframe
class="embeddedvideo" src="http://www.youtube.com/v/mfwhey9uZUk&#038;fs=1" type="application/x-shockwave-flash" width="550" height="334"></iframe></p><p>subscribe to<a
rel="nofollow"  href="http://www.youtube.com/user/DecaneGames"> Decane Games on YouTube</a> to stay in the loop.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/mod/" title=".mod">.mod</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/cloth/" title="cloth">cloth</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/decane-games/" title="Decane Games">Decane Games</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/mod-music/" title="mod music">mod music</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/music/" title="Music">Music</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/sound/" title="sound">sound</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-3/" title="Unity 3">Unity 3</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/videos/" title="Videos">Videos</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-and-max-creating-music-from-interactions/" title="Unity3D and Max Creating Music From Interactions! (April 29, 2010)">Unity3D and Max Creating Music From Interactions!</a> (7)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/cloth-tearing-in-unity-3-beta-from-brokenpoly/" title="Cloth Tearing in Unity 3 Beta from brokenpoly (June 24, 2010)">Cloth Tearing in Unity 3 Beta from brokenpoly</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/i-am-bird-3d-interactive-experience/" title="[ I am Bird ] :: 3D interactive experience (May 26, 2010)">[ I am Bird ] :: 3D interactive experience</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/waltz-in-unity3d-via-motion-capture/" title="Waltz in Unity3D via Motion Capture (March 17, 2010)">Waltz in Unity3D via Motion Capture</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/video-demonstrations-from-grid-lab-including-beepocalypse-and-wilderness/" title="VIDEO: Demonstrations from Grid LAB including &#8220;Beepocalypse&#8221; and &#8220;Wilderness&#8221; (June 15, 2010)">VIDEO: Demonstrations from Grid LAB including &#8220;Beepocalypse&#8221; and &#8220;Wilderness&#8221;</a> (3)</li></ul><p><a
href=http://infiniteunity3d.com/realtime-cloth-physics-and-mod-music-using-unity-3-0-from-decane-games/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/05/infiniteunity3d-realtime-cloth-physics-and-mod-music-using-unity-3-0-from-decane-games/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Unity and iOS 4.0, update III</title><link>http://www.bydesigngames.com/2010/07/02/unity-technologies-unity-and-ios-4-0-update-iii/</link> <comments>http://www.bydesigngames.com/2010/07/02/unity-technologies-unity-and-ios-4-0-update-iii/#comments</comments> <pubDate>Fri, 02 Jul 2010 03:28:03 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=2847</guid> <description><![CDATA[Dear community, once again I&#8217;d like to start by offering my thanks to everyone for their patience through an unclear situation. We&#8217;re grateful for the dedication and commitment many of you have shown through all this and it once again serves as another reminder of just how awesome our community is.
Like everyone else who&#8217;s excited [...]]]></description> <content:encoded><![CDATA[<p>Dear community, once again I&#8217;d like to start by offering my thanks to everyone for their patience through an unclear situation. We&#8217;re grateful for the dedication and commitment many of you have shown through all this and it once again serves as another reminder of just how awesome our community is.</p><p>Like everyone else who&#8217;s excited about mobile development, and in particular using Unity to create awesome games for the iPhone, we&#8217;ve been following the development of the iOS 4.0 Terms of Service closely. While we&#8217;ve had some reason to believe Unity using C# and JavaScript would be okay, Apple has not confirmed anything and in general very little information has been forthcoming. However, as of today Apple is still approving every game we know of and Apple has recently featured several excellent Unity games in the App Store. And all along we&#8217;ve continued to invest heavily in our Unity iPhone line, including a number of new features that will be coming soon in the Unity 3.0 release. But as soon as the new terms of service were revealed we also started working on a contingency plan, <em>just in case </em>Apple decides to stop approving Unity-based games. Allow me to explain that contingency plan so everyone out there knows what &#8220;plan B&#8221; looks like.</p><p>As you probably know, Unity is mostly written in optimized C++ with assembly optimizations and Objective-C wrappers thrown in for good measure. Game logic is written by the developer, using C# and JavaScript, both of which are running on top of .NET. The beauty of this scheme is that we&#8217;ve been able to sidestep the old scripting-versus-native question as .NET provides for very rapid development (and almost near-instant compilation), while at the same time generating highly optimized code. And on the iPhone we actually ahead-of-time compile .NET to completely static machine code for speed and conformance with the old iOS Terms of Service. Also, on the iPhone it&#8217;s easy to drop into Objective-C code to access fresh APIs like the Game Center, Core Motion, etc. This is truly a case of best of both worlds.</p><p>Since Unity&#8217;s .NET support may conflict with the new terms of service, we are working on a solution where entire games can be created without any .NET code. In this proposed scenario all the scripting APIs will be exposed to and can be manipulated from C++. This is of course not ideal as there are thousands of code examples, snippets, and extensions created by the community can no longer be copied into your project, .NET assemblies can&#8217;t simply be dropped in, and C++ is more complex than JavaScript or even C#.</p><p>But honestly, it&#8217;s not as bad as one might imagine. One still has the full benefit of the asset pipeline, the shader language, an array of tools and of course the engine and its optimizations. We are also working on maintaining the elegant workflows of the JavaScript and C# in Unity: &#8220;scripts&#8221; will still be able to be edited live, variables will still be shown in the inspector, and a number of other sweet features that one doesn&#8217;t usually associate with C++ development. Essentially we are creating a .NET based C++ compiler that will allow us to write purely managed C++ code in the Web Player and other Platforms. On iOS C++ code will be compiled by Apple&#8217;s Xcode tools. This indeed is a very powerful combination. In the Unity Editor, you have fast compilation times and a completely sandboxed environment. On the device you have native C++ performance and low memory overhead. This combines the key strength of scripting languages and C++ code.</p><p>When you combine those with the fact that when it comes to straightforward game logic, C++ really isn&#8217;t as complex as it&#8217;s often made out to be (and as it can be) hopefully you can see that life won&#8217;t be so bad after all. To help demonstrate my point, let&#8217;s look at a few different examples.</p><p>Here is a simple JavaScript function to rotate an object around the world origin:</p><p><img
class="alignnone size-full wp-image-3149" title="JavaScript Example" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/js_code_11.png" alt="JavaScript Example" width="554" height="54"/></p><p>And now here is that same bit of code written in C++:</p><p><img
class="alignnone size-full wp-image-3146" title="C++ Example" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/cpp_code_1.png" alt="C++ Example" width="707" height="118"/></p><p></p><p>As you can see the code required isn&#8217;t all that different in simple case scenarios, but what about a more complex example?</p><p>Here is a bit of JavaScript that peeks accelerometer and looks for user touch input on an iOS device, then uses that to fly a craft and fire a missile in the game:</p><p><img
class="size-full wp-image-3119" title="Large JavaScript Example" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/Screen-shot-2010-07-02-at-4.01.12-AM.png" alt="Large JavaScript Example" width="571" height="771"/></p><p>And again, here is that same set of code in C++:</p><p><img
class="alignnone size-full wp-image-3145" title="Large C++ Example" src="http://blogs.unity3d.com/wp-content/uploads/2010/07/code_cpp_21.png" alt="Large C++ Example" width="671" height="940"/></p><p>Again, the code doesn&#8217;t get that much more complicated just by writing it in C++ versus JavaScript, and the difference is even smaller compared to C#.</p><p>We continue to be excited about the iPhone, iPod touch and iPad as platform targets for Unity developers. While we don&#8217;t think C++ is the best language to write game code, using C++ as a scripting language has memory and performance advantages on low-end devices. This is a great feature to have for developers who want to squeeze the last ounce of memory &amp; performance out of their games.</p><p>We still can&#8217;t believe Apple will force developers into choosing a specific language for development. And as mentioned, Apple is still approving every Unity-based game we know of. In case the situation changes, rest assured that we are working this Plan B.</p><p>We&#8217;ll be ready to talk more about this as well as share some time-line information with you soon, while of course waiting to find out if any of this will actually be necessary.</p><p><a
href=http://blogs.unity3d.com/2010/07/02/unity-and-ios-4-0-update-iii/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/02/unity-technologies-unity-and-ios-4-0-update-iii/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Creating game play environments : Considering &#8216;off-screen&#8217; space.</title><link>http://www.bydesigngames.com/2010/07/02/infiniteunity3d-creating-game-play-environments-considering-off-screen-space/</link> <comments>http://www.bydesigngames.com/2010/07/02/infiniteunity3d-creating-game-play-environments-considering-off-screen-space/#comments</comments> <pubDate>Fri, 02 Jul 2010 01:37:44 +0000</pubDate> <dc:creator>TheRussMorris</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9093</guid> <description><![CDATA[Creating game play environments : Considering &#8216;off-screen&#8217; space.
First off, I am in no way an &#8216;expert&#8217; in the area of photography and film, but the theory of &#8216;off-screen&#8217; space is a concept that is simple to get you...]]></description> <content:encoded><![CDATA[<p></p><div><strong>Creating game play environments : Considering &#8216;off-screen&#8217; space.</strong></div><div><em>First off, I am in no way an &#8216;expert&#8217; in the area of photography and film, but the theory of &#8216;off-screen&#8217; space is a concept that is simple to get your head around and can improve the way in which you consider your game play environments. If you wish to contribute your thoughts to this theory, then feel free to do so.</em></div><div>Each of my projects to date has had one thing in common, they’re usually large scale environments. The first two projects were based upon real-world locations, the Natural History Museum was a confined, static space, whilst Westminster Bridge required not only an accurate replication of the interactive game play environment, but also the surrounding area. Whilst replicating the obvious landmarks was important, from the outset of the project I knew that in order to succeed in my intentions I needed to spend a significant amount of time supporting the centerpiece of the map by creating the surrounding areas.</div><div><p>In order to fully justify the necessity of the surrounding environment to enhance the central, playable area, we can look into the world of film theory, and in particular ‘off-screen’ space.</p><p><em>“One of the many elements shared by film, television, and videogames is the use of on-screen and off-screen space in the creation of a diagetic world&#8230;Technical as well as aesthetic factors influence the design and use of space in the video game.”</em><br
/> Wolf, Mark J.P. &#8211; The Medium of the Video Game, University of Texas Press (2002)</p><p><strong>Defining off-screen space.</strong></p><p>In the simplest of terms, ‘off-screen’ can be attributed to 6 areas around a framed scene, to the left and right, top and bottom, behind the camera, and behind the set.</p><p>When relating to the composition of a video game environment, we can consider the ‘set’ as the immediate interactive area of the environment. When applied to designing game play environments, this area differs depending on the genre, or overall purpose of the environment. For example, a game like Fallout 3 (Bethesda Softworks, 2008) has a constantly changing ‘set’, but if the overall world is designed correctly, we can still define each area around the set. However, a racing game has a defined space in which the player is can interact with the environment, meaning that composing the space around the set is made slightly easier as all viewing angles and possibilities are pre-determined.</p><p>The ultimate goal of successfully utilizing the ‘off-screen’ space is to make the player feel that there is more to the scene than is currently visible. Expansive outdoor environments in <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" class="st_tag internal_tag" title="Posts tagged with games">games</a> use visual cues, and <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" class="st_tag internal_tag" title="Posts tagged with games">games</a> such as Fallout 3 rely on them as a way of encouraging the player to explore.</p><p>At this point it’s worth noting that audio cues are also a fundamental part of effectively using off-screen space, but for now I’m only going to look at the visual aspect.</p></div><div><img
src="https://lh5.googleusercontent.com/Kny1_UYR_FURiiwTHMnpzWe9n8ULtIcXfOfCjRDYj-gN95Gjo-TXnKFIGT-AINarR7VH67npIwtF8f5OsjwU4eUtQ_oNj4n6U_1OaMRJ90RykBHw" alt=""/><img
src="https://lh3.googleusercontent.com/vso_IPxoxsngOyZF6aU914WT9TGiMFZbWL72AkugRNjSLyf0byv_1uyvIUAWfB4qheVhYRgi0IK5cPtfwyHTZKP2jsLD7iAhJxCGWmYeC308vYKH" alt=""/><br
/> <strong>Fallout 3 (Bethesda Softworks, 2008) relies on distant landmarks to encourage the player to explore the wastelands.</strong><p><strong>Static Environments</strong></p><p>In static environments, as previously mentioned, the ‘set’ is more clearly defined, so that when it comes to designing the environment we can control exactly what the viewer will be seeing. When composing the final renders for the Natural History Museum scene, I carefully chose angles that not only showed off the key elements of the space, but also made use of ‘off-screen’ space to give the illusion that there was more to environment than that what existed in frame, when in fact behind the camera there was nothing.</p></div><div><img
src="https://lh6.googleusercontent.com/AVCoJ5GTyIyEG3pruchBy5Invi6QMtfqK9OabWOS0SWyq3wiJA385EkMsDHaKFJ6LpDNuKMz_xxVp77cPNi3ewCFxTZB8Gz0UdLMrtnQaofbuuoJ" alt=""/><p>The key part of this render is the dinosaur, however almost each other part of the shot alludes to the off-screen space. The cylindrical pillars closest to the camera are cut off from about quarter of the way up, however the pillars further away from the camera, which are not cut off, suggest to the viewer that there is more to the scene than is currently visible.</p></div><div><img
src="https://lh3.googleusercontent.com/CBYCJJ-n5W_cLWahJ4-YRWqiOSqFsmMrkOctdPi9uEgrJziTIumXEB9Od-AsDOH_b1BfvBJOACzGXmITkkmQkbyw4xVjmfbXK0neWZrCGOK1GD8N" alt=""/><p>From this angle we have a closer view of the dinosaur, which again is not in it’s complete form. The repetitive archway structures are not directly framing the scene, which is also a way of effectively using off-screen space.</p><p><strong>Interactive Game play environments.</strong></p><p>The difficulty with designing the off-screen space in game play environments is that the immediate interactive area is constantly changing. Depending on the genre of game, considering the off-screen space is a different process. <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" class="st_tag internal_tag" title="Posts tagged with games">Games</a> with a structured linear path and defined game play environments can rely on the fact that they know what the player can see at all points of the game. A game such as Grand Theft Auto 4 however is at the mercy of the player , meaning they must design an environment which always effectively uses the ‘off-screen’ space.</p><p><strong>CTF-Westminster (UT3 Map).</strong></p><p>As previously mentioned, designing a UT3 map around Westminster Bridge meant I needed to not only carefully consider how the player would interact with the environment, but how the game play environment would be supported by the non-interactive areas.</p><p>When designing the Westminster map, it was clear that the size of the non-interactive areas around the map would have to be substantially larger than the interactive areas.<br
/> <img
src="https://lh4.googleusercontent.com/fOyN5KrCC07UY0QYTCvODNSqrvjFt6MLEtsDwzlR-gDLLwEsI_-x14JinsJ3pvDkCu8UEqADcAUPrMKKhwsc7ojGwm3jB-NDooMiUchXpRgc4VNo" alt=""/></p></div><div>If we look at the above screenshot we can see that a significant part of the south bank is represented. However, the area in which the player can interact with the environment is significantly smaller. The areas highlighted in pink in the image below signifiy the interactive areas of the environment.</div><div><img
src="https://lh6.googleusercontent.com/qd7dS5WQkf0H8OEv4nMsUrWesSsFeE1dWviKzUDbclN1QeJNOa9KMaiaD6N1evfv67u60Cy9kDp_jTa-bz9OG4pMpXwHKc8zaGBorw2iNvBCn79M" alt=""/><p>When viewed from a different angle, we can see that the view down the river offers the opportunity to create a strong supporting area around the map. The main goal of this project was to successfully create a well-realised large scale environment based on a real world location.</p><p><img
src="https://lh3.googleusercontent.com/U6mLgdeygqv2i0_uf0PfcHy1Nw0WDt0zorEMYBlujnFvYMtbgAa2YsNXxVVz69p1LEdrUwaV20qz8pimXNc2_jTonaRSG01PpkJuNaEK8Iwc6a0j" alt=""/><br
/> <img
src="https://lh4.googleusercontent.com/q1NjSOloMWGkcQZWLU5cZ5anuxNYKFKbpSJrRbf03B1VCnNh-8re__iZBHimf08D_ah1M3e7mT2WIORsmFndtjcWC4GN2UmOh4bo0QgTvUmmb9cO" alt=""/></p></div><div><strong>‘Off-Screen’ space as a narrative device.</strong><p>Another way of effectively using off-screen space is by using it in a way that is in context with the narrative of the game, whilst also being in context with the artistic design.</p><p><strong>Portal (Valve Software, 2008)</strong></p><p>Throughout the early ‘test chamber’ environments in Portal there are a series of ‘observation’ rooms that overlook the progress of the player. The observation rooms are important on a number of levels. Firstly, they are in context with the environment, whilst also offering an aesthetic value by acting as a break to the tiled walls of the test chambers. They are also the only use of ‘off-screen’ space available during the early stages of the game. The most important role they play though is by acting as a subliminal cue into the overarching narrative through the fact that the observation chambers are always empty, which help to enhance the solitary nature of the experience. As the player progresses through the game, they are also rewarded the opportunity to view the test chambers from the other side of the glass, which in context to the unfolding plot, signifies the initial importance of their inclusion in the environment.</p></div><div><img
src="https://lh5.googleusercontent.com/--e1aN1CxCvSkW1sk0od12QOZQKZowA33OWAQttEwG0kN-RL2xhWEKhWCqohWVlhPBIScCIxdcleY5sp7690KpsqdLOeQgEzs4oFkwrc4_KzxUgU" alt=""/></div><div><strong>Half-Life 2 (Valve Software, 2004)</strong></div><div>Staying with Valve, one of the most iconic moments of Half-Life 2 is provided through the effective use of off-screen space. The towering Citadel is the ever present structure as the player makes their way through City-17, and is the first thing that the player sees as they enter the streets of City-17. The size and scale of the building signify the importance of the citadel. Through placing the Citadel in the off-screen space of the game world makes the player feel as though they are part of an oppressive world and constantly being watch.</div><div><img
src="https://lh6.googleusercontent.com/gPDESG-64dhEnMj4nYXSkFCA4UWnC-CrnJZpd_QXU2KEUhOIYl1ktuM0QohwlDoidW_wIaq0vdmyitQljSS4gW1kDUSgS_FhO3NGQL2KtfbhKDE3" alt=""/></div><div><strong>Canabalt (Adam Atomic, 2009)</strong></div><div><img
src="https://lh4.googleusercontent.com/5YYeEvthwomzN3I2o3Pxjq3MaL2g1QHZOsIK8U9Y_AKBpYMWzygKxFmYl94Qn3SSqsje628Yv0EEtK9b1Hk1YVQDDuBIZupfsfNG1ypg6sxggC-2" alt=""/><p>Looking at traditional 2D platform <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" class="st_tag internal_tag" title="Posts tagged with games">games</a>, we can see that it is also possible to use off-screen space as a way of driving narrative. The background environment in Canabalt justifies the motivation of the player in their impossible escape through the city. Without the background, the player is simply jumping from one collapsing building over another.</p><p>Russ Morris is a recent graduate from London South Bank University and is currently working as an independent developer, as well as looking for work in the <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" class="st_tag internal_tag" title="Posts tagged with games">games</a> industry. His work and contact details can be found at <a
rel="nofollow"  href="http://www.therussmorris.co.uk">www.therussmorris.co.uk</a></p></div> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/design/" title="design">design</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/development/" title="Development">Development</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/game-theory/" title="game theory">game theory</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/teach/" title="teach">teach</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/theory/" title="theory">theory</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/visuals/" title="visuals">visuals</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/uniknowledge-ii-%E2%80%93-get-involved/" title="UniKnowledge II &#x002013; Get Involved! (February 23, 2010)">UniKnowledge II – Get Involved!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/sicem-studios-so-you-think-youre-a-game-designer/" title="Sic&#8217;em Studios &#8211; So You Think You&#8217;re a Game Designer? MiniGame Contest (June 1, 2010)">Sic&#8217;em Studios &#8211; So You Think You&#8217;re a Game Designer? MiniGame Contest</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/scoreloop-for-unity-3d/" title="Scoreloop for Unity 3D (October 25, 2009)">Scoreloop for Unity 3D</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/flash-esque-event-system-for-unity/" title="Flash-esque Event System for Unity (November 27, 2009)">Flash-esque Event System for Unity</a> (4)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/8bitfeed-goldstone-intro/" title="8bitFeed Will Goldstone Interview (intro) (November 12, 2009)">8bitFeed Will Goldstone Interview (intro)</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/creating-game-play-environments-considering-off-screen-space/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/02/infiniteunity3d-creating-game-play-environments-considering-off-screen-space/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Unity Creative Webmag is now available</title><link>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-unity-creative-webmag-is-now-available/</link> <comments>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-unity-creative-webmag-is-now-available/#comments</comments> <pubDate>Thu, 01 Jul 2010 18:22:44 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9090</guid> <description><![CDATA[
UNITY CREATIVE JULY/AUGUST 2010
The July/August issue of Unity Creative Magazine is now available in the 3D Attack Shop. Click here to view more details
July/August 2010 Highlights:
Unity 3 Preview/Overview
Interview with Erez Yohanan-Audio Profession...]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow" class="post_image_link"  href="http://infiniteunity3d.com/unity-creative-webmag-is-now-available/" title="Permanent link to Unity Creative Webmag is now available"><img
class="post_image alignright" src="http://infiniteunity3d.com/wp-content/uploads/2010/07/unity-creative.png" width="195" height="153" alt="Unity Creative Magazine for Unity Game Developers and Artists"/></a></p><p>UNITY CREATIVE JULY/AUGUST 2010</p><p>The July/August issue of Unity Creative Magazine is now available in the 3D Attack Shop. <a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?ii=634783&#038;c=ib&%23038;aff=119929&%23038;cl=283">Click here to view more details</a></p><p>July/August 2010 Highlights:</p><p>Unity 3 Preview/Overview</p><p>Interview with Erez Yohanan-Audio Professional</p><p>Post Mortem &#8211; Jimmy Pataya</p><p><strong>B.U.G. &#8211; Boston Unity Group Event </strong> -written by Mani from Infinite Unity3D</p><p>Texting Large Scale Objects</p><p>Why Game Design?</p><p>Beginning C# Part 2</p><p>How To Create A Beam Of Light With Unity 3D</p><p>Getting Started With iPhone <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/development/" class="st_tag internal_tag" title="Posts tagged with Development">Development</a></p><p>Censorship In Computer <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/games/" class="st_tag internal_tag" title="Posts tagged with games">Games</a></p><p><strong>The Unity Art Revolution</strong></p><p>Goodies:<br
/> Audio Interview with <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/david-helgason/" class="st_tag internal_tag" title="Posts tagged with david helgason">David Helgason</a> of Unity<br
/> Audio Interview with Tom Higgins of Unity<br
/> 10 Solat Map Terrain Textures</p><p>99.3 MB Download</p><p><a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?ii=634783&#038;c=ib&%23038;aff=119929&%23038;cl=283">Click here to view more details about Unity Creative</a></p><p>SUBSCRIPTION<br
/> Have Unity Creative Magazine delivered to your in-box with each new issue. Visit the 3D Attack Shop and order your subscription today!<br
/> <a
rel="nofollow"  href="https://www.e-junkie.com/ecom/gb.php?ii=634783&#038;c=ib&%23038;aff=119929&%23038;cl=283">http://3dattack.us</a></p><p>Thanks and KEEP ON ATTACKING!</p><p>Tavy</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/higgyb/" title="@higgyb">@higgyb</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/boston-unity-day/" title="Boston Unity Day">Boston Unity Day</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/david-helgason/" title="david helgason">david helgason</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/news/" title="News">News</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/tom-higgins/" title="tom higgins">tom higgins</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-art-revolution/" title="Unity Art Revolution">Unity Art Revolution</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-creative/" title="Unity Creative">Unity Creative</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-developers-magazine/" title="unity developers magazine">unity developers magazine</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/indie-game-developers-make-money-with-infinite-unity-3d-affiliates-list/" title="Indie Game Developers Make Money with Infinite Unity 3D Affiliates List (July 1, 2010)">Indie Game Developers Make Money with Infinite Unity 3D Affiliates List</a> (1)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-technologies-staff/" title="Unity Technologies Staff Interviews (December 4, 2009)">Unity Technologies Staff Interviews</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-technologies-adds-heavyweights-from-torque-and-io-interactive/" title="Unity Technologies Adds Heavyweights From Torque and IO Interactive (January 6, 2010)">Unity Technologies Adds Heavyweights From Torque and IO Interactive</a> (10)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-creative-subscriptions-now-available/" title="Unity Creative Subscriptions now Available (May 17, 2010)">Unity Creative Subscriptions now Available</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-creative-electronic-magazine-for-game-developers-is-here/" title="Unity Creative : Electronic Magazine For Game Developers is here (May 2, 2010)">Unity Creative : Electronic Magazine For Game Developers is here</a> (5)</li></ul><p><a
href=http://infiniteunity3d.com/unity-creative-webmag-is-now-available/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-unity-creative-webmag-is-now-available/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Top 200 + Resources Unity on Infinite Unity3D</title><link>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-top-200-resources-unity-on-infinite-unity3d/</link> <comments>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-top-200-resources-unity-on-infinite-unity3d/#comments</comments> <pubDate>Thu, 01 Jul 2010 10:00:20 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=7183</guid> <description><![CDATA[Home page
8,067Infinite Unity 3D Tools to Enhance your Unity Game Workflow
2,073Car, Plane and Boat Physics Tutorials for Unity3D
1,788Scripting Unity 3D Game Engine Infinite List
1,581Unity3D iPhone &#38; UnityRemote Game Developmen...]]></description> <content:encoded><![CDATA[<p></p><table><tbody><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/">Home page</a></td><td>8,067</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=0&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/infinite-unity-3d-tool-list-to-speed-up-your-unity-game-workflow/">Infinite Unity 3D Tools to Enhance your Unity Game Workflow</a></td><td>2,073</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7236&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-driving-car-physics-tutorials/">Car, Plane and Boat Physics Tutorials for Unity3D</a></td><td>1,788</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6063&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-scripting-utility-scripts-and-physics-list/">Scripting Unity 3D Game Engine Infinite List</a></td><td>1,581</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=5982&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-iphone-unityremote-game-development-list/">Unity3D iPhone &amp; UnityRemote Game Development List</a></td><td>853</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7005&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-video-tutorials/">Infinite Unity 3D Video Tutorials List</a></td><td>780</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2800&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-videos/">Favorite Unity Videos</a></td><td>662</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7030&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/physics-in-unity-game-engine/">Physics in Unity Game Engine</a></td><td>513</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7016&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-what-we-know-so-far/">Unity 3.0 What we know so far- A Post in perpetual beta</a></td><td>452</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8866&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/tutorial-coroutines-pt-1-waiting-for-input/">Tutorial: Coroutines (pt. 1) – Waiting for Input.</a></td><td>419</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7309&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-artificial-intelligence-tutorials-from-steamism50/">Unity 3D Artificial Intelligence Tutorials from steamisM50</a></td><td>376</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6364&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/infinite-unity3d-game-development/">Infinite Unity3D Resource Links</a></td><td>359</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=5980&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-for-flash-developers-tutorial-series-and-cheat-sheet/">Unity 3D for Flash Developers Tutorial Series and Cheat Sheet</a></td><td>358</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=44&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/connecting-unity-3d-with-the-outside/">Connecting Unity 3D With the outside</a></td><td>324</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7084&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/top-200-resources-unity-on-infinite-unity3d/">Top 200 Resources Unity on Infinite Unity3D</a></td><td>308</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7183&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/advanced-artificial-intelligence-in-unity3d-no-waypoints/">Advanced Artificial Intelligence in Unity3D No Waypoints</a></td><td>284</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8934&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/immediate-mode-gui-unity3d/">UnityGUI – User Interfaces with Unity’s Immediate Mode GUI</a></td><td>271</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2115&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-feature-preview-video-reel/">Unity 3 Feature Preview Video Reel</a></td><td>264</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8917&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/exporting-sketchup-files-for-unity/">Google SketchUp to Unity3D: Import and Export</a></td><td>249</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4655&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/digital-pinball-in-unity-3d-from-david-bardos/">Nike Digital Pinball in Unity 3D From David Bardos</a></td><td>244</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8933&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/making-sense-of-unity-medium-to-advanced-unity3d-video-tutorial-series/">Making Sense of Unity : Medium to advanced Unity3D video tutorial series</a></td><td>228</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6917&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unityarduino-labyrinth-by-jens-borjesson/">Unity/Arduino labyrinth by Jens Börjesson</a></td><td>212</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8869&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/not-to-be-missed-adventures-in-game-development-i-need-a-unity-reality-drama-like-this/">Not to be missed!! Adventures in Game Development I need a Unity Reality Drama Like this</a></td><td>197</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8858&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-augmented-reality-breakfast/">Unity3D Augmented Reality Breakfast</a></td><td>187</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7617&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/procedural-content-generation-in-unity3d/">Procedural Content Generation in Unity3D</a></td><td>186</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=68&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/the-indie-game-company-on-a-shoestring-budget-preso-by-digital-roar/">The Indie Game Company on a Shoestring Budget- Preso by Digital Roar</a></td><td>185</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8901&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/create-your-own-project-natal-game-in-unity3d/">Create your own Project Natal game in Unity3D</a></td><td>180</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8757&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/boston-unity-day-2010-photo-and-video-gallery/">Boston Unity Day 2010 Photo and Video Gallery</a></td><td>179</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8941&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/mixamo-unity3d-workflow-character-animation-vids/">Mixamo Unity3D Workflow -Character Animation VIDS</a></td><td>175</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8391&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/the-unity-3d-vs-unreal-engine-trends-as-google-sees-em/">The Unity 3D vs Unreal Engine Trends as Google sees &#8216;em</a></td><td>172</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=55&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/infinite-unity3d-by-the-numbers-may-2010/">Infinite Unity3D By the numbers May 2010</a></td><td>172</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8816&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-flash-game-developers-learn-why/">13 Reasons Flash Game Developers Should Learn Unity 3D</a></td><td>166</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=1791&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/generating-procedural-cityscapes-with-urbanpad/">Generating Procedural Buildings with Urban PAD – Part 1</a></td><td>165</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7048&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/entry-level-protopack-for-prototyping-unity-3d-games-and-free-car-meshes/">Entry Level Protopack for Prototyping Unity 3D Games and Free Car Meshes</a></td><td>161</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8336&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/itween/">iTween Animation Framework for Unity 3D</a></td><td>160</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8132&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/spritemanager-2-in-unity-for-2d-games-a-review-from-rabid-squirrel-games/">SpriteManager 2 in Unity for 2D Games- A Review from Rabid Squirrel Games</a></td><td>149</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6449&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-api-documentation-with-associated-videos/">Unity API Documentation with Associated Videos</a></td><td>133</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8872&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/creating-a-text-editor-in-unity3d-scripting-in-c/">Creating A Text Editor in Unity3D Scripting in C#</a></td><td>133</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6374&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-beyond-a-game-engine-wednesday-june-2-7pm-est/">Unity 3D Beyond A Game Engine Wednesday June 2, 7PM EST</a></td><td>133</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8844&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-sample-project-level-detail/">Unity3D Sample Project Level Of Detail</a></td><td>131</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4368&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/fire-tool-for-unity/">Fire tool for unity</a></td><td>127</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7590&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-race-game-tutorial/">Unity3D Race Game Tutorial</a></td><td>126</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6887&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/sicem-studios-so-you-think-youre-a-game-designer/">Sic’em Studios – So You Think You’re a Game Designer? MiniGame Contest</a></td><td>125</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8821&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/about-3/">About</a></td><td>125</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7320&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/taking-a-rigged-animated-character-from-c4d-to-unity-video-tutorial-video-series/">Taking a Rigged, Animated Character from C4D to Unity3D</a></td><td>123</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2652&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-iphone-newbie-guide/">Unity iPhone Newbie Guide</a></td><td>123</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3969&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/cloth-tearing-in-unity-3-beta-from-brokenpoly/">Cloth Tearing in Unity 3 Beta from brokenpoly</a></td><td>121</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9011&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/bucketbot-new-game-in-tinyutopia/">BucketboT – New game in TinyUtopia</a></td><td>120</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8915&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/dont-waste-your-time-building-games-in-unity-3d-protopacks-are-back/">Don’t Waste Your Time Building Games in Unity 3D- Protopacks are back!</a></td><td>119</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8225&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/physics-in-unity-3d/">Physics in Unity 3D and So Much More From Melissa Church on Vimeo</a></td><td>116</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4649&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/how-to-use-streamed-scene-loading-in-unity3d-sp/">How to use streamed Scene Loading in Unity3D : SP</a></td><td>114</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8905&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/improving-unity3d-car-tutorial/">Improving “Unity3D Car Tutorial”</a></td><td>112</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7886&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-vs-flash-or-not-blogosphere-roundup-version-2/">Unity vs Flash or not -Blogosphere Roundup</a></td><td>111</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=47&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/save-the-princess-open-source-game-made-with-unity/">Save The Princess Open Source Game Made with Unity</a></td><td>111</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8991&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-and-facebook-what-are-the-possibilities/">Unity 3D and Facebook- Paradise Paintball</a></td><td>101</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2056&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/video-demonstrations-from-grid-lab-including-beepocalypse-and-wilderness/">VIDEO: Demonstrations from Grid LAB including “Beepocalypse” and “Wilderness”</a></td><td>101</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8924&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/pathfinding-and-enemy-follow-demo-in-unity-3d/">Pathfinding and Enemy Follow Demo in Unity 3D</a></td><td>100</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2662&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-physics-101-basics-of-rigid-bodies-and-joints/">Unity Physics 101: Basics of Rigid bodies and Joints</a></td><td>100</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6030&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unitytuio-multitouch-scripts-for-unity3d-video-tutorials/">UniTUIO Multitouch Scripts for Unity3D Video Tutorials</a></td><td>99</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6425&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-and-the-ipad-what-do-we-know-so-far/">Unity and the iPad- What do we know so far?</a></td><td>98</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6638&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/red-belly-piranha-in-unity-by-matyas-plezer/">Red belly piranha in Unity by Matyas Plezer</a></td><td>97</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9051&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/exclusive-peek-at-star-wars-trench-run-2-0-from-infrared5-from-e3-2010/">Exclusive peek at Star Wars Trench Run 2.0 From Infrared5 from E3 2010</a></td><td>97</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8940&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/procedural-road-building-for-unity/">Procedural Road Building for Unity</a></td><td>92</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7847&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-brasil-is-in-the-house-waypoints-tutorial/">Unity3D Brasil is in the house! Waypoints Tutorial</a></td><td>92</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8291&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-vs-shiva-vs-torque/">Unity 3D vs ShiVa vs Torque</a></td><td>91</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7306&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/badumna-network-suite-for-unity3d-mmo-creation/">Badumna Network Suite for Unity3D MMO Creation</a></td><td>87</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8407&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/brass-monkey-wifi-sdk-from-infrared5/">Interview With Chris Allen Brass Monkey Wifi SDK from InfraRed5</a></td><td>85</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7624&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/fish-motion-capture-in-unity-3d-real-time/">Fish Motion Capture in Unity 3D Real-Time</a></td><td>85</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6964&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/game-design-as-marketing/">Game Design As Marketing</a></td><td>85</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8910&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/urban-pad-2-5-procedural-city-generation-tool-released/">Urban PAD 2.5 Procedural City Generation Tool Released</a></td><td>83</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7231&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-player-on-google-native-client/">Unity Player on Google Native Client – Google Web Store here we come!</a></td><td>83</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8355&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/hemiogenic-virtual-venice-made-with-unity-2-6/">Hemiogenic: Virtual Venice Made With Unity 2.6!!!</a></td><td>80</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9000&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/transformutilities-for-unity3d-released/">TransformUtilities for Unity3D released</a></td><td>79</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6698&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/hooking-up-your-wiimote-to-unity-indie-new-tutorial-from-jeff-winder/">Hooking Up your WiiMote to Unity Indie via WiiFlash : 7 Vids from Jeff Winder</a></td><td>79</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6704&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/basic-pathfinding-and-unit-navigation-in-unity3d/">Basic Pathfinding and Unit Navigation in Unity3D</a></td><td>79</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7522&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/visit-jibe/">Visit Jibe!</a></td><td>78</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8920&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/draw-efficient-lines-in-unity-3d-with-vectrosity/">Draw Efficient Lines in Unity 3D With Vectrosity</a></td><td>77</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8997&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/battlepults-has-been-launched-on-kickstarter/">Battle’pults has been launched on Kickstarter.</a></td><td>76</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8827&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/pucca-sooga-mountain-race/">Pucca Sooga Mountain Race</a></td><td>75</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4753&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/indie-game-marketing-tips-via-seth-godin/">Indie Game Marketing Tips via Seth Godin</a></td><td>75</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7603&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/immediate-mode-guis-a-different-way-to-think-about-real-time-user-interfaces/">Immediate-Mode GUIs- A Different Way to think about Real Time User Interfaces</a></td><td>75</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2153&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/gdc-2010-unity-engine-3d-game-development/">GDC 2010: Unity Engine 3D Game Development</a></td><td>72</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7117&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/game-development-for-iphoneipad-using-unity-iphone-tutorials/">Game Development for iPhone/iPad Using Unity iPhone Tutorials</a></td><td>72</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8053&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/build-iphone-apps-run-unity-2-on-your-pc-enter-the-osx86-project/">Build iPhone Apps &amp; Run Unity 2 on your PC- Enter the OSX86 Project</a></td><td>72</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=1990&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-game-development-essentials-the-first-unity-book-raise-the-bar-high/">Unity Game Development Essentials is here. Now Read the F***ing Manual</a></td><td>70</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=115&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/mxd-mall-%E2%80%93-the-first-virtual-mall-on-facebook-built-with-unity/">MXD Mall – the first virtual mall on facebook built with Unity</a></td><td>70</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8403&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-opencv-net-for-robot-arm-control/">Unity3D / OpenCV / .NET for Robot arm control</a></td><td>68</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8944&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/quidam-character-model-to-unity3d-animated-with-animeeple/">Quidam character model to Unity3D -Animated with Animeeple</a></td><td>66</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4454&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-feature-preview-audio-effects-distance-filters/">Unity 3.0 Feature Preview : Audio Effects- Distance, Filters</a></td><td>66</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9049&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-on-android-demo-by-tom-higgins-droidcon-berlin/">Unity on Android Demo By Tom Higgins Droidcon Berlin</a></td><td>65</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8580&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/river-tool-from-6-times-nothing/">River Tool From 6 Times Nothing</a></td><td>65</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7857&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/choosing-a-3d-application-a-high-level-view/">Choosing a 3D Application – A High Level View</a></td><td>65</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8328&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-particle-effects-demo/">Unity 3D Particle Effects Demo</a></td><td>64</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2308&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/procedurally-generated-racing-game-sneak-preview-from-robotduckvideo/">Procedurally Generated Racing Game Sneak Preview from RobotDuckVideo</a></td><td>64</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9009&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-locomotion-system-and-procedural-head-look/">Unity Locomotion System and Procedural Head Look</a></td><td>63</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8002&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/more-unity-game-development-videos-from-the-tornado-twins/">More Unity Game Development Videos from the Tornado Twins</a></td><td>62</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7044&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-ray-based-pathfinding/">Ray-based Pathfinding in Unity 3D</a></td><td>61</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=33&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/trinigy-character-animation-presentation-part-1-2-by-mixamo/">Trinigy Character Animation Presentation Part 1 &amp; 2 by Mixamo</a></td><td>58</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7924&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/show-support-for-unity3d-on-linux/">Show Support for Unity3D on Linux</a></td><td>58</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3086&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/the-impact-of-unity-in-the-google-native-client/">The Impact of Unity in the Google Native Client</a></td><td>58</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8394&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/hemiogenic-searching-for-talent-promoting-talent/">Hemiogenic: Searching For Talent &amp; Promoting Talent</a></td><td>56</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8926&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/level-1-of-little-bunny-shoot-shoot-ready-2/">Level 1 of Little Bunny Shoot Shoot Ready</a></td><td>55</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8851&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wanna-see-your-indie-game-go-around-the-world-in-less-that-30-seconds/">Wanna see your indie game go around the world in less that 30 seconds?</a></td><td>55</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8856&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/its-the-baby-unity-3d-engine-based-game-from-infinite-unity3d-creator-diamondtearz-studios/">It’s The Baby! Game from Infinite Unity3D creator ,diamondTearz Studios</a></td><td>55</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9056&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/welcome-to-the-circus-mani/">Welcome to The Circus, Mani</a></td><td>54</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8927&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/basic-marketing-plan-for-indie-games-2010/">Basic Marketing Plan for It’s the Baby! Unity3D Based Game from Infinite Unity3D</a></td><td>54</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9054&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/first-unity-3d-iphone-game-to-hit-1-zombieville-usa-congratulations/">First Unity 3D iPhone Game to Hit #1- Zombieville USA!! Congratulations</a></td><td>53</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2680&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/an-introduction-to-gui-textures-text-and-the-ongui-script-function/">An introduction to GUI Textures, Text, and the OnGUI() script function.</a></td><td>53</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8390&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-simple-hud-implementation-from-redhotgames/">Unity 3D Simple HUD implementation from RedHotGames</a></td><td>52</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6844&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/motion-tracking-in-unity-game-engine-oh-my-gawd/">Motion Tracking in Unity Game Engine- Oh my Gawd!!!</a></td><td>51</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7187&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/intro-to-unity-from-by-digital-roar-studios/">Ascension Triumvirate ‘s Digital Roar Studios Unity3D Introduction</a></td><td>51</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7705&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/javascript-scripting-vs-c-sharping/">Javascript scripting vs C# sharping</a></td><td>50</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7308&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/20-understanding-triggers-in-unity3d-tornado-twins/">#20 Understanding Triggers in Unity3D : Tornado Twins</a></td><td>50</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6801&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/event-based-data-collection-in-unity-3d-ges-10/">Event Based Data Collection in Unity 3D- GES 10</a></td><td>50</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8929&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/tweaking-unity3d-to-work-with-textmate/">Tweaking Unity 3D To Work With TextMate</a></td><td>48</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2942&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-technologies-and-noesis-interactive-announce-new-service-as-academic-institutions-standardize-on-unity/">Unity Technologies and Noesis Interactive Announce New Service as Academic Institutions Standardize on Unity</a></td><td>48</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8925&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/advanced-animation-unity-tutorial/">Advanced Animation Unity Tutorial</a></td><td>47</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4749&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/3-ways-to-draw-3d-lines-in-unity3d/">3 ways to draw 3D lines in Unity3D</a></td><td>47</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8485&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/interactive-architectural-interior-done-in-unity3d/">Interactive Architectural Interior done in Unity3D</a></td><td>47</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7866&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-prefab-goodies/">Unity prefab goodies</a></td><td>46</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8392&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-animation-view-introduction/">Unity Animation View – 3 Video Tutorials from Unity Technologies</a></td><td>46</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7929&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/27-how-to-create-a-main-menu-in-unity3d-tornado-twins-tuesday/">#27 – How to create a Main Menu in Unity3D :Tornado Twins Tuesday</a></td><td>45</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7219&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/vehicle-rig-car-demo-from-alabsoftware/">Vehicle Rig Car Demo from ALabSoftware</a></td><td>45</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8350&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/funding-with-preorders/">Sic’em Studios’ preorder gives to the flood victims in Tennessee</a></td><td>45</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8201&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/pepsifootball-impressive-unity-3d-game/">Pepsi Footvolley- Impressive Unity 3D Game</a></td><td>45</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3314&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/ipad-game-made-in-1-5-days-unity/">iPad Game Made in 1.5 Days Unity</a></td><td>45</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7697&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/mixamo-custom-character-creator/">Mixamo Custom Character Creator</a></td><td>44</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8354&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-shader-generating-water-textures-with-perlin-noise/">Unity3D Shader – Generating Water Textures with Perlin Noise</a></td><td>43</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/german-unity3d-tutorialintro-and-googles-attempted-translation/">German Unity3D Tutorial/Intro and Google&#8217;s Attempted Translation</a></td><td>43</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2908&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-feature-preview/">Unity 3.0 Feature Preview: Asset Management</a></td><td>43</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8922&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/how-to-make-games-fun-unity-3d-game-documentary/">How To make Games Fun-Unity 3D Game Documentary</a></td><td>41</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2130&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-preview-snapping-and-marquee-selection/">Unity 3.0 Snapping and Marquee Selection Preview Video</a></td><td>39</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7401&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/free-textures-and-models-for-use-when-modeling-your-unity-or-papervision3d-world/">Free Textures and Models for Use When Modeling your Unity or Papervision3D World</a></td><td>39</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2494&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/postmortem-adrift-prototype/">Postmortem: “Adrift” Prototype</a></td><td>39</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8374&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/evac-city-free-tutorial-just-released-in-pdf-format/">EVAC-CITY Free Tutorial Just Released in PDF format</a></td><td>39</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=97&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/asset-bundles-and-the-headache-i-found-therein/">Asset Bundles and the headache I found therein</a></td><td>39</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=81&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/congratulations-tornado-twins1000-subscribers/">Congratulations Tornado Twins:1000 Unity Game Tutorial</a></td><td>39</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6677&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/interview-with-tomn-higgins-unity-product-evangelist-from-whats-up-android/">Interview With Tom Higgins Unity Product Evangelist from What’s Up Android</a></td><td>38</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8793&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/flash-esque-event-system-for-unity/">Flash-esque Event System for Unity</a></td><td>37</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=166&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/motorcycle-madness-motion-capture-in-unity3d/">Motorcycle Madness Motion Capture in Unity3D</a></td><td>37</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6989&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/mech-rex-in-zombeh-town/">Mech Rex in Zombeh Town</a></td><td>36</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7668&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-procedural-content-generation-roundup/">Unity 3D Procedural Content Generation Roundup</a></td><td>36</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4764&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/police-car-tutorial-unity3d/">Police Car Tutorial for Unity3D Available</a></td><td>36</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4396&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/video-3d-object-manipulation-through-facial-gestures/">VIDEO: 3D Object Manipulation Through Facial Gestures</a></td><td>36</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8923&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/i-am-bird-3d-interactive-experience/">[ I am Bird ] :: 3D interactive experience</a></td><td>36</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8397&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/contact/">Contact</a></td><td>36</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6170&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/creative-circus-kicks-off-unity-alchemy-with-a-bang/">Creative Circus Kicks off Unity Alchemy with a bang!</a></td><td>34</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9013&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/3-high-quality-unity-seamless-skybox-material-1024x1024-resolution/">3 high quality Unity seamless skybox material 1024×1024 resolution</a></td><td>34</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=24&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-prefabummm-you-remind-me-of-a-flash-movieclip/">Unity3D Baby Steps 3-Prefab…You Remind Me of A Flash MovieClip</a></td><td>34</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=1648&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/tornado-twins-26-adding-explosions-to-your-game/">Tornado Twins #26 – Adding Explosions to your Game</a></td><td>33</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7077&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/animated-fire-shader-unity-3d/">Animated Fire Shader Unity 3D</a></td><td>33</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4751&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/some-modifications-to-unity3d-arcade-style-racing-tutorial/">Some Modifications to Unity3D Arcade Style Racing Tutorial</a></td><td>33</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8162&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/waltz-in-unity3d-via-motion-capture/">Waltz in Unity3D via Motion Capture</a></td><td>32</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6972&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/15-unity-authored-ipad-games-available-in-the-app-store-read-more-httpwww-earthtimes-orgarticlesshow15-unity-authored-ipad-games-available-in-the-app-store1232554-shtmlixzz0k0el4oqs/">15+ Unity-Authored iPad Games Available in the App Store</a></td><td>32</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7205&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-isometric-framework/">Unity 3D Isometric Framework</a></td><td>32</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7280&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-physics/">Unity3D Physics Infinite List</a></td><td>32</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2370&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/mod-files-can-now-be-used-in-unity-3d-just-like-other-assets-thanks-unity-technologies/">.mod files can now be used in Unity 3D just like other assets! Thanks Unity Technologies</a></td><td>32</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9065&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/getting-started-with-c-for-unity3d/">Getting started with C# for Unity3D</a></td><td>32</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8495&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-creative-electronic-magazine-for-game-developers-is-here/">Unity Creative : Electronic Magazine For Game Developers is here</a></td><td>31</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7893&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/importing-blender-objects-into-unity-with-animated-colliders/">Importing Blender objects into Unity with animated colliders</a></td><td>31</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6976&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/3d-guinness-area-22-augmented-reality-3d-advergame-w-unity3d/">3D Guinness Area 22 Augmented Reality 3D AdverGame w/ Unity3D</a></td><td>31</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8170&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/two-more-mods-of-the-arcade-style-racing-game-tutorial-for-unity/">Two more Mods of the Arcade Style Racing Game Tutorial for Unity</a></td><td>30</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8164&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/how-to-reduce-drawcalls-in-unitygui-for-iphone-games/">How to Reduce DrawCalls in UnityGUI for iPhone Games</a></td><td>30</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6463&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/indie-game-developers-make-money-with-infinite-unity-3d-affiliates-list/">Indie Game Developers Make Money with Infinite Unity 3D Affiliates List</a></td><td>30</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9084&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/dynamic-terrain-generation-in-unity-from-shiftcontrol/">Dynamic Terrain Generation in Unity from ShiftControl</a></td><td>30</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6840&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-visual-studio-express2010-virtual-class/">Unity3D + Visual Studio Express/2010 Virtual Class</a></td><td>29</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6081&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/shoot-ar-unity-and-augmented-reality-from-pradjay86/">Shoot AR Unity and Augmented Reality from Pradjay86</a></td><td>29</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8376&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/fusion-marketing-for-indie-game-developers/">Fusion Marketing for Indie Game Developers</a></td><td>29</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8993&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/nice-unity-3d-demo-from-medieteknik-lnu/">Nice Unity 3D Demo from Medieteknik Lnu</a></td><td>28</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8809&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/vehicle-physics-and-exporter-test/">Vehicle Physics and Exporter Test</a></td><td>28</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7861&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/flash-infidelity-all-over-the-place-unity3d-is-taking-up-more-of-your-time/">Flash Infidelity All over the place-Unity3D is Taking up more of your time</a></td><td>28</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2037&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/loading-3d-models-at-runtime-in-unity3d/">Loading 3d models at runtime in Unity3d</a></td><td>28</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8481&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/making-a-videogame-13-adding-lives-gui-hud-unity3d-engine/">Making a videogame #13: Adding lives, GUI &amp; HUD [Unity3d engine]</a></td><td>28</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6412&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/how-to-make-a-skybox-in-unity-3d-from-maplecoke12/">How to make a skybox in Unity 3D from Maplecoke12</a></td><td>28</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6882&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-cinematics-demo-dudebro-ii-from-csgregh/">Unity 3D Cinematics Demo (Dudebro II) from csgregh</a></td><td>27</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6893&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-ai-tutorial-7-chpt-3-part-7-finishing-up/">Unity 3d AI Tutorial 7 Chpt 3 – Part 7 Finishing up</a></td><td>27</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=39&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/extreme-reality-partners-with-avination-for-e-commerce/">Extreme Reality Partners With Avination For E-Commerce</a></td><td>27</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9062&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/animeeple/">Animeeple Character Animation Tool</a></td><td>27</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8113&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-connecting/">Unity 3D Connecting with the outside and Social Gaming Platforms</a></td><td>27</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=5849&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/procedural-building-generation-with-urban-pad-part-2/">Procedural Building Generation with Urban PAD Part 2</a></td><td>26</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7065&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/axe-musicstar-game/">Axe Musicstar – Get Them Back – The Game! Made With Unity</a></td><td>26</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6039&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/lens-flare-tutorial-for-unity3d/">Lens Flare Tutorial for Unity3D</a></td><td>26</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6764&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/blender-unity-animation-tutorial/">Blender To Unity Transition Tutorials and Tips</a></td><td>25</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=158&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/griddy-weekend-prototype/">Griddy: Weekend Prototype</a></td><td>25</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8760&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/root-motion-computer-tutorial/">Root Motion Computer Tutorial for Mixamo Unity Integration</a></td><td>25</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8398&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-for-architectural-visualization-from-the-arch-network/">Unity3D for Architectural Visualization- from the Arch Network</a></td><td>25</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6438&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/obstacle-avoidance-in-unity3d-from-devon-klompmaker/">Obstacle Avoidance in Unity3D -from Devon Klompmaker</a></td><td>25</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6785&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-studios-badumna-demo-mov/">Unity Studios Badumna Demo .mov</a></td><td>25</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7694&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/assemblive-brings-unity3d-virtual-events-to-your-browser/">Assemblive brings Unity3D Virtual Events to your browser</a></td><td>24</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7799&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/mychinese360-early-preview-of-jibe-educational-world/">MyChinese360 Early Preview of Jibe Educational World</a></td><td>24</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9043&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-creative-subscriptions-now-available/">Unity Creative Subscriptions now Available</a></td><td>24</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8324&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-with-graphviz-no-more-lost-in-the-3d-space/">Explore Unity3D GameObject Hiearchy with Graphviz (No more lost in the 3D space !)</a></td><td>24</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8284&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/first-500-customers-to-pre-order-unity-pro-android-will-receive-a-free-google-nexus-one-mobile-phone/">First 500 Customers to Pre-Order Unity Pro Android Will Receive a Free Google Nexus One Mobile Phone</a></td><td>23</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9010&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/whoah-check-out-this-anarkik3d-video-demo-touch-based-3d-model-interaction/">Haptics, Touch-based 3D Model Interaction in Unity Engine</a></td><td>23</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2454&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/nintendo-power-glove-arduino-and-unity3d/">Nintendo Power Glove Arduino and Unity3D</a></td><td>23</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=41&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/five-common-as3-to-unityscript-translations/">Five Common AS3 to UnityScript Translations -UntoldEnt</a></td><td>23</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=101&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/interactive-art-gallery-created-with-unity3d-fatalaty674/">Interactive Art Gallery Created with Unity3D – fatalaty674</a></td><td>23</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8412&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/the-frigate-unity3d-xpansion-from-nikkoid-with-source/">The frigate: Unity3D Xpansion from Nikkoid-with source</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8204&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-terrain-start-to-finish/">Terrains in Unity 3D Start to Finish</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=5989&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-powered-appstore-games-rejected-by-apple/">Unity Powered Appstore games rejected by Apple</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7095&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-grass-tutorial-from-deltanub/">Unity3D Grass Tutorial from DeltaNub</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6846&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/all-about-unity3d-game-controllers-in-casual-games-part-1-hook-up-controller/">Unity3D Game Controllers In Casual Games-Part 1- Hook Up Controller</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2892&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/3dsmax-biped-to-unity-3d/">3DS Max Biped to Unity 3D</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4750&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/iphone-mario-clone-w-unity3d/">iPhone Mario Clone w Unity3D</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6484&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/penelope-from-the-unity-iphone-demo-w-unituio-from-gdc-2010/">Penelope From The Unity IPhone Demo w/ UniTUIO from GDC 2010</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7276&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/plane-combat-game-unity-from-thebspline/">Plane Combat game – Unity from TheBSpline</a></td><td>22</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6895&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wow-these-dudes-are-not-fin-around-driving-game-on-speed-lets-rock/">Wow! These dudes are not f’in around! Driving game on Speed. Let’s rock!!!</a></td><td>21</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7471&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-is-%E2%80%9Cthe-flash-killer%E2%80%9D%E2%80%A6-not/">Unity3D is “The Flash Killer”… NOT</a></td><td>21</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6211&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/rpg-prototype-made-by-unity-3d/">RPG Prototype made by Unity 3D</a></td><td>21</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6486&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-baby-steps-1-frame-selected-object-manipulation/">Unity3D -Baby Steps 1- Frame Selected &amp; Object Manipulation</a></td><td>21</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=1618&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/neutron-sdk-for-unity3d/">Neutron SDK For Unity3D</a></td><td>20</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2096&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/0xe800003a-applicationverificationfailed-i-hate-you-no-unityremote-iphone-love/">0xE800003A ApplicationVerificationFailed- I Hate You! No UnityRemote iPhone Love!!</a></td><td>20</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3093&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/street-pack-2/">Street Pack – 2</a></td><td>20</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8358&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/3d-attack-fps-developer-kit-preview/">3D ATTACK – FPS DEVELOPER KIT (Preview)</a></td><td>20</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8363&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/making-a-multiplayer-game-9-unity-3d-tutorial-adding-bots/">Making a MultiPlayer Game #9 [Unity 3d tutorial] [Adding Bots]</a></td><td>20</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=30&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-spring-2010-highlight-reel/">Unity Spring 2010 Highlight Reel</a></td><td>20</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7512&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/the-flagship-episode-1-iron-grip-turn-based-strategy-in-unity3d/">The Flagship, episode #1 – Iron Grip -Turn Based Strategy in Unity3D</a></td><td>20</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8377&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/tweets-archive/">Trending Unity3D on Twitter and latest Unity3D Tweets</a></td><td>19</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6851&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/28-creating-a-mainmenu-and-adding-fonts-in-unity3d/">#28 – Creating a MainMenu and adding Fonts in #Unity3D</a></td><td>19</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7321&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/tornado-twins-crate-modeling-contest/">#stepbystepgamedevelopment with the @TornadoTwins</a></td><td>19</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7224&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-gui-basics-video-from-infinite-ammo/">Unity GUI Basics Video from Infinite Ammo</a></td><td>19</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8088&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/street-pack-1/">Street Pack – 1</a></td><td>19</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8361&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/daz3d-vicki-4-2-in-unity3d-game-engine/">Daz3D Vicki 4.2 in Unity3D game engine</a></td><td>18</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7477&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/videos/">videos</a></td><td>18</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7430&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/thomas-pasieka-3d-artist-video-portfolio/">Thomas Pasieka- 3D Artist Video Portfolio</a></td><td>18</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7711&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/paradise-paintball-from-facebook-featured-in-insidesocialgamescom/">Paradise Paintball from facebook featured in InsideSocialGames.com</a></td><td>18</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2733&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/dk-gui-preview-part-3/">DK GUI Preview part 3</a></td><td>18</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7616&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/latest-favorite-unity3d-videos/">Latest Favorite Unity3D Videos</a></td><td>18</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8380&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/2d-platformer-bucketbot-still-loving-the-grays/">2D Platformer BucketBot-WIP – Still loving the grays</a></td><td>17</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8345&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/haunted-house-in-unity-update-from-virtualautonomy/">Haunted House in Unity Update from VirtualAutonomy</a></td><td>17</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8347&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/disclosure/">Disclosure</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8242&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/happy-5th-birthday-unity/">Happy 5th Birthday Unity – 170,000 Marvelopers in the Unityverse and counting</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8900&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/alternative-human-computer-interaction-with-unity3d-and-neurosky-brian-coxx/">Alternative Human-Computer Interaction with Unity3D and NeuroSky-Brian Coxx</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8312&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/simple-audiomanager-code-for-your-unity3d-project/">Simple AudioManager code for your Unity3d project</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8468&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/racing-game-with-unity-and-arduino/">Racing Game With Unity and Arduino</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8180&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/loading-and-manipulating-images-in-unity3d/">Loading and manipulating images in Unity3D</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8486&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/boston-unity-day/">Boston Unity Day</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8414&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/3d-nemo-dark-knight-tumbler-in-unity-game-engine/">3D Nemo : Dark Knight Tumbler in Unity Game Engine</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7895&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/clean-driving-game-demo-from-gawaine-1066/">Clean Driving Game Demo from Gawaine1066</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8140&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/casual-and-social-games-with-unity-from-motiviti/">Casual and Social Games with Unity from Motiviti</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7155&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/the-unity-3d-lessons-on-will-goldstones-site-are-way-longer-than-vimeo-ones/">The Unity 3D Lessons On Will Goldstone&#8217;s Site are Way More In-depth Than Vimeo Ones</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2439&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/embedding-a-swf-file-into-a-view-script-page/">Embedding a Swf File into a Zend View Script Page</a></td><td>16</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=659&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/kubus-game/">Kubus Game</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8051&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/one-night-unity-game-prototype-by-ian-brown/">One Night Unity Game Prototype by Ian Brown</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6482&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/zelda-fan-minigame-made-with-unity3d/">Zelda Fan Minigame made with Unity3D</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3643&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/shaderlab-with-unity3d-and-textmate-bundle/">Shaderlab with Unity3D and Textmate Bundle</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3640&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/faq/">FAQ</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8100&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/scripting-wars/">Scripting wars</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7311&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-terrain-start-finish/">Unity 3D Terrain :Start To Finish</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6077&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/free-iphone-appstore-redeem-codes-for-on-the-oche-darts/">Free iPhone Appstore Redeem codes for On The Oche Darts</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4472&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/c4d-to-unity-3d-editor-first-person-shooter-project-double-zero/">C4D to Unity 3D Editor – First Person Shooter</a></td><td>15</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4547&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/dawn-of-the-tyrant-in-game-footage/">Dawn of The Tyrant In Game footage</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4710&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/bsg-viper-test-in-unity3dphysx/">BSG Viper Test in Unity3d/PhysX</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7716&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/dimerocker-unity-social-gaming-toolkit-tutorials-from-waddlefarm-studios-coming-soon/">dimeRocker – Unity Social Gaming Toolkit tutorials from Waddlefarm Studios coming soon!</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6713&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/hurrah-wii-game-made-with-unity/">Hurrah! Wii Game Made with Unity</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6471&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-shader-generating-leopard-textures-with-perlin-noise/">Unity3D Shader – Generating Leopard Textures with Perlin Noise</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=5&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/scoreloop-for-unity-3d/">Scoreloop for Unity 3D</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=72&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/griddy-gridkit-for-unity-3d-from-nick-breslin/">Griddy GridKit for Unity 3D From Nick Breslin</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8408&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/boston-unity-group-first-meet-up/">Boston Unity Group – First Meet up</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8921&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/flammable-barrels/">Flammable Barrels</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8292&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/coroutines-in-unity3d-c-version/">Coroutines in Unity3d (C# version)</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8473&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-texture-experiments/">unity3d texture experiments</a></td><td>14</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6496&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-city-simulation-after-one-day-4/">Unity3D City Simulation after one day</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3242&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-and-max-creating-music-from-interactions/">Unity3D and Max Creating Music From Interactions!</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3046&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/leveraging-youtube-to-get-your-indie-game-more-attention/">Leveraging YouTube to Get Your Indie Game More Attention</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7447&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/daiquiri-game-framework-for-flash-from-three-melons-check-the-flash-10-fps/">Daiquiri Game Framework For Flash From Three Melons- Check the Flash 10 FPS</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2552&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/amazing-jibe-slideshow-from-reactiongrid-w-unity3d/">Amazing Jibe Slideshow from ReactionGrid w Unity3D</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6859&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/infinite-unity3d-alphabetical-index/">Infinite Unity 3D Index #infiniteunity3dindex</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=9061&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/ragdoll-iphone/">Rag Doll on iPhone Video Demo</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6491&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/create-your-own-project-natal-game-in-unity3d-2/">Create your own Project Natal game in Unity3D</a></td><td>13</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8769&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/casual-game-developer-advice-from-the-unity3d-website/">Unity Indie Developer Advice from the Unity Technologies Site</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=1722&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/bucketbot-level-iii-platformer-made-with-unity/">BucketboT – Level III Platformer made with Unity</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8083&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/making-a-character-respawn-in-unity-3d-game-engine-12/">Making a character respawn in Unity 3d game engine #12</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6418&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-in-the-idome-peripheral-vision-and-stereo-sound-ftw/">Unity3D In The iDome-Peripheral Vision and Stereo Sound FTW!</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2957&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/android-nvidia-tegra-2-prototype-tablet-running-unity-3d-game/">Android &amp; NVIDIA Tegra 2 Prototype Tablet running Unity 3D Game</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8366&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-technologies-releases-unity-asset-server-2-0/">Unity Technologies Releases Unity Asset Server 2.0</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6356&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/is-your-windows-version-of-unity3d-v25-crashing-on-vista/">Is Your Windows Version of Unity3d v2.5 Crashing on Vista?</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2203&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/car-simulation-with-maya-papervision3d/">Car simulation with Maya &amp; Papervision3d</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8502&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/game-ai-project-unity3d-odesk-using-some-concepts-from-these-books-below-i-would-like-to-have-an-ai-toolkit-cre/">Game AI Project Unity3d – oDesk: Using some concepts from these books below I would like to have an AI toolkit cre…</a></td><td>12</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8768&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/area44-game/">Area44 game on Facebook</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8063&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/flashdevelop-for-unity-scripts/">FlashDevelop for Unity Scripts!!</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2059&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/customizing-your-unity-3d-workspace/">Customizing your Unity 3D Workspace</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=14&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-top-game-engines/">Unity 3D is number 4 out of the top 10 game engines!</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=4433&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/paper-simulation-in-with-as3dmod-and-away3d/">Paper simulation in with AS3Dmod and Away3D</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=8508&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/flash-esque-event-system-for-unity-pt-2/">Flash-esque Event System for Unity pt. 2</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=6620&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/sneak-peek-of-unity3d-iphone-tutorial-from-unity-blog/">Sneak Peek of Unity3D iPhone Tutorial from Unity Blog</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=3944&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/augmented-reality-driving-with-unity/">Augmented Reality Driving with Unity</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=25&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/2d-platformer-3-level-runthrough-unity-3d/">2D Platformer 3 level runthrough Unity 3D</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=17&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/affective-gaming-and-haptic-feedback-in-unity/">Affective Gaming and Haptic Feedback in Unity</a></td><td>11</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7791&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/more-paradise-paintball-more-exit-games-photon-c-based-engine-multiplayer/">More Paradise Paintball, More Exit Games! Photon C-Based Engine Multiplayer</a></td><td>10</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=2261&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/arduniodraft/">Ardunio to Unity Compass via Seeduino</a></td><td>10</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=5973&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/new-tutorials-just-released-ai-part-2/">New Tutorials Just Released AI Part 2</a></td><td>10</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=98&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr><tr><td><a
rel="nofollow"  href="http://infiniteunity3d.com/isensorii-human-live-graphical-programming-environment-interactions/">iSensorii : Human – Live Graphical Programming Environment Interactions</a></td><td>10</td><td><a
rel="nofollow"  href="http://infiniteunity3d.com/wp-admin/index.php?page=stats&amp;view=post&amp;post=7841&amp;blog=4988762"><img
src="https://dashboard.wordpress.com/i/stats-icon.gif" alt="More stats"/></a></td></tr></tbody></table> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/lists/" title="lists">lists</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/news/" title="News">News</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/winners-choice-sicem-studio-give-away/" title="Winner&#8217;s Choice Sic&#8217;em Studio Give-Away! (May 17, 2010)">Winner&#8217;s Choice Sic&#8217;em Studio Give-Away!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/what-would-you-like-to-see-at-siege-2010-conference/" title="What would you like to see at SIEGE 2010 Conference? (May 7, 2010)">What would you like to see at SIEGE 2010 Conference?</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/welcome-to-the-circus-mani/" title="Welcome to The Circus, Mani (June 22, 2010)">Welcome to The Circus, Mani</a> (1)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/wanna-see-your-indie-game-go-around-the-world-in-less-that-30-seconds/" title="Wanna see your indie game go around the world in less that 30 seconds? (June 4, 2010)">Wanna see your indie game go around the world in less that 30 seconds?</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/visit-jibe/" title="Visit Jibe! (June 14, 2010)">Visit Jibe!</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/top-200-resources-unity-on-infinite-unity3d/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-top-200-resources-unity-on-infinite-unity3d/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Indie Game Developers Make Money with Infinite Unity 3D Affiliates List</title><link>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-indie-game-developers-make-money-with-infinite-unity-3d-affiliates-list/</link> <comments>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-indie-game-developers-make-money-with-infinite-unity-3d-affiliates-list/#comments</comments> <pubDate>Thu, 01 Jul 2010 06:45:29 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9084</guid> <description><![CDATA[This is still in draft version- You&#8217;ll wanna delicious this one and check on it later.
In an effort to support our developers during their road to the next Casual Game Viral Chart Topper we&#8217;ve collected the Infinite Unity 3D Game Developer ...]]></description> <content:encoded><![CDATA[<p></p><p>This is still in draft version- You&#8217;ll wanna delicious this one and check on it later.</p><p>In an effort to support our developers during their road to the next Casual Game Viral Chart Topper we&#8217;ve collected the Infinite Unity 3D Game Developer Affiliates List. This showcases some opportunities to support your Unity developer community by spreading the word of their products but also provides a chance to make some money on the way to your next Viral Video Game Blockbuster built with Unity! Keep in mind that in the long run you should support the community while maintaining your integrity. If you don&#8217;t like a product make a decision to either review it as you honestly feel or not review it at all.</p><p>Another thing to consider is that as indie developed games grow to other platforms there&#8217;s an increased likelihood that you&#8217;ll be able to support your colleagues while making revenue on products that are available at larger more recognized distributors. plan ahead and get your blog, brand and your credibility in place now rather than in 5 years when it&#8217;s too late.</p><p>If you are thinking to yourself &#8220;What the hell am I gonna do with 4 bucks a day in commison? Well I don&#8217;t know about you but <strong>$120 a month</strong>&#8230; or <strong>$1,460 a year</strong> is not an awful return on a single well-written article. Besides. The goal is to build up a library of products that you believe in. <strong> The products that you endorse become as much the face of your brand as the ones that you produce.</strong><br
/> So let&#8217;s run that math again. So let&#8217;s say you have 4 products that you know well.</p><p>If you&#8217;re thinking- &#8220;Wait I don&#8217;t get much traffic to my site.&#8221; Remember that you can <a
rel="nofollow"  href="http://infiniteunity3d.com/wp-login.php">register to Infinite Unity3D</a> and become an author. We get between 30-60,000 monthly pageviews and allow review articles and affiliate articles.</p><p>One of my favorite affiliate products is still in beta testing so keep an eye on this one and I&#8217;ll leak it to you when I get the green light!<br
/> Please tweet description of your affiliate product with the hashtag #infiniteunity3daff to be added to the list below</p><ol><li><a
rel="nofollow"  href="http://unityprefabs.com/">Unity Prefabs- sell Unity Prefabs from the Torndado Twins Store and earn commission</a></li><li><a
rel="nofollow"  href="http://www.3dattack.us/3DAttack/Magazine.html">Unity Creative and 3D Attack</a></li><li><a
rel="nofollow"  href="http://store.coderecipe.com">Code Recipe Asset game store</a> Everything under $10!! This is the indie game developer chop shop. If your game didn&#8217;t do as well as you expected chop the pieces and let the parts live on- and get paid for it that way of course!</li><li><a
rel="nofollow"  href="http://www.indiegamemarket.com/">IndieGameMarket.com</a> Sell your assets and models</li><li><a
rel="nofollow"  href="http://www.bigfishgames.com/">Big Fish Games</a> Sell downloadable games from the Big Fish Arcade- They pay their affiliates 70%</li><li><a
rel="nofollow"  href="https://www.turbosquid.com/Login/NewMemberLogin.cfm?blCreateAcct=TRUE&#038;stgRU=https://www.turbosquid.com/Dashboard/Index.cfm">TurboSquid.com affiliate program</a></li><li>Animeeple.com Upload and sell motions in the <a
rel="nofollow"  href="http://www.animeeple.com/documentation/Selling">animeeple marketplace</a></li><li><a
rel="nofollow"  href="http://www.vtc.com/modules/affiliates/affiliates.php">VTC Computer Software training</a> pays 20% commission for sales of their video material to their affiliates. Note that VTC carries <a
rel="nofollow"  href="http://www.vtc.com/products/Introduction-to-Game-Development-Using-Unity-3D-Tutorials.htm">Introduction to Game Development with Unity 3D</a></li><li><a
rel="nofollow"  href="http://www.lynda.com/partners/affiliates.aspx">Lynda.com online video training program</a> pays affiliates between 10-50%</li><li><a
rel="nofollow"  href="https://affiliate-program.amazon.com/">Amazon Associates program</a>- If you&#8217;re more into book review and online games then Amazon has an affiliate program that pays 6% per book sale and up. Consider writing a <a
rel="nofollow"  href="http://infiniteunity3d.com/unity-game-development-essentials-the-first-unity-book-raise-the-bar-high/">review of Unity Game Development Essential</a>s by our community member Will Goldstone The good thing about amazon is that any purchase made after the user lands from your click even to other products is credited to you. I had someone purchase a robot last year after reading an unrelated post! This made me happy.</li><li><a
rel="nofollow"  href="http://www.bestbuy.com/site/null/Affiliate-Program/pcmcat198500050002.c?id=pcmcat198500050002">Best Buy&#8217;s affiliate program</a> is a good option if you&#8217;re into selling games and game accessories on your site. This can be effectively accomplished by doing game and console reviews as you are in the process of building your indie masterpiece</li><li><a
rel="nofollow"  href="http://www.google.com/ads/affiliatenetwork/">Google Affiliate Network</a> &#8211; I have only recently noticed the affiliate program from google so I&#8217;m not really familiar with it yet.</li><li><a
rel="nofollow"  href="http://www.gamestop.com/gs/help/affiliate.aspx">Gamestop has an affiliate program</a> and sells a good number of used games and accesories</li><li><a
rel="nofollow"  href="http://www.gamefly.com/about-us/affiliate-program/">GameFly affiliate program</a> pays $15-$25 per person that signs up for a free trial.</li></ol><p>Well that&#8217;s all good and fine but what about the indie game developer. I&#8217;d say consider a program like <a
rel="nofollow"  href="http://www.e-junkie.com/?r=119929" title="Shopping Cart by E-junkie"><img
src="https://www.e-junkie.com/linkimg/a01351c79417a718019992702b50d785119929/1.gif" border="0" alt="E-junkie Shopping Cart and Digital Delivery"/></a> or <a
rel="nofollow"  href="http://www.clickbank.com/index.html">clickbank</a>. After paying the affiliate fee you are well on your way to going viral. I plan to have my upcoming game #itsthebaby! as an affiliate product with 50-75% payout. It&#8217;s the marketing program that pays for itself. In the world of digital goods you&#8217;re not losing 50% when you give someone that commission. You&#8217;re gaining 50% that you would&#8217;ve never gotten. The sales made by your affiliates would have never actualized without that person.</p><p>Finally FTC regulations require you to have a <a
rel="nofollow"  href="http://infiniteunity3d.com/disclosure/">Disclosure statement</a>. I&#8217;m not a lawyer and can&#8217;t advise you about writing that but recommend you google.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/3d-attack/" title="3d attack">3d attack</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/boston-unity-day/" title="Boston Unity Day">Boston Unity Day</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/coderecipe-store/" title="coderecipe store">coderecipe store</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/news/" title="News">News</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-creative/" title="Unity Creative">Unity Creative</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-creative-electronic-magazine-for-game-developers-is-here/" title="Unity Creative : Electronic Magazine For Game Developers is here (May 2, 2010)">Unity Creative : Electronic Magazine For Game Developers is here</a> (5)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-prefab-goodies/" title="Unity prefab goodies (May 26, 2010)">Unity prefab goodies</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-creative-webmag-is-now-available/" title="Unity Creative Webmag is now available (July 1, 2010)">Unity Creative Webmag is now available</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-creative-subscriptions-now-available/" title="Unity Creative Subscriptions now Available (May 17, 2010)">Unity Creative Subscriptions now Available</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/thomas-pasieka-3d-artist-video-portfolio/" title="Thomas Pasieka- 3D Artist Video Portfolio (April 28, 2010)">Thomas Pasieka- 3D Artist Video Portfolio</a> (1)</li></ul><p><a
href=http://infiniteunity3d.com/indie-game-developers-make-money-with-infinite-unity-3d-affiliates-list/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/07/01/infiniteunity3d-indie-game-developers-make-money-with-infinite-unity-3d-affiliates-list/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] .mod files can now be used in Unity 3D just like other assets! Thanks Unity Technologies</title><link>http://www.bydesigngames.com/2010/06/30/infiniteunity3d-mod-files-can-now-be-used-in-unity-3d-just-like-other-assets-thanks-unity-technologies/</link> <comments>http://www.bydesigngames.com/2010/06/30/infiniteunity3d-mod-files-can-now-be-used-in-unity-3d-just-like-other-assets-thanks-unity-technologies/#comments</comments> <pubDate>Wed, 30 Jun 2010 00:26:36 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9065</guid> <description><![CDATA[In the latest blog post from Unity Technologies they discuss a new feature of Unity 3.0. It seems that they&#8217;ve added the ability to use .mod sound assets just like other assets. Tags: .mod, Audio, unity 3.0, Unity 3.0 Related posts  Unity 3.0 Fea...]]></description> <content:encoded><![CDATA[<p></p><p>In the latest blog post from Unity Technologies they discuss a new feature of <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-3-0/" class="st_tag internal_tag" title="Posts tagged with unity 3.0">Unity 3.0</a>. It seems that they&#8217;ve added the ability to use .mod sound assets just like other assets.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/mod/" title=".mod">.mod</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/audio/" title="Audio">Audio</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-3-0/" title="unity 3.0">unity 3.0</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/unity-3-0-2/" title="Unity 3.0">Unity 3.0</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-feature-preview-audio-effects-distance-filters/" title="Unity 3.0 Feature Preview : Audio Effects- Distance, Filters (June 25, 2010)">Unity 3.0 Feature Preview : Audio Effects- Distance, Filters</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-preview-snapping-and-marquee-selection/" title="Unity 3.0 Snapping and Marquee Selection Preview Video (April 15, 2010)">Unity 3.0 Snapping and Marquee Selection Preview Video</a> (19)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-preview/" title="Unity 3.0 Preview! (March 9, 2010)">Unity 3.0 Preview!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-feature-preview/" title="Unity 3.0 Feature Preview: Asset Management (June 15, 2010)">Unity 3.0 Feature Preview: Asset Management</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3-0-what-we-know-so-far/" title="Unity 3.0 What we know so far- A Post in perpetual beta (June 4, 2010)">Unity 3.0 What we know so far- A Post in perpetual beta</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/mod-files-can-now-be-used-in-unity-3d-just-like-other-assets-thanks-unity-technologies/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/30/infiniteunity3d-mod-files-can-now-be-used-in-unity-3d-just-like-other-assets-thanks-unity-technologies/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] Making history with Unity and OpenSim</title><link>http://www.bydesigngames.com/2010/06/30/unity-technologies-making-history-with-unity-and-opensim/</link> <comments>http://www.bydesigngames.com/2010/06/30/unity-technologies-making-history-with-unity-and-opensim/#comments</comments> <pubDate>Wed, 30 Jun 2010 00:01:19 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Rants & Raves]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3023</guid> <description><![CDATA[As our resident virtual world enthusiast, I&#8217;m always on the lookout for Unity developers making progress in the field. One of the most recent and exciting examples of this is heralded by the folks at London-based Rezzable. Renowned for their highly innovative and rich environments in Second Life, Rezzable has ingeniously created a Unity [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_3036" class="wp-caption alignleft" style="width:650px;"><img
class="size-full wp-image-3036 " title="Rezzable brings Unity &amp; Open Sim together" src="http://blogs.unity3d.com/wp-content/uploads/2010/06/unity3d-preview-area-terracotta-warriors-coloured-on-click8.jpg" alt="Rezzable brings Unity &amp; Open Sim together" width="640" height="365"/><p
class="wp-caption-text">Rezzable brings Unity &amp; Open Sim together.</p></div><p>As our resident virtual world enthusiast, I&#8217;m always on the lookout for Unity developers making progress in the field. One of the most recent and exciting examples of this is heralded by the folks at London-based <a
rel="nofollow"  href="http://rezzable.com/">Rezzable</a>. Renowned for their highly innovative and rich environments in <a
rel="nofollow"  href="http://secondlife.com/whatis/?lang=en-US#Be_Creative">Second Life</a>, Rezzable has ingeniously created a <a
rel="nofollow"  href="http://rezzable.net/web2-0/unity3d-and-opensim-working-together-prototype/">Unity based client</a> which works with <a
rel="nofollow"  href="http://opensimulator.org/wiki/Main_Page">OpenSim</a>, an open source Second Life compatible server. Their technology communicates directly with the OpenSim back-end to stream and rez/instantiate SL-compatible content, including its very unique prim and <a
rel="nofollow"  href="http://wiki.secondlife.com/wiki/Sculpted_Prims">sculpted-prim</a> geometry right into Unity in real time.</p><p
style="text-align:center;"><div
id="attachment_3093" class="wp-caption alignnone" style="width:650px;"><img
class="size-full wp-image-3093" title="unity3d-viewer-splash-june2010_640" src="http://blogs.unity3d.com/wp-content/uploads/2010/06/unity3d-viewer-splash-june2010_640.jpg" alt="unity3d-viewer-splash-june2010_640" width="640" height="411"/><p
class="wp-caption-text">Rezzable is using virtual worlds to teach real world history.</p></div></p><p>Rezzable&#8217;s innovation promises to blend Unity&#8217;s powerful AAA, browser-based technology with the vast banks of virtual world data created by OpenSim and Second Life world-builders over the last 8 years. This marriage between new technology and existing content offers a continuity to virtual world developers who needn&#8217;t scrap their existing body of work in order to take advantage of <a
rel="nofollow"  href="http://unity3d.com/unity/coming-soon/unity-3">Unity&#8217;s next-gen functionality</a>.</p><div
id="attachment_3031" class="wp-caption alignleft" style="width:650px;"><img
class="size-full wp-image-3031 " title="A monumental achievement!" src="http://blogs.unity3d.com/wp-content/uploads/2010/06/unity3d-preview-area-stonehenge-megaliths-tourist-shot2.jpg" alt="A Monumental Milestone - Unity, Rezzable &amp; Opensim!" width="640" height="365"/><p
class="wp-caption-text">A Monumental Milestone - Unity, Rezzable &amp; Opensim!</p></div><p>Kudos to Rezzable and world-builders everywhere, working hard to bring Unity and the dream of a digital metaverse together. Do you have any exciting news about Unity and virtual world development or applications? Please share!</p><p><a
href=http://blogs.unity3d.com/2010/06/30/making-history-with-unity-and-opensim/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/30/unity-technologies-making-history-with-unity-and-opensim/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Boston Unity Group &#8211; August Unity Showdown</title><link>http://www.bydesigngames.com/2010/06/30/infiniteunity3d-boston-unity-group-august-unity-showdown/</link> <comments>http://www.bydesigngames.com/2010/06/30/infiniteunity3d-boston-unity-group-august-unity-showdown/#comments</comments> <pubDate>Tue, 29 Jun 2010 23:52:22 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9064</guid> <description><![CDATA[Wow! It&#8217;s time for another Boston Unity Group meeting! August Unity Showdown! I can&#8217;t help but to feel as if it&#8217;s time for an Atlanta Unity group&#8230; (wait for it&#8230;). On August 31,2010 the Boston Unity3D Group will be meeting ...]]></description> <content:encoded><![CDATA[<p></p><p>Wow! It&#8217;s time for another Boston Unity Group meeting! August Unity Showdown! I can&#8217;t help but to feel as if it&#8217;s time for an Atlanta Unity group&#8230; (wait for it&#8230;). On August 31,2010 the Boston Unity3D Group will be meeting up for another round of Unity3D goodness with Alex Schwartz(@gtjuggler) and Elliot Mitchell (@MrT3D).</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/b-u-g/" title="B.U.G.">B.U.G.</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/boston-unity-group/" title="Boston Unity Group">Boston Unity Group</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/parties-and-events/" title="Events">Events</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/boston-unity-group-first-meet-up/" title="Boston Unity Group &#8211; First Meet up (June 15, 2010)">Boston Unity Group &#8211; First Meet up</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/boston-unity-day-2010-photo-and-video-gallery/" title="Boston Unity Day 2010 Photo and Video Gallery (June 19, 2010)">Boston Unity Day 2010 Photo and Video Gallery</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/boston-unity-day/" title="Boston Unity Day (May 28, 2010)">Boston Unity Day</a> (3)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/what-would-you-like-to-see-at-siege-2010-conference/" title="What would you like to see at SIEGE 2010 Conference? (May 7, 2010)">What would you like to see at SIEGE 2010 Conference?</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/hello-world-7/" title="UPCOMING UUG Events in Toronto &#038; Montreal (October 27, 2009)">UPCOMING UUG Events in Toronto &#038; Montreal</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/boston-unity-group-august-unity-showdown/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/30/infiniteunity3d-boston-unity-group-august-unity-showdown/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Unity Technologies] .mod in Unity</title><link>http://www.bydesigngames.com/2010/06/29/unity-technologies-mod-in-unity/</link> <comments>http://www.bydesigngames.com/2010/06/29/unity-technologies-mod-in-unity/#comments</comments> <pubDate>Tue, 29 Jun 2010 21:54:51 +0000</pubDate> <dc:creator>Unity3D News Pipe</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://blogs.unity3d.com/?p=3000</guid> <description><![CDATA[As of Unity 3.0, we are proud to give our users the possibility to use Module files for music and sound in their productions just as any other audio asset. Be sure to check out the preview video on some of the other audio features.
When I started testing Unity&#8217;s new audio features I had very [...]]]></description> <content:encoded><![CDATA[<p><img
class="size-full wp-image-3067 alignright" title="MilkyTracker" src="http://blogs.unity3d.com/wp-content/uploads/2010/06/Screen-shot-2010-06-29-at-17.22.02.png.jpg" alt="MilkyTracker" width="360" height="360"/>As of Unity 3.0, we are proud to give our users the possibility to use Module files for music and sound in their productions just as any other audio asset. Be sure to check out the <a
rel="nofollow" title="Unity 3 Feature Preview &#x002013; Audio"  href="http://blogs.unity3d.com/2010/06/25/unity-3-feature-preview-audio/">preview video on some of the other audio features</a>.</p><p>When I started testing Unity&#8217;s new audio features I had very little idea about what Module files are and what they could do. I asked our audio programmer, Søren, what it was and what I should look for, he replied that it is this tiny file format that allows for cool sound quality &#8211; &#8220;Just try it out&#8221;. And I must say, comparing the file size to the audio quality, I was amazed, thinking that this will impact online and mobile gaming experiences in a good way.</p><p>Tracker Modules are best known from the demo scene&#8217;s composers and the good old Amiga games&#8217; sound tracks and I must admit that it brought memories from late nights playing my brother&#8217;s Amiga. The format can be described as being somewhere in between the well known, but declining, MIDI format and the concurrent PCM formats (including .aiff, .wav, .ogg, and .mp3).</p><p>The power of the Module files lies in the fact that they consist of high quality PCM samples that ensure a similar experience on all hardware. The files then contain additional info about when to play the sound, at what pitch, volume, effect, etc. This is where MIDI&#8217;s shortcomings are evident: MIDI sounds are normally dependent on the sound bank that are in the hardware that outputs the sound. Unity supports four major Module file formats: Impulse Tracker (.it), Scream Tracker (.s3m), Extended Module File Format (.xm), and the original Module File Format (.mod).</p><p>Why not use compressed PCM audio, you say. You can always do that if size and bandwidth are plenty, but if you want a fair sound quality you will still end up using around 1 mb of disk space per minute. Using a mod file you can use and reuse the same samples embedded in the file over and over again. A skilled tracker artist can create hours of high quality audio for 1 mb worth of samples, provided using the right tricks.</p><p>There is a substantial amount of artists creating music using Trackers. As mentioned, the majority have been making soundtracks on the demo scene for the past 20+ years. Many of these artists publish their music through net labels such as <a
rel="nofollow" title=".monotonic."  href="http://www.mono211.com">Monotonic</a>, <a
rel="nofollow" title="SLSK Records"  href="http://soulseekrecords.org">SLSK Records</a>, and <a
rel="nofollow" title="Bump Foot"  href="http://bumpfoot.net/">Bump Foot</a>. It is also worth mentioning that these labels and artists often release under <a
rel="nofollow" title="Creative Commons"  href="http://creativecommons.org/">Creative Commons</a> licenses, which mostly means that it can be used, remixed, and redistributed as long as the artist gets credits. A great way to get assets for indie developers &#8211; just remember to pay them if you earn money on their work <img
src='http://blogs.unity3d.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> . Kudos to the artists for democratising their expressions this way.</p><p>Module files can be created using tracker software. Conceptually trackers work slightly different from conventional software sequencers such as Prologic, GarageBand, Cubase, etc. I encourage you to take a look at some trackers if you are making music. There are many free and open source trackers. Among these I can recommend the cross-platform <a
rel="nofollow" title="MilkyTracker"  href="http://milkytracker.org/">MilkyTracker</a> or <a
rel="nofollow" title="OpenMPT"  href="http://openmpt.com/">OpenMPT</a> if you sit on Windows.</p><p>Happy tracking! I am looking forward to see how you&#8217;ll use this feature.</p><p><a
href=http://blogs.unity3d.com/2010/06/29/mod-in-unity/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/29/unity-technologies-mod-in-unity/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Extreme Reality Partners With Avination For E-Commerce</title><link>http://www.bydesigngames.com/2010/06/28/infiniteunity3d-extreme-reality-partners-with-avination-for-e-commerce/</link> <comments>http://www.bydesigngames.com/2010/06/28/infiniteunity3d-extreme-reality-partners-with-avination-for-e-commerce/#comments</comments> <pubDate>Mon, 28 Jun 2010 12:55:01 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9062</guid> <description><![CDATA[Congratulations to Kevin Tweedy and Elisa Butler of Extreme Reality and the rest of the team on their new partnership with Avination. This partnership adds the virtual economy tools XR JEVN to Avination&#8216; s toolset.
Read more bout the Extreme-Real...]]></description> <content:encoded><![CDATA[<p></p><p>Congratulations to Kevin Tweedy and Elisa Butler of <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/extreme-reality/" class="st_tag internal_tag" title="Posts tagged with Extreme Reality">Extreme Reality</a> and the rest of the team on their new <a
rel="nofollow"  href="http://www.virtualworldsnews.com/2010/06/extreme-reality-partners-with-avination-for-ecommerce.html">partnership with Avination</a>. This partnership adds the virtual economy tools XR JEVN to <a
rel="nofollow"  href="http://www.avination.net/">Avination</a>&#8216; s toolset.</p><p>Read more bout the Extreme-Reality partnership or drop by our episode of <a
rel="nofollow"  href="http://www.blogtalkradio.com/diamondtearz-studios/2010/05/26/the-impact-of-unity-in-the-google-native-client">The Impact of Unity in Google Native Client </a>discussion that Kevin was gracious enough to participate.</p><p><a
rel="nofollow"  href="http://www.avination.net/">Avination is the home of Dark Freeform roleplay OpenSim</a></p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/avination/" title="Avination">Avination</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/elisa-butler/" title="Elisa Butler">Elisa Butler</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/extreme-reality/" title="Extreme Reality">Extreme Reality</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/kevin-tweedy/" title="Kevin Tweedy">Kevin Tweedy</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/news/" title="News">News</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/opensim/" title="OpenSim">OpenSim</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/virtual-worlds/" title="Virtual Worlds">Virtual Worlds</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity3d-and-opensim-working-together-prototype-rezzable/" title="Unity3D and OpenSim Working Together Prototype- Rezzable (June 25, 2010)">Unity3D and OpenSim Working Together Prototype- Rezzable</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/unity-3d-beyond-a-game-engine-wednesday-june-2-7pm-est/" title="Unity 3D Beyond A Game Engine Wednesday June 2, 7PM EST (June 2, 2010)">Unity 3D Beyond A Game Engine Wednesday June 2, 7PM EST</a> (2)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/winners-choice-sicem-studio-give-away/" title="Winner&#8217;s Choice Sic&#8217;em Studio Give-Away! (May 17, 2010)">Winner&#8217;s Choice Sic&#8217;em Studio Give-Away!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/what-would-you-like-to-see-at-siege-2010-conference/" title="What would you like to see at SIEGE 2010 Conference? (May 7, 2010)">What would you like to see at SIEGE 2010 Conference?</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/welcome-to-the-circus-mani/" title="Welcome to The Circus, Mani (June 22, 2010)">Welcome to The Circus, Mani</a> (1)</li></ul><p><a
href=http://infiniteunity3d.com/extreme-reality-partners-with-avination-for-e-commerce/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/28/infiniteunity3d-extreme-reality-partners-with-avination-for-e-commerce/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Basic Marketing Plan for It&#8217;s the Baby! Unity3D Based Game from Infinite Unity3D</title><link>http://www.bydesigngames.com/2010/06/28/infiniteunity3d-basic-marketing-plan-for-its-the-baby-unity3d-based-game-from-infinite-unity3d/</link> <comments>http://www.bydesigngames.com/2010/06/28/infiniteunity3d-basic-marketing-plan-for-its-the-baby-unity3d-based-game-from-infinite-unity3d/#comments</comments> <pubDate>Mon, 28 Jun 2010 12:37:29 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9054</guid> <description><![CDATA[I have been planning how to step through the process of my own case study. We&#8217;re planning some games coming out of Infinite Unity3D that will follow what I believe to be the most effective steps for marketing games as an indie game developer. Alo...]]></description> <content:encoded><![CDATA[<p></p><p>I have been planning how to step through the process of my own case study. We&#8217;re planning some games coming out of Infinite Unity3D that will follow what I believe to be the most effective steps for marketing games as an indie game developer. Along the way we&#8217;ll be listing the steps that we took and what we learned from these steps. One of the first steps that I perform when I&#8217;m planning to do something is reading background info and finding a list of reccomended practices. If I&#8217;m lucky I&#8217;ll come across a step by step guide -like&#8230; <a
rel="nofollow"  href="http://www.gameproducer.net/2006/06/22/basic-marketing-plan-for-indie-games-2/">Basic Marketing Plan for Indie Games</a> from the <a
rel="nofollow"  href="http://www.gameproducer.net">Game Producer Blog</a>.</p><p>I found a marketing article for <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/independent-game-developers/" class="st_tag internal_tag" title="Posts tagged with independent game developers">independent game developers</a> that had originally been posted on Gamasutra in 2006 but that provided a lot of useful and still relevant information. <a
rel="nofollow"  href="http://www.gameproducer.net/2006/06/22/basic-marketing-plan-for-indie-games-2/">Basic marketing plan for Indie Games</a></p><ol><li><strong>Goals: Make sure you know where you&#8217;re heading</strong> covers planning from how much you would like to make from your game and how you plan to go about doing that. It warns that you should consider your target demographic and be aware of average prices so you know what a &#8220;cheapie&#8221; game is and what the average game cost is</li><li><strong>Distribution- Select the right channels for your game</strong>. Are you planning to set up a site and sell from there? Are you planning iPhone,facebook, steam,PS3, xBox 360, Desktop, iPad, Android ,MySpace, Wooglie, Blurst, Big Fish Games, Muse Games? Where are you going to be pushing your product? <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/basic-marketing-plan-for-indie-games/" class="st_tag internal_tag" title="Posts tagged with Basic marketing plan for Indie Games">Basic Marketing Plan for Indie Games</a> lists several other publisher platforms</li><li>Have a great product- What got my attention about this one is that they pointed out that you must make a good product FOR YOUR SELECTED PORTAL- This goes back to knowing the preferences of your target market</li><li><h4>Promotion- Make People Aware of Your Game</h4><p>- The first step in this is market segmentation and choosing your target market. This rings parallel to what I read in &#8220;How I made my first Million Online&#8221; ,a comprehensive guide to internet marketing on multiple levels. delves into psychographic,demographic,geographic and behavioral means of segmenting your population. Once you&#8217;ve selected your target population you plan your offer positioning accordingly. It also suggests some promotional approaches to use for the selected demographic for your game</p></li><li>Website- Provide a place to download the game</li><li>Measurement- be aware of what&#8217;s going on- This brilliant segment in the Basic Marketing Plan article recommends that you are aware of the metrics but that you also experiment with things such as comparing the effect of different prices on product sales. I further endorse having good metrics on your blog and game pages to be aware of how people are discovering your indie game. also recommends seeing if improving the tutorial for your game increases purchases</li><li>Maintenance Make sure your passengers are happy- The focus of this segment is communication with those that have purchased your game product. How can you ensure that these customers will become the biggest evangelists for your product. What are you doing to alleviate their buyer&#8217;s remorse?</li><li>Refinement- Tweak the shyte out of your product and your marketing along the way. This is one of my favorite points but I&#8217;d like to make an addendum. Be sure that you&#8217;re aware of the timeline of a marketing campaign so that you don&#8217;t pull the plug on a campaign right as it would be about ready to blossom. Different approaches take a wide range of time to effectively reap ROI</li></ol><p>The author also wrote several other articles worth reading that I will not dissect in detail quite yet but highly reccomend.</p><ol><li><a
rel="nofollow"  href="http://www.gameproducer.net/2006/07/05/very-simple-marketing-plan-for-indies/">Very Simple Marketing Plan for Indies</a></li><li><a
rel="nofollow"  href="http://www.gamerelease.net/">The Indie Friendly Press Release distribution</a> website- a great place for <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/independent-game-developers/" class="st_tag internal_tag" title="Posts tagged with independent game developers">independent game developers</a> to get and share game release <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/news/" class="st_tag internal_tag" title="Posts tagged with News">news</a>.</li></ol><p>In conclusion- I plan to be stepping through the elements of this as well as the many other useful articles on GameProducer.net. I&#8217;m very tempted to become a member of their insiders club for various reasons including free access to their game release rss. Let&#8217;s see how this journey goes.</p> Tags: <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/basic-marketing-plan-for-indie-games/" title="Basic marketing plan for Indie Games">Basic marketing plan for Indie Games</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/business/" title="business">business</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/independent-game-developers/" title="independent game developers">independent game developers</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/marketing-for-indie-game-developers/" title="Marketing for Indie Game Developers">Marketing for Indie Game Developers</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/marketing-indie-games/" title="marketing indie games">marketing indie games</a>, <a
rel="nofollow"  href="http://infiniteunity3d.com/tag/marketing-plan/" title="marketing plan">marketing plan</a><br
/><h4>Related posts</h4><ul
class="st-related-posts"><li><a
rel="nofollow"  href="http://infiniteunity3d.com/winners-choice-sicem-studio-give-away/" title="Winner&#8217;s Choice Sic&#8217;em Studio Give-Away! (May 17, 2010)">Winner&#8217;s Choice Sic&#8217;em Studio Give-Away!</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/casual-game-developer-advice-from-the-unity3d-website/" title="Unity Indie Developer Advice from the Unity Technologies Site (January 12, 2010)">Unity Indie Developer Advice from the Unity Technologies Site</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/funding-with-preorders/" title="Sic&#x002019;em Studios&#8217; preorder gives to the flood victims in Tennessee (May 12, 2010)">Sic’em Studios&#8217; preorder gives to the flood victims in Tennessee</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/sicem-studios-so-you-think-youre-a-game-designer/" title="Sic&#8217;em Studios &#8211; So You Think You&#8217;re a Game Designer? MiniGame Contest (June 1, 2010)">Sic&#8217;em Studios &#8211; So You Think You&#8217;re a Game Designer? MiniGame Contest</a> (0)</li><li><a
rel="nofollow"  href="http://infiniteunity3d.com/marian-mondays-money-bags/" title="Marian Mondays: Money Bags (April 19, 2010)">Marian Mondays: Money Bags</a> (0)</li></ul><p><a
href=http://infiniteunity3d.com/basic-marketing-plan-for-indie-games-2010/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/28/infiniteunity3d-basic-marketing-plan-for-its-the-baby-unity3d-based-game-from-infinite-unity3d/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[InfiniteUnity3D] Unity3D and OpenSim Working Together Prototype- Rezzable</title><link>http://www.bydesigngames.com/2010/06/25/infiniteunity3d-unity3d-and-opensim-working-together-prototype-rezzable/</link> <comments>http://www.bydesigngames.com/2010/06/25/infiniteunity3d-unity3d-and-opensim-working-together-prototype-rezzable/#comments</comments> <pubDate>Fri, 25 Jun 2010 21:55:47 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9052</guid> <description><![CDATA[
As we mentioned a few weeks ago, we have been hammering away on connecting the Unity3D viewer to our OpenSim servers. It works. You can see it for yourself if you go over to http://heritage-key.com . Arrive in the virtual gallery and check out a selec...]]></description> <content:encoded><![CDATA[<p><a
rel="nofollow" class="post_image_link"  href="http://infiniteunity3d.com/unity3d-and-opensim-working-together-prototype-rezzable/" title="Permanent link to Unity3D and OpenSim Working Together Prototype- Rezzable"><img
class="post_image alignright remove_bottom_margin frame" src="http://infiniteunity3d.com/wp-content/uploads/2010/06/unity_opensim_warrior.gif" width="389" height="275" alt="Unity3D and OpenSim Working Together Prototype- Rezzable"/></a></p><p>As we mentioned a few weeks ago, we have been hammering away on connecting the Unity3D viewer to our OpenSim servers. It works. You can see it for yourself if you go over to http://heritage-key.com . Arrive in the virtual gallery and check out a selection of artefacts like King Tut’s death mask, Stonehenge sarasens and a Terracotta Warrior and also learn a bit about Ancient World history. The main goal here is to give people a taste of what is on offer in the fuller version of our virtual online areas.</p><p><a
href=http://infiniteunity3d.com/unity3d-and-opensim-working-together-prototype-rezzable/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/25/infiniteunity3d-unity3d-and-opensim-working-together-prototype-rezzable/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>[InfiniteUnity3D] Red belly piranha in Unity by Matyas Plezer</title><link>http://www.bydesigngames.com/2010/06/25/infiniteunity3d-red-belly-piranha-in-unity-by-matyas-plezer/</link> <comments>http://www.bydesigngames.com/2010/06/25/infiniteunity3d-red-belly-piranha-in-unity-by-matyas-plezer/#comments</comments> <pubDate>Fri, 25 Jun 2010 17:51:37 +0000</pubDate> <dc:creator>Mani</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[Unity3D]]></category><guid
isPermaLink="false">http://infiniteunity3d.com/?p=9051</guid> <description><![CDATA[This is an impressive underwater scene complete with Jaws type sound effects built in Unity Engine.
It&#8217;s a short animation preview. The original were export to Unity 3D for an iPhone App.
I used for it: Cinema 4D, After effect. ]]></description> <content:encoded><![CDATA[<p></p><p>This is an impressive underwater scene complete with Jaws type sound effects built in Unity Engine.</p><p></p><p>It&#8217;s a short animation preview. The original were export to Unity 3D for an iPhone App.<br
/> I used for it: Cinema 4D, After effect.</p><p><a
href=http://infiniteunity3d.com/red-belly-piranha-in-unity-by-matyas-plezer/>Source Article »</a></p>]]></content:encoded> <wfw:commentRss>http://www.bydesigngames.com/2010/06/25/infiniteunity3d-red-belly-piranha-in-unity-by-matyas-plezer/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 50/164 queries in 7.079 seconds using disk

Served from: www.bydesigngames.com @ 2010-09-08 09:12:26 -->