[email protected]
Level Design Portfolio
  • HIGHLIGHTS:
    • Camera
    • Collaborations
  • The Long Dark
  • World Design

Telling stories through captivating gameplay.

Warning, this is a construction zone!

Flip through the tabs above to view Open Worlds and other Level Design works I've been crafting since 2014.

Or click the red button
to review my professional work as a Game Design generalist.

Fast Travel to Game Design

Dev Blog 4: Reflections On "Another Unity3D Technical Tip"

31/10/2013

3 Comments

 
Beta is almost done! I have been bestowed with another technical piece of wisdom about Unity3D. The revelation came while trying to fix a bug and realizing that the best prevention to the problem would exploit the cause of a bug I described in a previous post.

The current problem had to do with the scaling of enemy characters being skewed because they were children of a scalable object. Essentially, the best prevention for this bug is to NEVER put enemy characters as children of anything with the exception of empty game objects that act as containers. I wanted to avoid using GameObject.Find() for triggering enemies with my trigger volumes so I had been relying on this.FindComponentsInChildren, but after a few scene saves the characters began to warp according to their rotation.

The previous bug led to the discovery that even empty objects with children can participate in collisions if their children have components capable of collision. So the best way to prevent my current problem is to make an empty game object the parent for both the enemies and the trigger volume. The collision for the trigger volume would be applied to the parenting empty game object, but the enemies would be at no risk of being magically rescaled while I am not looking at them.

In summary, I have made one step towards a best practice for anyone that uses a similar workflow to create trigger volumes in Unity3D. First create an empty game object for each trigger volume at the origin and name these containers for the specific encounters. Place any custom trigger scripts on these containers. Then create cubes or other shapes for your trigger volumes and make them children of the appropriately named container. Enemies can be placed in the scene in an idling state and be changed to their attacking state using the script on the container when the encounter is triggered. This is easy and cheaply accomplished by calling this.FindComponentsInChildren() and using a for loop to iterate through the array that is returned to activate each one in sequence.


3 Comments
nursing assignment help link
29/5/2016 03:52:29 am

That we learned from the others experience and moments that reflects the results and morals for ourselves. As like that, others are also getting learning while watching our moments. So we should have to take care of our deeds.

Reply
cheap research papers link
8/7/2016 09:47:40 pm

I am a junior so it's very interesting for me to read your dev blog! Thanks!

Reply
write my dissertation link
23/2/2017 02:32:54 am

I'm looking forward for more posts. This is an actual info and a great blog for me,

Reply



Leave a Reply.


    James Dodge

    Level Designer

    View my profile on LinkedIn

    Categories

    All
    CameraAnalysis
    CameraDevelopment
    GlobalGameJam
    Photoshop
    TombRaider


    Archives

    October 2021
    December 2017
    November 2017
    October 2017
    September 2017
    August 2017
    July 2017
    June 2017
    May 2017
    April 2017
    March 2017
    February 2017
    January 2017
    December 2016
    October 2016
    September 2016
    June 2016
    May 2016
    March 2016
    February 2016
    August 2015
    July 2015
    March 2015
    February 2015
    December 2014
    September 2014
    August 2014
    July 2014
    April 2014
    January 2014
    December 2013
    November 2013
    October 2013
    August 2013


    RSS Feed

Site powered by Weebly. Managed by Bluehost