• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by newcomix · May 28, 2013 at 05:08 PM · c#characterenemy

I changed from Character COntroller to Rigidbody/Collider but how do i change component script?

I just changed my target(the Player) of my Enemy from a Character Controller to a RigidBody/Collider

But how do i change the script then where my Enemy picks up the location of my character(cause he used to getcomponents from that script)

Sorry for the dutch comments [code] using UnityEngine; using System.Collections;

public class EnemyAI : MonoBehaviour { public enum MonsterState // de states { unaware, alerted, attack

 } ;
 
 //______variabelen________________________
 
 public Transform target;                 // vergeet niet de player een tag te geven
 public int moveSpeed;
 public int rotationSpeed;
 public AudioClip au_monsterAtt;
 public Camera camera;

 public int maxDistance;
 public int medDistance;
 public int minDistance;
 public MonsterState gameState = MonsterState.unaware;            // dit is een variable om de state aan te roepen als parameter ofzo
  
 private Transform myTransform;
 private CharacterController controller; // anders beweegt ie niet, is als component aan de enemy toegevoegd
 
 //triggercounter

 private int triggerPoint;                
 private int unawareTrigger;
 private int alertedTrigger;
 private int attackTrigger;
 private int totalTrigger;    
 
 // audio
 
 public AudioClip au_suspense;
 
 //_____awake______________________________
 
 void Awake ()
 {
     myTransform = transform;            // wordt gecached zodat hij altijd de transform info heeft

 }
 

 
 //_____start______________________________
 
 void Start ()
 {
     //wanneer hetspel begint vindt de enemy de speler eerst
     GameObject go = GameObject.FindGameObjectWithTag ("Player"); // tag de enemy en de player in inspector
     target = go.transform;            // dit is weer een variable die later wordt gebruikt en hier wordt de target opgeslagen van de findtag                            //go is de naam van de gameobject
     camera.enabled = true;
     minDistance = 1;
     medDistance = 3;                // dit is een andere distance omdat ie anders vanaf alerted meteen switched naar attack, nu geven we de speler een kans terug te gaan
     maxDistance = 5;                //zo blijven ze op afstand
     unawareTrigger = 2;
     alertedTrigger = 4;
     attackTrigger = 6;
     totalTrigger = 0; 

     
     controller = GetComponent ();// dit is nodig omdat deze variabele straks wordt gebruikt, en dit roept het aan
 }
 
     // _______onGUi___________________________
 
 void OnGUI ()
 {
             GUI.Label (new Rect(10,50,300,30),"Triggers: " + triggerPoint + "/" + totalTrigger); //dit laat de score zien in tekst
          
             if (GUI.Button (new Rect (Screen.width - 300,Screen.height - 300, 100, 30), "unaware")) 
             {
                     gameState = MonsterState.unaware;
                     Debug.Log ("switch to unaware");
             }
         
     
             if (GUI.Button (new Rect (Screen.width - 300,Screen.height - 330, 100, 30), "alerted")) 
             {
                     gameState = MonsterState.alerted;
                     Debug.Log ("switch to alerted");
             }
             
             if (GUI.Button (new Rect (Screen.width - 300,Screen.height - 360, 100, 30), "attack")) 
             {
                 
                     
                     gameState = MonsterState.attack;
                     Debug.Log ("switch to attack");
             }
     
 }
 
 //_____update_____________________________
 
 void Update ()
 {
     //de states worden continue gechecked of ze van toepassing zijn
     switch (gameState) {
     
     case MonsterState.unaware:            // let op dubbele punt niet punt komma
         Unaware ();                        // hier wordt de functie ingevoerd die actief is in deze state, voer hier alle andere functies en if statements in
         break;
         
     case MonsterState.alerted:            
         Alerted ();                        
         break;
         
     case MonsterState.attack:            
         Attack ();                        
         break;
     }
 
 }    
 
 // de triggerpoint unawareTrigger =3;        alertedTrigger = 6;         attackTrigger = 7;         totalTrigger = 0;  
 public void TriggerCount ()                    
 { 
     
     triggerPoint++;
     if(triggerPoint >= unawareTrigger && triggerPoint <= attackTrigger ) // 4 5 6
     {
         gameState = MonsterState.alerted;
     }
     
     if(triggerPoint >= alertedTrigger )                                    // 7 +
     {
         gameState = MonsterState.attack;
     }
     
     if(triggerPoint <= unawareTrigger)                                    // 0 1 2
     {
         gameState = MonsterState.unaware;
     }
     
     
     

// if (){ trigger.TriggerCount();} dit in de triggercolliders //
// foundEggs++; // if (foundEggs >= totalEggs) // {
// WonGame ();
// } }

 private void Unaware()
     {
     //idle
     // de movement tijdens unaware - monster blijft vanaf maxdistance altijd met zijn rug naar de speler
     
             if (Vector3.Distance (target.position, myTransform.position) > maxDistance) 
             {
             Vector3 moveDirection = target.transform.position - transform.position;
             moveDirection.Normalize ();
             moveDirection.y = 0;                                            // zo gaat ie niet draaien
                             
             transform.LookAt (transform.position - moveDirection); 
             }
             
     // de speler is te dichtbij en nu ziet het monster hem, de speler kan nog terug
             if (Vector3.Distance (target.position, myTransform.position) < medDistance)     
             {
                 gameState = MonsterState.alerted;
             }
             
     }
 
 private void Alerted()
     {
     // kijkt naar de speler - maakt geluid - muziek wordt spannender - licht en donker?    
             audio.PlayOneShot(au_suspense);
     
     // de movement tijdens alerted - het monster kijkt continu de speler aan
             Vector3 moveDirection = target.transform.position - transform.position;
             moveDirection.Normalize ();
             moveDirection.y = 0;                                            // zo gaat ie niet draaien
                             
             transform.LookAt (transform.position + moveDirection);
     // het monster kijkt al naar de speler: als de speler nu nog dichterbij komt dan gaat ie aanvallen
             if (Vector3.Distance (target.position, myTransform.position) < minDistance)     
             {
                 gameState = MonsterState.attack;
             }
             

     }
 
 private void Attack ()
     {
             // dit berekent de move tussen enemy en player  - bepalend op de maxdistance
     // de movement tijdens alerted - het monster gaat naar de speler toe (helaas tot op zijn hoofd) 

// if (Vector3.Distance (target.position, myTransform.position) > minDistance) // {} // else

             if (Vector3.Distance (target.position, myTransform.position) < maxDistance || triggerPoint >= alertedTrigger) 
             {
             Vector3 moveDirection = target.transform.position - transform.position;
             moveDirection.Normalize ();
             moveDirection.y = 0;                                            // zo gaat ie niet draaien
             
             controller.Move (moveDirection * moveSpeed * Time.deltaTime);    // hier vlgt/beweegt ie de controller functie boven aangeven met getcomponent
             transform.LookAt (transform.position + moveDirection);         //hierdoor blijft ie gericht op de Lookat target en draaitt ie langzaam die richting op
             }    
             
             if(Vector3.Distance (target.position, myTransform.position) < 1)
             {
                 camera.enabled = false;
                 Debug.Log("Camera off");
             }
             
     
     }
     
 
 }
 

[/code]

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

13 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Need Help Flipping my character depending on if the mouse is left or right. 1 Answer

Enemy AI C# 0 Answers

Assigning Waypoints to an instantiated enemy 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges