Documentation Contents:


Retrobot! A Brief Part of Internet History

Fun fact: this character goes back in time a bit. There are some things on the internet that are hard to forget. This robot was hard to forget one time too. He was a stock image mascot and has found his way around all over the internet. You could do a reverse search on TinEye.com using these images to see just what I’m talkin’ ’bout.

Retrobot Business Mascot, Custom 3D Character Design


Main Prefabs

The robot prefabs can be found in the folder LB3D/Retrobot/Prefabs/Variants.


Animations

Included with the robot is a decent animation controller that should get you started. I’m aware that all games/apps are different, and usually the game designer will prefer to design their own character controller. You can safely remove this if you wish to create your own.

Please note: Many animations are included. However, this is a very simple character and can be animated in Unity. Teaching animation within the Unity editor is out of the scope of this documentation. Be sure to look into it using online tutorials if you are not already familiar with the subject.

Since this character floats and hovers, it was not necessary to provide root motion in the animations, as there is no foot-traction or other location-sensitive animations to keep track of.

Therefore, it is necessary to control the forward, backward, and lateral animations of the robot as he flies around.

To use the included animation controller, have a look at RetrobotController.cs

// RetrobotController.cs (excerpt)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RetrobotController : MonoBehaviour
{
    // ...
}

One-Shot Animations

To play a one-shot animation:

DoAction("Do_Giggle");

Or, from your own script:

GetComponent<RetrobotController>().DoAction("Do_Giggle");

Here are some other actions included (see the Animator Controller and the animations folder for the complete list):

// Included animations you can fire off with the DoAction method.
DoAction("Do_Giggle");               // cute giggle
DoAction("Do_Angry_Dramatic");       // becomes an angry drama queen
DoAction("Do_Dissapointed_Slow_Shake"); // when you see silly questions posted in Unity forums ;)
DoAction("Do_Shock_And_Awe");        // your reaction when you first saw this asset on the Unity Store

Idle and Motion Animations

The character controller does not use root motion. As your own script controls locomotion and rotation, use these helpers to lean/animate accordingly:

// Turning left or right:
SetMotionXState(0);   // idle, no leaning
SetMotionXState(1);   // leans to the right
SetMotionXState(-1);  // leans to the left
// Moving backward or forward:
SetMotionYState(0);    // idle
SetMotionYState(1);    // leans forward
SetMotionYState(-1);   // leans backward

// Subtle movement:
SetMotionYState(0.5);  // slight forward
SetMotionYState(-0.5); // slight backward

Be sure to check out the demo scene for how these are implemented. Of special interest: Retrobot Animation ControllerRetrobot Animation ControllerAnimation Controller Blends, Idle and Motion StatesAnimation Controller Blends, Idle and Motion States

Other Idle States

There is a “Fight Idle” and other idle states. Fight Idle is the default ready-to-fight pose. The other idle blend is for slightly different idle animations that differ in rate or air-float-depth.

// Toggle fight idle pose:
SetFightIdle(true);   // assumes fight pose in idle
SetFightIdle(false);  // normal idle

Blend between idle variants from 0 to 1:

SetIdleState(0.0f);  // basic idle, slower and less dramatic
SetIdleState(0.5f);  // more extreme idle, more float
SetIdleState(1.0f);  // high-energy idle

See the demo scene and the built demo to get more acquainted: Retrobot Demo SceneRetrobot Demo Scene


RetroBot Icon Display

The included icons are from game-icons.net licensed under CC 3.0.

The RetroBot mascot can display signs, icons, logos, or other images. Some icons are included as examples, but the system is made for custom use in your app/game since the robot can serve as a companion, guide, or presenter. For free icons, see https://game-icons.net/.

You may implement icons however you wish. A simple program is provided on the character for changing icons and colors.


Assigning Icons, Textures, and Colors

On the RetroBot prefab, you’ll find useful scripts attached (remove/alter anything you wish for your own game/app). To assign unique icons (textures) and colors, use the RobotIconManager script: Retrobot icon manager scriptRobotIconManager in the Unity Inspector Both the icons and color options have foldouts for assigning elements. Take note of index values for each color/texture.

Color foldout:

Unity editor color assignment - Retrobot Documentation

Texture foldout:

Unity editor texture assignment - Retrobot Documentation

To change colors and icons via script, first access RetrobotIconManager with GetComponent().

// Turn off the front icon:
retroBot.GetComponent<RetrobotIconManager>().ActivateFrontIcon(false);

// Turn off the head icons:
retroBot.GetComponent<RetrobotIconManager>().ActivateHeadIcons(false);

Change an icon (by texture index):

retroBot.GetComponent<RetrobotIconManager>().SetIconTexture(5);

Change an icon color (by color index):

retroBot.GetComponent<RetrobotIconManager>().SetIconColor(4);

This simple script will throw an error if you access an index that does not exist. Your game code should provide correct logic.

To disable icons entirely, toggle them off in the editor:

Turn off the icons

You can find example scripts in the scene. Look for the UseExample object and open the script to see application.

UseExample scripts


Thruster Control

If you want to create your own thruster effects, you may alter the robot by removing the thrusters in the prefab, or simply disable them and remove the corresponding script from the prefab’s root object. Particle effects can differ between rendering options in Unity, so while the default thrusters work in most cases, they may get in the way in some.

Remove or disable thrusters

Enable/disable thrusters via script:

// Disable thrusters:
retroBot.GetComponent<RetrobotIconManager>().ActivateThruster(false);

// Enable thrusters:
retroBot.GetComponent<RetrobotIconManager>().ActivateThruster(true);