Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • 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 d3us3xmachina · Jun 29, 2013 at 08:37 PM · triggerobjectchildcomponenttarget

Targeting child object components based on a trigger.

Hello! In my scene, I have a player character, X number of enemies, and a camera.
The enemy object has a sphere collider set to trigger, and script attached to it called EnemyAttack.js, upon the player entering the sphere, EnemyAttack.js sets a variable "battle" to true which initiates various things elsewhere in the game, What I also want it to do, is to change the target of the camera to the transform of a child of the enemy object that the player triggered. However, the camera seems to pick one of the enemy objects, and always target that one regardless of which enemy was triggered.
This is my camera code, with the generic smooth follow bits removed:

 var target : Transform;
 public var wildmonster : GameObject;
 public var enemyattack : Component;
 public static var battletransform : Transform;
 static var battle : boolean;
   
 // Place the script in the Camera-Control group in the component menu
 @script AddComponentMenu("Camera-Control/Smooth Follow")
  
 function Awake(){
     Player = GameObject.FindGameObjectWithTag("Player");
     wildmonster = GameObject.Find("Wild Monster");
     enemyattack = wildmonster.GetComponent("EnemyAttack");
     }
   
 function Update () {
  
     if (!target){
        return;
        }
  
     battletransform = enemyattack.battletransform;
     battle = enemyattack.battle;
  
     if (battle == false){
        counter = 0.0;
 
     transform.position = target.position;
     transform.LookAt (target);
 }   
  
  
  
     if (battle == true){
  
      
     transform.LookAt (battletransform);
     transform.position = battletransform.position;
        }   
  
     
 }



This is my code that initiates the battle mode and attempts to set the camera's target as the enemy that triggered the event

 #pragma strict
  
 private var Player : GameObject;
 public var wildmonster : GameObject;
 public var enemyattack : EnemyAttack;
 var spherecollider : SphereCollider;
 static var battletransform : Transform;
 static var battle : boolean;
  
 function Awake(){
     Player = GameObject.FindGameObjectWithTag("Player");
     wildmonster = GameObject.FindGameObjectWithTag("Enemy");
     var sphereCollider : SphereCollider = wildmonster.GetComponent(SphereCollider);
 }
  
  
 function OnTriggerStay (other : Collider) {
  
        if (other.gameObject == Player){
          battle = true;   
     }
     }
  
 function OnTriggerExit (other : Collider) {
  
        if (other.gameObject == Player){
          battle = false;
      }
      }
  
 function Update(){
  
     var sphereCollider : SphereCollider = wildmonster.GetComponent(SphereCollider);
  
     if (battle == true){
        battletransform = transform.Find("Battle Object").transform; 
        }
  
     if (battle == false){
        battletransform = null;
        }
  
     }

for some reason it will only pick one of the instances of the enemy object, and not any of the others, regardless of which one is triggered. Sorry it's so long, Thank you!

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.

Follow this Question

Answers Answers and Comments

15 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 avatar image avatar image

Related Questions

Do Child Objects Trigger Parent Objects? 1 Answer

Why dont collision detection works on child object? 1 Answer

Creating objects when entering a trigger? 1 Answer

call/trigger animation of other object 2 Answers

multiple targets and one trigger, is it possible? 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