0
我正在開發一個簡單的2D遊戲。在遊戲中,我創建了一個charcaters預製。我正在改變預製運行時的精靈。這一切都執行得很好。現在我想在特定的預製克隆上應用點擊事件並希望增加預製的比例。我附加了一個c#腳本,我到目前爲止所做的一切。參考特定的預製克隆
public class ShoppingManager : MonoBehaviour {
public static ShoppingManager instance;
[System.Serializable]
public class Shopping
{
public string CharacterName;
public Sprite CharacterSprite;
}
public GameObject CharacterPrefab;
public Transform CharacterSpacer;
public List<Shopping> ShoppingList;
private CharacterScript NewCharacterScript;
/*********************************************Awake()******************************************/
void Awake()
{
MakeSingleton();
}
/******************************Create object of the script**********************************/
void MakeSingleton()
{
instance = this;
DontDestroyOnLoad (gameObject);
}
// Use this for initialization
void Start() {
LoadCharacters();
}
void LoadCharacters()
{
foreach (var characters in ShoppingList) {
GameObject NewCharacter = Instantiate (CharacterPrefab) as GameObject;
NewCharacterScript = NewCharacter.GetComponent<CharacterScript>();
NewCharacterScript.CharacterName = characters.CharacterName;
NewCharacterScript.Charcater.GetComponent<Image>().sprite = characters.CharacterSprite;
NewCharacterScript.GetComponent<Button>().onClick.AddListener (() => CharacterClicked (NewCharacterScript.CharacterName, NewCharacterScript.Charcater));
NewCharacter.transform.SetParent (CharacterSpacer, false);
}
}
void CharacterClicked(string CharacterName, GameObject Char)
{
StartCoroutine (IncreaseScale (Char));
}
IEnumerator IncreaseScale(GameObject TempCharacter)
{
int i = 5;
while (i > 0) {
yield return new WaitForSeconds (0.1f);
Vector3 TempVector = TempCharacter.GetComponent<RectTransform>().localScale;
TempVector.x = TempVector.x + 0.2f;
TempVector.y = TempVector.y + 0.2f;
TempCharacter.GetComponent<RectTransform>().localScale = TempVector;
i--;
}
}
}
此代碼觸發點擊事件並且還增加了規模,但最後的克隆,而不是點擊預製克隆。我想念的是什麼,我無法理解。我應該糾正什麼。是的!我還附加了我在預製中添加的腳本的代碼。
public class CharacterScript : MonoBehaviour {
public string CharacterName;
public GameObject Charcater;
}
,你打電話'CharacterClicked'? –
請參閱我正在從腳本本身實現偵聽器。它從LoadCharacter()的foreach循環中調用。 –