Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel4

...

Upgrading .unitypackage files is a little more difficult.  This quote from the Unity docs explains it:

"For the cleanest possible upgrade, it should be considered to remove the old package contents first, as some scripts, effects or prefabs might have become deprecated or unneeded and Unity packages don't have a way of deleting (unneeded) files (but make sure to have a security copy of the old version available)."

The easiest way I've found is to use the approach the SVN docs recommend for vendor branch upgrades.

...

Through the Unity Editor, many variables of vhAssets script components can be customized

DebugConsole

Captures all SmartBody and Unity log ouput and display it to user. Also can be used to send commands. Type '?' for a list of available commands.

Variable NamePurposeValue Range
Percentage Of ScreenThe amount of vertical space that the debug console GUI will spanfloat 0 - 1

FreeMouseLook

Variable NamePurposeValue Range
AxesSpecifies which axes the camera can rotate aroundMouseX, MouseY, MouseXAndY
Sensitivity X/YAngular velocity for camera rotationfloat
Movement SpeedLinear velocity for camera movementfloat
Secondary MovementLinear velocity for camera movement when holding the left shift keyfloat
Maximum X//YMax angle the camera can rotate on an axis before being clamped-360 to +360
Minimum X/YMin angle the camera can rotate on an axis before being clamped-360 to +360
Camera Rotation OnEnables/Disables camera rotation from mouse movement: True or FalseTrue/False
Move Keys

Allows specification for which keys are used to make the camera move

up, down, left, right, forward, backward, and toggle rotation on/off

KeyCode

Loading Screen

Provides functionality for full screen image

VHBehaviour

Allows for control of the call ordering of all MonoBehaviour messages sent from Unity.

Variable NamePurposeValue Range
Initial Priority

The ordering in which this script will be called compared to other VHBehaviours.

 A lower number entails a higher priority. i.e. priority 0 behaviours get processed

before priority 10 behaviours

int

VHBehaviourManager

The control system that allows for correct processing order of VHBehaviours.  This object MUST be present in order for VHBehaviours to work

VHWayPointNavigator

Variable NamePurposeValue Range
SpeedLinear movement rate at which you move between waypointsfloat
Turn Towards TargetTurn to face your next waypoint target.True/False
Ignore HeightOnly move to next waypoint along the x/z axesTrue/False
Immediately Start PathingStart Pathing: As soon as the scene starts, start movingTrue/False
Loop TypeAction to take upon reaching the last way point of the pathLoop, Ping Pong, Stop
PatherThe gameobject that will do the movingGameObject
WayPointsThe list of transforms that will be used as waypoints for the pather to move alongGameObject

VHTimeDemo

Works with VHWayPointNavigator and FpsCounter to track performance along a specified path in the scene and then uploads fps/performance data to a database

Variable NamePurposeValue Range
Time Demo NameIdentifying name of this time demo. Used for starting a specific time demo through the console or command linestring
Performance Log NameThe filename for the output log from unity's performance trackingstring
Project NameSpecifies the project this demo is used forstring
Time Demo LengthThe amount of time it will take for the time demo to complete once startedpositive float
Fps Sampling RateHow often the fps will be sampled during the time demopositive float

SmartBodyManager

Interfaces with SmartBody.dll to provide SmartBody character animation to unity

Variable NamePurposeValue Range
Path To SBM FilesThe directory in which SmartBody should look for initialization files. Starting directory is the current unity project folderstring
Character Load PathProject subdirectory in which character prefabs should be instantiated fromstring
Position Scale

Units of measurement between SmartBody and unity can sometimes be different based on how the art was exported.

If there is a difference, it can be mitigated with this variable

positive float
Display Log MessagesToggle for allowing SmartBody LOGs to be output to unity.True/False
All Facebone CharactersToggle for making all unity SmartBody driven characters facebone drive or notTrue/False
Cam SettingsUsed for the SBMonitor to duplicate the renderer viewport and camerapositive float
Initial VHMsgs to SendVHMsgs that will get sent as soon as SmartBody is initializedstring

UnitySmartBodyCharacter

Works with SmartBodyManager to have a SmartBody driven character inside of unity

Variable NamePurposeValue Range
Bone Parent NameChild gameobject name path that will lead to the skeleton rootstring
Is Face Bone Driven:Toggle that informs SmartBody whether or not this character is face bone drivenTrue/False

VHMsgManager

Interfaces with VHMsg that allows communication via strings between processes

...

Send arguments with a command while typing in the console

Info

vhmsg someMessage

VHMsgManager

Subscribe to a certain type of message

...

Info

vhmsg.AddMessageEventHandler(new VHMsgBase.MessageEventHandler(VHMsg_MessageEvent));

void VHMsg_MessageEvent(object sender, VHMsgBase.Message message) {

     string [] splitargs = message.s.Split( " ".ToCharArray() );

     if (splitargs[0] == "someMessage")

          // Do Something

}

Build Process

You can customize the build process by creating and modifying a BuildSettings.xml file.

  1. Inside the assets folder in your unity project, create a file called BuildSettings.xml
  2. In the same folder as the Assets folder within your Unity project create a .bat file with the following lines

    Info

    @setlocal

    set PROJECTPATH=%CD%

    pushd ..\Unity

    call runEditorBatch.bat -projectPath %PROJECTPATH% -batchmode -nographics -quit -executeMethod UnityStartup.PerformWindowsBuild

    popd

    @endlocal

  3. Use the following template for custom modification

    Info

    <?xml version="1.0" encoding="utf-8"?>
    <BuildSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cpandl.com">
      <ExternalAssetsPaths>
        <string>Assets/SomeDirectory</string>
        <string>Assets/SomeOtherDirectory</string>
      </ExternalAssetsPaths>
      <BuildOutputPath>Builds/YourProject/YourProject.exe</BuildOutputPath>
      <PostBuildScript>somePostBuildScript.bat</PostBuildScript>
      <ConfigFiles>
        <string>Assets/config.ini</string>
      </ConfigFiles>
    </BuildSettings>

BuildSettings.xml Format

FieldDesrcription
ExternalAssetsPathsArray of folder names that will be copied to the BuildOutputPath. (OPTIONAL)
BuildOutputPath

Path specifying the name and location of the .exe for your build (REQUIRED)

PostBuildScript

A .bat or .exe that will be run after the build process is completed. (OPTIONAL)

ConfigFilesArray of file names taht will be copied to the BuildOutputPath. (OPTIONAL)

 

Config File Parsing

You can create a config .ini file in your project and read it using the IniParser class

...