您的位置:首页 > 移动开发 > Unity3D

Unity3D学习笔记4-五子棋实战项目知识点总结

2017-10-27 20:37 465 查看
Button的点击事件处理:

StartButton.onClick.AddListener(() => { …… });

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class Title : MonoBehaviour {

public Button StartButton;
public Button ExitButton;

// board窗口
public GameObject board;

// Use this for initialization
void Start () {
StartButton.onClick.AddListener(() =>
{
gameObject.SetActive(false);
board.SetActive(true);
});

ExitButton.onClick.AddListener(() =>
{
Application.Quit();
});
}
}


GameObject的show/hide:

this.gameObject.SetActive(false);
ResultWindow.gameObject.SetActive(true);


获取组件对象 GetComponent:

var mainLoop = GetComponent<MainLoop>();


GameObject.Instantiate与Destroy

public void Reset( )
{
// 删除棋盘上的所有对象
foreach( Transform child in gameObject.transform )
{
GameObject.Destroy(child.gameObject);
}

var mainLoop = GetComponent<MainLoop>();

_crossMap.Clear();

for (int x = 0; x < Board.CrossCount; x++)
{
for (int y = 0; y < Board.CrossCount; y++)
{
var crossObj = GameObject.Instantiate<GameObject>(CrossPrefab);

// 归属于本层对象下
crossObj.transform.SetParent(gameObject.transform);

// 复位缩放
crossObj.transform.localScale = Vector3.one;

// 设置位置
var pos = crossObj.transform.localPosition;
pos.x = -Board.HalfSize + x * CrossSize;
pos.y = -Board.HalfSize + y * CrossSize;
pos.z = 1;
crossObj.transform.localPosition = pos;

// 记录格子信息
var cross = crossObj.GetComponent<Cross>();
cross.GridX = x;
cross.GridY = y;
cross.mainLoop = mainLoop;

_crossMap.Add(MakeKey(x, y ), cross);

}
}
}


总结来自于学习视频:http://www.imooc.com/learn/636
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: