• 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 JeyDia · Feb 14, 2013 at 06:09 PM · inputprefabsmerge

How can I combining two players to make one ?

Hello I'm a total newbie on Unity I hope anyone can help me

I want to create a Shoot Them Up where two player (two spaceship) can do a merge together to make one ship on one distinct input, after that the first player move and the other shoot

How can I do that ?

Thanks 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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by dubbreak · Feb 14, 2013 at 08:28 PM

There are lots of ways to go about what you're asking. What I'd do (in point form) is:

  • in the ship collider check if I'm colliding with another ship

  • if it's another ship, child the shooter one to the steering one (up to you how you differentiate them). The transform of the child will be relative to the parent.

  • for the shooter shit set a bool to indicate it no longer can steer, in the onupdate portion that checks direction input

    bool canSteer = true; //in initial object

    canSteer = false; //once attached

       //in input on update code
         if(input.GetKey(player2left)&& canSteer)
         {
            //only do steering if enabled
         }
    
    
  • for the driver/parent do something similar to disable shooting.

I'd probably do a single script for both types of ship (so I can reuse it on both) and just set the ship type via an enum.

Something like the following (note: this is an example to get you started, don't expect it to work.. I mean it compiles, but that's to make sure the syntax is ok):

 using UnityEngine;
 using System.Collections;
 
 public class CombiningShip : MonoBehaviour {
     public enum ShipType { shooter, steerer};
     public ShipType shipType;
     
     public enum ControlInputs { player1, player2};
     public ControlInputs inputToUse;
     
     public bool CanSteer;
     public bool CanFire;
     
     string player1firekey = "b";//just for example so code compiles, not the way to do this
     string player1moveleft = "a";//again for example
     
     
     void Start () 
     {
         CanFire = true;
         CanFire = true;
     
     }
     
     
     void Update () 
     {
         switch (inputToUse)  //for example, plenty of ways to do this
         {
         case ControlInputs.player1: 
         {
             if( Input.GetKey(player1firekey) && CanFire )
             {
                 //do fire    
             }
             if(Input.GetKey (player1moveleft) && CanSteer)
             {
                 //move left    
             }
             
             
         }
             break;
         case ControlInputs.player2:
             //do stuff for 2nd play controls
             break;
         
         }
     
         
     }
     
     
     void OnTriggerEnter(Collider other)
     {        
         var possibleShip = other.GetComponent<CombiningShip>();
         if(possibleShip != null)
         {
             if(possibleShip.shipType==ShipType.shooter)//other ship is shooter
             {
                 possibleShip.CanSteer = false; //stop if from being able to shoot
                 possibleShip.transform.parent = this.transform; //child ship to this one
                 this.CanFire = false; //stop this one from firing
             }
         }
     }
 }
 
Comment
Add comment · 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

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

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

10 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

Related Questions

reading user's keyboard input inside a GUI Input field and saving it into variables for later use? 2 Answers

A node in a childnode? 1 Answer

Keyboard Input Problem 1 Answer

Different types of projectiles cause different amounts of damage... 1 Answer

Rename Script File - Is there an easier way? 2 Answers


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