// Start is called before the first frame update
    void Start()
    {
        // get components
        rb = GetComponent <Rigidbody>();
        triggerDrinkBlood = GetComponent <TriggerDrinkBlood>();
        cam = GetComponentInChildren <Camera>();

        // set variables
        terrainDetector        = new TerrainDetector();
        _yRotateOffset         = transform.rotation.eulerAngles.y;
        _yRotateOffsetPosition = _yRotateOffset;
        _yRotateOffsetRotation = _yRotateOffset;

        switch (_controlScheme)
        {
        case ControlScheme.FacePosition:
            _setRotation = SetRotationByFacePosition;
            break;

        case ControlScheme.FaceRotation:
            _setRotation = SetRotationByFaceRotation;
            break;

        case ControlScheme.Hybrid:
            _setRotation = SetRotationHybrid;
            break;
        }
    }
Esempio n. 2
0
 void Start()
 {
     rb               = gameObject.GetComponent <Rigidbody>();
     Cursor.visible   = false;
     Cursor.lockState = CursorLockMode.Locked;
     td               = new TerrainDetector();
 }
Esempio n. 3
0
    void Start()
    {
        terrainDetector = new TerrainDetector(true);
        map             = new GameObject[mapSizeX, mapSizeY];

        for (int i = 0; i < runGeneratorTimes; i++)
        {
            SpawnAllObjects();
        }
    }
Esempio n. 4
0
    void Start()
    {
        td = new TerrainDetector();
        // terrain size x
        terrainWidth = (int)terrain.terrainData.size.x;
        // terrain size z
        terrainLength = (int)terrain.terrainData.size.z;
        // terrain x position
        terrainPosX = (int)terrain.transform.position.x;
        // terrain z position
        terrainPosZ = (int)terrain.transform.position.z;


        for (int i = 0; i < 5000 && currentObjects < numberOfObjects; i++)
        {
            // generate random x position
            int posx = Random.Range(terrainPosX, terrainPosX + terrainWidth);
            // generate random z position
            int posz = Random.Range(terrainPosZ, terrainPosZ + terrainLength);
            // get the terrain height at the random position
            float posy = Terrain.activeTerrain.SampleHeight(new Vector3(posx, 0, posz)) - yOffset - 1.1f;
            // create new gameObject on random position


            Collider[] cols = Physics.OverlapSphere(new Vector3(posx, posy, posz), sphereRadius);
            foreach (Collider col in cols)
            {
                if (col.gameObject != terrain.gameObject)
                {
                    continue;
                }
            }
            if (textureIDs.Count != 0)
            {
                if (textureIDs.Contains(td.GetActiveTerrainTextureIdx(new Vector3(posx, posy, posz))))
                {
                    GameObject newObject = (GameObject)Instantiate(objectToPlace, new Vector3(posx, posy, posz), Quaternion.Euler(0, Random.Range(0.0f, 360.0f), 0));
                    newObject.transform.localScale *= scaleMultiplier + Random.RandomRange(-scaleVariation, scaleVariation);
                    currentObjects += 1;
                }
            }
            else
            {
                GameObject newObject = (GameObject)Instantiate(objectToPlace, new Vector3(posx, posy, posz), Quaternion.Euler(0, Random.Range(0.0f, 360.0f), 0));
                newObject.transform.localScale *= scaleMultiplier;
                currentObjects += 1;
            }
        }

        print("name: " + objectToPlace.name + " currentObj: " + currentObjects);
    }
Esempio n. 5
0
 // Use this for initialization
 private void Start()
 {
     m_CharacterController = GetComponent <CharacterController>();
     m_Camera = Camera.main;
     m_OriginalCameraPosition = m_Camera.transform.localPosition;
     m_FovKick.Setup(m_Camera);
     m_HeadBob.Setup(m_Camera, m_StepInterval);
     m_StepCycle   = 0f;
     m_NextStep    = m_StepCycle / 2f;
     m_Jumping     = false;
     m_AudioSource = GetComponent <AudioSource>();
     m_MouseLook.Init(transform, m_Camera.transform);
     t = new TerrainDetector();
 }
Esempio n. 6
0
    private void FixedUpdate()
    {
        movementSpeed = GetComponentInParent <Rigidbody>().velocity.magnitude;

        RaycastHit hit;

        if (Physics.Raycast(transform.position + Vector3.up, Vector3.down, out hit, 2f, layerMask))
        {
            playSound = true;
            if ((!currentTerrain && hit.transform.GetComponent <Terrain>()) || (hit.transform.GetComponent <Terrain>() && currentTerrain.name != hit.transform.GetComponent <Terrain>().name))
            {
                currentTerrain  = hit.transform.GetComponent <Terrain>();
                terrainDetector = currentTerrain.GetComponent <TerrainDetector>();
            }

            if (hit.transform.tag == "Concrete")
            {
                currentSounds = movementSpeed >= jogThreshold ? sounds.runConcrete : sounds.walkConcrete;
            }
            else if (hit.transform.tag == "Wood")
            {
                currentSounds = movementSpeed >= jogThreshold ? sounds.runWood : sounds.walkWood;
            }
            else if (hit.transform.tag == "Metal")
            {
                currentSounds = movementSpeed >= jogThreshold ? sounds.runMetal : sounds.walkMetal;
            }
            else if (hit.transform.tag == "Terrain")
            {
                int textureIndex = terrainDetector.GetDominantTextureIndexAt(transform.position);

                switch (textureIndex)
                {
                case 0:     // sand texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runSand : sounds.walkSand;
                    break;

                case 1:     // gravel texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runGravel : sounds.walkGravel;
                    break;

                case 2:     // moss texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runGrass : sounds.walkGrass;
                    break;

                case 3:     //grass texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runGrass : sounds.walkGrass;
                    break;

                case 4:     //rock texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runConcrete : sounds.walkConcrete;
                    break;

                case 5:     //charcoal texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runConcrete : sounds.walkConcrete;
                    break;

                case 6:     //snow texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runSnow : sounds.walkSnow;
                    break;

                case 7:     //dirt texture
                    currentSounds = movementSpeed >= jogThreshold ? sounds.runGrass : sounds.walkGrass;
                    break;

                default:
                    Debug.LogError("Please add footsteps sound effect for this ground type: " + textureIndex);
                    break;
                }
            }
        }
        else
        {
            playSound = false;
        }
    }
Esempio n. 7
0
 // Start is called before the first frame update
 void Start()
 {
     audioSource     = GetComponent <AudioSource>();
     terrainDetector = FindObjectOfType <TerrainDetector>();
     layerMask       = (LayerMask.GetMask("Terrain"));
 }
Esempio n. 8
0
 private void Awake()
 {
     audioSource     = GetComponent <AudioSource>();
     terrainDetector = new TerrainDetector();
 }
Esempio n. 9
0
    private void Awake()
    {
        //initialze the soundsPool here in code instead:

        soundsPools = new List <StepSoundsPool>();
        StepSoundsPool element = null;

        for (int i = 0; i < 4; i++)
        {
            element        = new StepSoundsPool();
            element.audios = new List <AudioClip>();
            switch (i)
            {
            case 0:
                element.Tag = "dirt";
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Dirt/STEPSDirt,Walk01"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Dirt/STEPSDirt,Walk02"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Dirt/STEPSDirt,Walk03"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Dirt/STEPSDirt,Walk04"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Dirt/STEPSDirt,Walk05"));

                break;

            case 1:
                element.Tag = "wood";
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Wood/Wood,Creaky/STEPSWood,Creaky,Walk01"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Wood/Wood,Creaky/STEPSWood,Creaky,Walk02"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Wood/Wood,Creaky/STEPSWood,Creaky,Walk03"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Wood/Wood,Creaky/STEPSWood,Creaky,Walk04"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Wood/Wood,Creaky/STEPSWood,Creaky,Walk05"));
                break;

            case 2:
                element.Tag = "grass";
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Bush/STEPSBush,Walk01"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Bush/STEPSBush,Walk02"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Bush/STEPSBush,Walk03"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Bush/STEPSBush,Walk04"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Bush/STEPSBush,Walk05"));
                break;

            case 3:
                element.Tag = "water";
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Water/STEPSWater,Walk01"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Water/STEPSWater,Walk02"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Water/STEPSWater,Walk03"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Water/STEPSWater,Walk04"));
                element.audios.Add(Resources.Load <AudioClip>("Audio/Sounds/High_Quality_Footsteps/Water/STEPSWater,Walk05"));
                break;

            default:
                break;
            }

            soundsPools.Add(element);
        }

        poolDictionary = new Dictionary <string, List <AudioClip> >();
        //or pls reference soundsPools in the Unity Editor
        foreach (StepSoundsPool pool in soundsPools)
        {
            //added to the dictionary
            poolDictionary.Add(pool.Tag, pool.audios);
        }
        //set tags
        setTagtoAllChildren("dirt");
        setTagtoAllChildren("wood");
        setTagtoAllChildren("grass");
        setTagtoAllChildren("water");

        audioSource     = GetComponent <AudioSource>();
        terrainDetector = FindObjectOfType <TerrainDetector>();
        //pls reference soundsPools in the Unity Editor
    }
Esempio n. 10
0
 void Start()                                                // Start is called before the first frame update
 {
     playerTransform = GameObject.Find("Capsule").transform; //Finds the game object called "Capsule" that is used to represent the body of the player.
     nextupdate      = Time.time + footstepinterval;         //Set when to play the first footstep. Time.time expresses the current time, where footstep interval applies the time offset between footsteps.
     terrainDetector = new TerrainDetector();                //Creating a new instance of class TerrainDetector
 }
Esempio n. 11
0
 // Start is called before the first frame update
 void Start()
 {
     animator        = GetComponentInChildren <Animator>();
     terrainDetector = new TerrainDetector();
 }