2016-07-24 3 views
0

전체 스크립트입니다. 문제는 내가 출시 할 때 동전 하나 대신 스폰 동전 2 개가 있다는 것입니다. 이 도움을 주셔서 감사합니다2 개의 출력을 얻는 이유는 무엇입니까?

using UnityEngine; 
using System.Collections; 

public class coinControler : MonoBehaviour { 
int flag; 
int x = 0; 
float xScale = 0.3f; 
float zScale = 0.3f; 
float xInterval = 0.01f; 
float zInterval = 0.01f; 
public GameObject coinobj; 
public GameObject coin0; 

Vector3 scale; 

// Use this for initialization 
void Start(){ 
    //for 1st coin 
    scale = coinobj.transform.localScale; 
    scale.z = zScale; 
    scale.x = xScale; 
    coinobj.transform.localScale = scale; 
    //for 2nd coin 
    scale = coin1.transform.localScale; 
    scale.z = zScale; 
    scale.x = xScale; 
} 

// Update is called once per frame 
void Update() { 
    touchInput(); 
} 


void touchInput() { 
//interval of the coin growth 
    if(x%20 == 0 && x >= 20) 
    { 
     xInterval += 0.01f; 
     zInterval += 0.01f; 
    } 

    if (Input.touchCount > 0) 
    { 
     Touch touch = Input.GetTouch(0); 
     if (touch.phase == TouchPhase.Stationary || touch.phase == TouchPhase.Began) 
     { 
      //Change Scale 
      if (flag == 0) 
      { 
       scale.x += xInterval; 
       scale.z += zInterval; 
       coinobj.transform.localScale = scale; 
       Debug.Log("......" + x + "........"); 
       x++; 
      } 
     } 
    //the coin will drop after the user releases touch 
     else 
    { 

      //drop the coin 
      coinobj.AddComponent<Rigidbody>(); 
      if (flag == 0) 
      { 
       coinSpawn0(); 
       Debug.Log("Drop Coin"); 
      } 
     } 
    } 
} 
//Spawn function of the second coin 
public void coinSpawn0() 
{ 
    Vector3 coinPos = new Vector3(transform.position.x, transform.position.y, transform.position.z); 
    Instantiate(coin0, coinPos, Quaternion.identity); 
    scale = coin0.transform.localScale; 
    scale.z = zScale; 
    scale.x = xScale; 
    coin0.transform.localScale = scale; 
    xInterval = 0.01f; 
    zInterval = 0.01f; 
    flag = 1; 
} 
} 

출력 :

...... ........ 42 UnityEngine.Debug : 로그인 (Object)를

... ... (42) ........ UnityEngine.Debug : 로그 (개체)

...... 43 ........ UnityEngine.Debug : 로그 (개체)

...... 43 ........ UnityEngine.Debug : 로그인 (Object)를

보기 신고 : 1 UnityEngine.Debug : 로그인 (Object)를

표시 플래그 : 1 UnityEngine.Debug : 로그인 (Object)를

enter image description here

+0

무엇이 문제입니까? 볼 수 있듯이 –

+0

입니다. 메신저 2 출력. 그것은 42 43이고 플래그 1 만 있어야합니다. 임 미안 해요이 새로운 –

+0

전체 스크립트를 넣어. –

답변

0

당신이 TouchPhase을 작성하는 경우 당신이 더 많은 것을 알고 있어야합니다. (에서 X = 42)

  • 고정, 당신이 이동하지 않는 한 (

    1. 시작 :

      나는 터치의 시작 부분에, 그 터치가 같은 위치에 두 단계를 통해 갈 것이다, 가정 여전히 x = 42)

    달성하려는 목표는 분명하지 않습니다.

  • +0

    안녕하세요. 나는 무엇을하려 하는가. 당신이 만지면 동전이 커집니다. 그리고 그 후에 당신이 놓으면 동전이 떨어지고 두 번째 동전이 산란합니다. 문제는 그것입니다. 2 개의 출력이 있습니다. 동시에 두 개의 동전이 산란됩니다. 죄송 합니다만, 화합과 C#을 처음 사용합니다. 왜 내가 2 개의 출력을 갖는지 나에게 설명해 주시겠습니까? 감사합니다 . –

    관련 문제