Example #1
0
    void Start()
    {
        rigid             = GetComponent <Rigidbody>();
        allWheelColliders = GetComponentsInChildren <WheelCollider>();

        if (!waypointsContainer)
        {
            waypointsContainer = FindObjectOfType(typeof(SAICWaypointsContainer)) as SAICWaypointsContainer;
        }

        SoundsInitialize();

        if (wheelSmoke)
        {
            SmokeInit();
        }

        navigatorObject = new GameObject("Navigator");
        navigatorObject.transform.parent        = transform;
        navigatorObject.transform.localPosition = Vector3.zero;
        navigatorObject.AddComponent <NavMeshAgent>();
        navigatorObject.GetComponent <NavMeshAgent>().radius            = 1;
        navigatorObject.GetComponent <NavMeshAgent>().speed             = 1f;
        navigatorObject.GetComponent <NavMeshAgent>().height            = 1;
        navigatorObject.GetComponent <NavMeshAgent>().avoidancePriority = 99;
        navigator = navigatorObject.GetComponent <NavMeshAgent>();

        // Lower the center of mass for make more stable car.
        rigid.centerOfMass       = new Vector3(COM.localPosition.x * transform.localScale.x, COM.localPosition.y * transform.localScale.y, COM.localPosition.z * transform.localScale.z);
        rigid.maxAngularVelocity = 3f;
        defsteerAngle            = steerAngle;
    }
Example #2
0
    void OnSceneGUI()
    {
        Event e = Event.current;

        wpScript = (SAICWaypointsContainer)target;

        if (e != null)
        {
            if (e.isMouse && e.shift && e.type == EventType.MouseDown)
            {
                Ray        ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
                RaycastHit hit = new RaycastHit();
                if (Physics.Raycast(ray, out hit, 5000.0f))
                {
                    Vector3 newTilePosition = hit.point;

                    GameObject wp = new GameObject("Waypoint " + wpScript.waypoints.Count.ToString());

                    wp.transform.position = newTilePosition;
                    wp.transform.SetParent(wpScript.transform);

                    GetWaypoints();
                }
            }

            if (wpScript)
            {
                Selection.activeGameObject = wpScript.gameObject;
            }
        }

        GetWaypoints();
    }
Example #3
0
    void OnSceneGUI()
    {
        Event e = Event.current;
        wpScript = (SAICWaypointsContainer)target;

        if(e != null){

            if(e.isMouse && e.shift && e.type == EventType.MouseDown){

                Ray ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
                RaycastHit hit = new RaycastHit();
                if (Physics.Raycast(ray, out hit, 5000.0f)) {

                    Vector3 newTilePosition = hit.point;

                    GameObject wp = new GameObject("Waypoint " + wpScript.waypoints.Count.ToString());

                    wp.transform.position = newTilePosition;
                    wp.transform.SetParent(wpScript.transform);

                    GetWaypoints();

                }

            }

            if(wpScript)
                Selection.activeGameObject = wpScript.gameObject;

        }

        GetWaypoints();
    }
Example #4
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        wpScript = (SAICWaypointsContainer)target;

        if(GUILayout.Button("Delete Waypoints")){
            foreach(Transform t in wpScript.waypoints){
                DestroyImmediate(t.gameObject);
            }
            wpScript.waypoints.Clear();
        }

        EditorGUILayout.PropertyField(serializedObject.FindProperty("waypoints"), new GUIContent("Waypoints", "Waypoints"), true);

        EditorGUILayout.HelpBox("Create Waypoints By Shift + Left Mouse Button On Your Road", MessageType.Info);

        serializedObject.ApplyModifiedProperties();
    }
Example #5
0
    public override void  OnInspectorGUI()
    {
        serializedObject.Update();

        wpScript = (SAICWaypointsContainer)target;

        if (GUILayout.Button("Delete Waypoints"))
        {
            foreach (Transform t in wpScript.waypoints)
            {
                DestroyImmediate(t.gameObject);
            }
            wpScript.waypoints.Clear();
        }

        EditorGUILayout.PropertyField(serializedObject.FindProperty("waypoints"), new GUIContent("Waypoints", "Waypoints"), true);

        EditorGUILayout.HelpBox("Create Waypoints By Shift + Left Mouse Button On Your Road", MessageType.Info);

        serializedObject.ApplyModifiedProperties();
    }
Example #6
0
    void Start()
    {
        rigid = GetComponent<Rigidbody>();
        allWheelColliders = GetComponentsInChildren<WheelCollider>();

        if(!waypointsContainer)
            waypointsContainer = FindObjectOfType(typeof(SAICWaypointsContainer)) as SAICWaypointsContainer;

        SoundsInitialize();

        if(wheelSmoke)
            SmokeInit();

        navigatorObject = new GameObject("Navigator");
        navigatorObject.transform.parent = transform;
        navigatorObject.transform.localPosition = Vector3.zero;
        navigatorObject.AddComponent<NavMeshAgent>();
        navigatorObject.GetComponent<NavMeshAgent>().radius = 1;
        navigatorObject.GetComponent<NavMeshAgent>().speed = 1f;
        navigatorObject.GetComponent<NavMeshAgent>().height = 1;
        navigatorObject.GetComponent<NavMeshAgent>().avoidancePriority = 99;
        navigator = navigatorObject.GetComponent<NavMeshAgent>();

        // Lower the center of mass for make more stable car.
        rigid.centerOfMass = new Vector3(COM.localPosition.x * transform.localScale.x , COM.localPosition.y * transform.localScale.y , COM.localPosition.z * transform.localScale.z);
        rigid.maxAngularVelocity = 3f;
        defsteerAngle = steerAngle;
    }