Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
4 captures
13 Jun 22 - 14 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 /
This post has been wikified, any user with enough reputation can edit it.
avatar image
0
Question by Baigomax · Mar 27 at 02:31 PM · instantiatesceneenemyprefabstransform.position

How to get the position of a new Instantiated prefab

Hi to everybody!!

I have two same enemies already instantiated in the scene from a unique prefab "Dogor (clone)" and I'm instantiating also one bullet to make both to shoot the same bullet, I'm managing the RUN and SHOOT with the animator, and both clones are moving independently fine, the problem is tht the bullet prefab is alway getting the possition of the first enemy clone created, so, in the photo below you can see that the bullet is coming out from the second clone, not the first one that is in the range of shooting. alt text I'm going to attach also the code that I'm using inside of the animator to instantiate the bullet object.

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class Fire_Dogor_1 : StateMachineBehaviour { //public GameObject Dogor; Transform enemy_2; Dogor_Script DS; public float Shootperiod = 0.50f; public GameObject BalaPrefab; public float LastShoot; public float distance;

  // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
  override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
  {
  
  
      enemy_2 = GameObject.FindGameObjectWithTag("Dogor").transform;
  }
  
  // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
  override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
  {
      if (Time.time > LastShoot + Shootperiod)
      {
          Vector3 direction;
          if (enemy_2.transform.localScale.x == 1.0f) direction = Vector3.right;
          else direction = Vector3.left;
          GameObject Bala = Instantiate(BalaPrefab, enemy_2.transform.position + direction * 0.1f, Quaternion.identity);
          Bala.GetComponent<Bala_Script>().SetDirection(direction);
          LastShoot = Time.time;
  
          animator.SetBool("Fire", false);
      }
  }
  
  // OnStateExit is called when a transition ends and the state machine finishes evaluating this state
  override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
  {
      animator.SetBool("Fire", false);
  }
  

Please give me a hand, I'm blocked with this like a week or more, this problem doesn't allow me to instantiate the enemies in my game!!,

Thank you very much in advance!!

scene.png (294.5 kB)
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

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by LucasMartin · Mar 27 at 03:47 PM

This is because you are using GameObject.FindGameObjectWithTag. In this case, this method will return the first instance created. One of the things that you could do is having a separate script for controlling the bullets and attach it to each individual enemy. This way, you can get a reference for each enemy and instanciate the bullet at the enemy's position. Something like that:

 public class BulletController : MonoBehaviour
 {
     public GameObject bulletPrefab;
     public Transform positionToInstanciateTheBullet;

     public void InstanciateBullet()
     {
         GameObject bulletInstance = Instantiate(bulletPrefab, positionToInstanciateTheBullet);
     }
 }

From here, you have two options: if you are using the new input system, you can just call InstanciateBullet() from an input callback context. Otherwise, you can just add the Update() method in the BulletController and call it from there:

 private void Update()
 {
     //add any other conditions that you want and change the input button
     if (Input.GetButtonDown("Fire1"))
         InstanciateBullet();
 }

This is much easier than using animations to call this function. Give it a try :)

Comment
Add comment · Show 2 · Share
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
avatar image Baigomax · Mar 27 at 10:10 PM 0
Share

@LucasMartin Finally!, thank you very much!!, it was easy to implement also, now I have not more excuses!!

avatar image LucasMartin Baigomax · Mar 28 at 03:05 PM 0
Share

Glad I could help :D

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

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

Related Questions

changing scene vs. instantiated prefabs 1 Answer

Instanitiate PreFabs and let them move to different locations 1 Answer

How to tell which enemys to create in new battle scene 1 Answer

Instantiate is spawning too many clones 2 Answers

Instatiate to the next scene prefabs from an array 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