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 Upen787 · Jun 12, 2020 at 11:55 AM · scripting problemcollider2dscoreboard

Access the data of OnTriggerEnter2D function of a script from the other Script, how do I it?

 .......................Script whose OnTrigeer I want to access.....
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
 
 public class ScoreScript : MonoBehaviour
 {
     private Text CoinTextScore;
     private AudioSource AudioManager;
     private int Score = 0;
 
      void Awake()
     {
         AudioManager = GetComponent<AudioSource>();
 
     }
 
     void Start()
     {
         CoinTextScore = GameObject.Find("CoinText").GetComponent<Text>();                      //Picking up UI element
     }
 
     
     void Update()
     {
         
     }
 
     void OnTriggerEnter2D(Collider2D target)
     {
         if(target.tag == "Coin")
         {
             target.gameObject.SetActive(false);
             Score++;
             CoinTextScore.text = "x" + Score;       //We can either convert Score to String or by String Concatenation add a string and join the int to it
              AudioManager.Play();   
         }       
     }
 }
 
 .................. Script where I want to use.............
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
 
 public class BonusScript : MonoBehaviour
 {
     public Transform BottomCollision;
     private Animator anim;
     public LayerMask PlayerLayer;
 
     private Vector3 MoveDirection = Vector3.up;
     private Vector3 OriginPosition;
     private Vector3 AnimPosition;
     private bool StartAnim;
     private bool canAnimate;
 
     private Text BonusScore;
     private int Bonus =10 ;
 
     private void Awake()
     {
         anim = GetComponent<Animator>();
         canAnimate = true;
         BonusScore = GameObject.Find("BonusText").GetComponent<Text>();
     }
 
     void Start()
     {
         OriginPosition = transform.position;                      //Original Position of the Block
         AnimPosition = transform.position;
         AnimPosition.y += 0.15f;                                  //Block moves up
     }
 
    
     void Update()
     {
         CheckForCollision();
         AnimateUpDown();
     }
 
     void CheckForCollision()
     {     
         if (canAnimate)
         {   
             RaycastHit2D Hit = Physics2D.Raycast(BottomCollision.position, Vector2.down, 0.1f, PlayerLayer);
             if (Hit)
             {
                 if (Hit.collider.gameObject.tag == "Player")
                 {
            ***I want to use the CoinScore in OnTrigger here, from above Script****       
                     Bonus++;
                     BonusScore.text = "x" + Bonus;
                     anim.Play("IdleBlock");
                     StartAnim = true;
                     canAnimate = false;
                 }
             }
         }
     }
 
     void AnimateUpDown()
     {
         if (StartAnim)
         {
             transform.Translate(MoveDirection * Time.smoothDeltaTime);                //Moves Block Up when Anim Starts
 
             if(transform.position.y >= AnimPosition.y)                               //We're going up to AnimPosition
             {
                 MoveDirection = Vector3.down;                                       //Going Down
             }
             else if(transform.position.y <= OriginPosition.y)                   //When we reach Original POsition
             {
                 StartAnim = false;
             }         
         }
     }
    
 
 
 
 }
 

,

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

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by BreyTheKid · Jun 12, 2020 at 11:59 AM

You could make a boolean variable that is true when OnTriggerEnter is true and false when it is false. You can then reference the first script in the second script and access that variable. Hope this helps!

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

Answer by Unity-Devloper · Jun 12, 2020 at 12:59 PM

  1. List item

Make First Instance of "ScoreScript" class

public static ScoreScript Instance ;


initiate ScoreScript Instance into Awake() Function

void Awake() { Instance=this; }


Store Your Collision Tag Into Variable

var tag = int.Parse(collision.gameObject.tag);


if you use Second Script Function Then Use Like This Also BonusScript Instance Needed like 1. List item

BonusScript .Instance.BonusPower(tag);


Hope this helps Better!

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.

Follow this Question

Answers Answers and Comments

233 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 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

how to make AI change from patrol to chase within a certain range 1 Answer

How to add different score when player hit different enemy,how to add different scores while player hitting different type of enemies 1 Answer

Script Not Working On Prefab 2 Answers

Where should I call Physics2D.Raycast ? 0 Answers

How to alter c# script from a script in a different scene (i.e. display score in different scene) 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