Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Help with Sanity Script(Again)

Discussion in 'Scripting' started by SgtBossGamer12, Oct 4, 2014.

  1. SgtBossGamer12

    SgtBossGamer12

    Joined:
    Oct 2, 2014
    Posts:
    16
    Like I said I last thread I posted, I'm sort of newb with javascript. Anyway, What I want my script to do is to take 20 away from my Sanity variable everytime I enter a trigger, and then have it take away the current hud, and put up the next, and it works for the first trigger I enter, but not the second.
    Here's the script...
    Code (JavaScript):
    1.  
    2. var hud: GameObject;
    3. var hud2 : GameObject;
    4. var hud3 : GameObject;
    5. var hud4 : GameObject;
    6. var hud5 : GameObject;
    7. var hud6 : GameObject;
    8.  
    9. var hasplayed = false;
    10. var entertrigger = false;
    11. var entertrigger1 = false;
    12. var entertrigger2 = false;
    13. var entertrigger3 = false;
    14. var entertrigger4 = false;
    15.  
    16. var Sanity = 100;
    17.  
    18.  
    19.  
    20. function Start () {
    21.  
    22. entertrigger = false;
    23. hasplayed = false;
    24. hud.renderer.enabled = true;
    25. hud2.renderer.enabled = false;
    26. hud3.renderer.enabled = false;
    27. hud4.renderer.enabled = false;
    28. hud5.renderer.enabled = false;
    29. hud6.renderer.enabled = false;
    30.  
    31. }
    32.  
    33. function OnTriggerEnter (other : Collider) {
    34. entertrigger = true;
    35.  
    36. }
    37.  
    38.  
    39.  
    40. function Update () {
    41.  
    42. if (entertrigger == true) {
    43. Sanity = Sanity - 20;
    44. hud.renderer.enabled = false;
    45. hud2.renderer.enabled = true;
    46. entertrigger = false;
    47. }
    48. if (Sanity == 80) {
    49. if (entertrigger == true) {
    50. Sanity = Sanity - 20;
    51. hud2.renderer.enabled = false;
    52. hud3.renderer.enabled = true;
    53. entertrigger1 = false;
    54. }
    55. }
    56. if (Sanity == 60) {
    57. if (entertrigger == true) {
    58. Sanity = Sanity - 20;
    59. hud3.renderer.enabled = false;
    60. hud4.renderer.enabled = true;
    61. entertrigger2 = false;
    62. }
    63. }
    64. if (Sanity == 40) {
    65. if (entertrigger == true) {
    66. Sanity = Sanity - 20;
    67. hud4.renderer.enabled = false;
    68. hud5.renderer.enabled = true;
    69. entertrigger3 = false;
    70. }
    71. }
    72. if (Sanity == 20) {
    73. if (entertrigger == true) {
    74. Sanity = Sanity - 20;
    75. hud.renderer.enabled = false;
    76. hud2.renderer.enabled = false;
    77. hud3.renderer.enabled = false;
    78. hud4.renderer.enabled = false;
    79. hud5.renderer.enabled = false;
    80. hud6.renderer.enabled = false;
    81. entertrigger = false;
    82. removeovertime ();
    83. entertrigger = false;
    84. }
    85. }
    86. }
    87.  
    88. function removeovertime (){
    89. yield WaitForSeconds (2);
    90. Application.LoadLevel(0);
    91. }
    92.  
    93.  
     
  2. djfunkey

    djfunkey

    Joined:
    Jul 16, 2012
    Posts:
    201
    Use arrays or lists for all your huds. For this you should only need 1 trigger object, and just copy it around your scene. then each time a player enters this trigger reduce the sanity by 20%. then I would use a switch statement for each sanity level.
     
    Habitablaba likes this.
  3. SgtBossGamer12

    SgtBossGamer12

    Joined:
    Oct 2, 2014
    Posts:
    16
    So I know how to make an array, but how do I remove or add objects in the array from the game
     
  4. willemsenzo

    willemsenzo

    Joined:
    Nov 15, 2012
    Posts:
    585
    A list might be more useful since it has a Add and Remove function but it works about the same as an array in practice.

    List<GameObject> hudList = new List<GameObject>(); //declaration

    hudList.Add(targetObject); //adds an item
    hudList.Remove(targetObject); //remove target
    hudList.RemoveAt(index); //remove target