///////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////
 void Awake()
 {
     // get hold of the vp_FPSCamera and vp_FPSController attached to
     // this game object. NOTE: vp_FPSWeapons and vp_FPSShooters are
     // accessed via 'CurrentWeapon' and 'CurrentShooter'
     Camera     = gameObject.GetComponentInChildren <vp_FPSCamera>();
     Controller = gameObject.GetComponent <vp_FPSController>();
 }
    ///////////////////////////////////////////////////////////
    // hooks up the FPSController object as the inspector target
    ///////////////////////////////////////////////////////////
    void OnEnable()
    {
        m_Component = (vp_FPSController)target;

        if (m_Persister == null)
        {
            m_Persister = new vp_ComponentPersister();
        }
        m_Persister.Component = m_Component;
        m_Persister.IsActive  = true;

        if (m_Component.DefaultState == null)
        {
            m_Component.RefreshDefaultState();
        }
    }
Example #3
0
    ///////////////////////////////////////////////////////////
    //
    ///////////////////////////////////////////////////////////
    void Start()
    {
        // get hold of the FPSCamera and FPSController components
        // attached to this game object
        m_Camera = gameObject.GetComponentInChildren<vp_FPSCamera>();
        m_Controller = gameObject.GetComponent<vp_FPSController>();

        // load crosshair texture
        //m_ImageCrosshair = (Texture)Resources.Load("Examples/Images/Crosshair");

        // load 'modern shooter' camera and controller presets
        //m_Camera.Load("Precam");
        //m_Controller.Load("Precon");

        // try to set weapon 1
        //if ( Guns && m_Camera.WeaponCount > 0)
        //	SetWeapon(1);
    }
    ///////////////////////////////////////////////////////////
    // hooks up the FPSController object as the inspector target
    ///////////////////////////////////////////////////////////
    void OnEnable()
    {
        m_Component = (vp_FPSController)target;

        if (m_Persister == null)
            m_Persister = new vp_ComponentPersister();
        m_Persister.Component = m_Component;
        m_Persister.IsActive = true;

        if (m_Component.DefaultState == null)
            m_Component.RefreshDefaultState();
    }
Example #5
0
 ///////////////////////////////////////////////////////////
 //
 ///////////////////////////////////////////////////////////
 void Awake()
 {
     // get hold of the vp_FPSCamera and vp_FPSController attached to
     // this game object. NOTE: vp_FPSWeapons and vp_FPSShooters are
     // accessed via 'CurrentWeapon' and 'CurrentShooter'
     Camera = gameObject.GetComponentInChildren<vp_FPSCamera>();
     Controller = gameObject.GetComponent<vp_FPSController>();
 }
Example #6
0
    public List <GameObject> FXPrefabs = new List <GameObject>();       // list of special effects objects to spawn


    ///////////////////////////////////////////////////////////
    //
    ///////////////////////////////////////////////////////////
    void Awake()
    {
        // spawn effects gameobjects
        foreach (GameObject fx in FXPrefabs)
        {
            Component[] c;
            c = fx.GetComponents <vp_Explosion>();
            if (c.Length == 0)
            {
                Object.Instantiate(fx, transform.position, transform.rotation);
            }
            else
            {
                Debug.LogError("Error: vp_Explosion->FXPrefab must not be a vp_Explosion (risk of infinite loop).");
            }
        }

        // apply shockwave to all rigidbodies and FPSPlayers within range
        Collider[] colliders = Physics.OverlapSphere(transform.position, Radius);
        foreach (Collider hit in colliders)
        {
            if (hit != this.collider)
            {
                //Debug.Log(hit.transform.name + Time.time);	// snippet to dump affected objects
                if (hit.rigidbody)
                {
                    float distanceModifier = (1 - Vector3.Distance(transform.position,
                                                                   hit.transform.position) / Radius);

                    // explosion up force should only work on grounded objects,
                    // otherwise object may acquire extreme speeds
                    Ray        ray = new Ray(hit.transform.position, -Vector3.up);
                    RaycastHit hit2;
                    if (!Physics.Raycast(ray, out hit2, 1))
                    {
                        UpForce = 0.0f;
                    }

                    // bash all objects within range
                    hit.rigidbody.AddExplosionForce(Force, transform.position, Radius, UpForce);

                    if (hit.gameObject.layer != vp_Layer.Debris)
                    {
                        hit.gameObject.SendMessage(DamageMethodName, distanceModifier * Damage,
                                                   SendMessageOptions.DontRequireReceiver);
                    }
                }
                else
                {
                    vp_FPSController controller = hit.GetComponent <vp_FPSController>();
                    if (controller)
                    {
                        float distanceModifier = (1 - Vector3.Distance(transform.position,
                                                                       hit.transform.position) / Radius) * 0.5f;

                        controller.AddForce((controller.transform.position - transform.position).normalized *
                                            Force * 0.001f * distanceModifier);
                        vp_FPSCamera camera = hit.GetComponentInChildren <vp_FPSCamera>();
                        if (camera)
                        {
                            camera.DoBomb(distanceModifier * CameraShake);
                        }

                        if (hit.gameObject.layer != vp_Layer.Debris)
                        {
                            hit.gameObject.SendMessage(DamageMethodName, distanceModifier * Damage,
                                                       SendMessageOptions.DontRequireReceiver);
                        }
                    }
                }
            }
        }

        // play explosion sound
        audio.clip         = Sound;
        audio.rolloffMode  = AudioRolloffMode.Linear;
        audio.minDistance  = 3;
        audio.maxDistance  = 250;
        audio.dopplerLevel = 2.5f;
        audio.pitch        = Random.Range(SoundMinPitch, SoundMaxPitch);
        audio.playOnAwake  = false;             // 'playOnAwake' seems unreliable, so play manually
        audio.Play();
    }
    ///////////////////////////////////////////////////////////
    // hooks up the FPSController object as the inspector target
    ///////////////////////////////////////////////////////////
    void OnEnable()
    {
        m_Component = (vp_FPSController)target;

        EditorApplication.playmodeStateChanged = delegate()
        {
            vp_ComponentPreset.m_Component = (Component)target;
            vp_ComponentPersister.m_Component = (Component)target;
            vp_ComponentPersister.PlayModeCallback();
        };
    }
Example #8
0
    ///////////////////////////////////////////////////////////
    //
    ///////////////////////////////////////////////////////////
    void Start()
    {
        // get hold of the FPSCamera and FPSController components
        // attached to this game object
        m_Camera = gameObject.GetComponentInChildren<vp_FPSCamera>();
        m_Controller = gameObject.GetComponent<vp_FPSController>();

        // load textures
        if (m_DemoMode)
        {
            LoadCamera("Examples/ImmobileCamera");
            m_Camera.SetWeapon(1);
            m_ImageAllParams = (Texture)Resources.Load("Examples/Images/AllParams");
            m_ImageEditorPreview = (Texture)Resources.Load("Examples/Images/EditorPreview");
            m_ImageEditorPreviewShow = (Texture)Resources.Load("Examples/Images/EditorPreviewShow");
            m_ImageCameraMouse = (Texture)Resources.Load("Examples/Images/CameraMouse");
            m_ImagePresetDialogs = (Texture)Resources.Load("Examples/Images/PresetDialogs");
            m_ImageShooter = (Texture)Resources.Load("Examples/Images/Shooter");
            m_ImageWeaponPosition = (Texture)Resources.Load("Examples/Images/WeaponPosition");
            m_ImageWeaponPerspective = (Texture)Resources.Load("Examples/Images/WeaponRendering");
            m_ImageWeaponPivot = (Texture)Resources.Load("Examples/Images/WeaponPivot");
            m_ImageEditorScreenshot = (Texture)Resources.Load("Examples/Images/EditorScreenshot");
            m_ImageLeftArrow = (Texture)Resources.Load("Examples/Images/LeftArrow");
            m_ImageRightArrow = (Texture)Resources.Load("Examples/Images/RightArrow");
            m_ImageCheck = (Texture)Resources.Load("Examples/Images/Check");
            m_ImageLeftPointer = (Texture)Resources.Load("Examples/Images/LeftPointer");
            m_ImageRightPointer = (Texture)Resources.Load("Examples/Images/RightPointer");
            m_ImageUpPointer = (Texture)Resources.Load("Examples/Images/UpPointer");
            m_ImageCrosshair = (Texture)Resources.Load("Examples/Images/Crosshair");
            m_ImageFullScreen = (Texture)Resources.Load("Examples/Images/Fullscreen");

            // on small screen resolutions the editor preview screenshot
            // panel is minimized by default, otherwise expanded
            if (Screen.width < 1024)
                m_EditorPreviewSectionExpanded = false;

            // add an audio source to the camera, for playing various demo sounds
            m_AudioSource = (AudioSource)m_Camera.gameObject.AddComponent("AudioSource");

        }
    }