//定义一个Ray的类用来保存射线到终点位置的信息
private Ray ray;
//定义一个Hit的类 用来保存Ray射线碰到的物体的信息
private RaycastHit hit;
//射线的位置是从主摄像机发射一个射线到终点的位置(终点的位置是鼠标点击位置)
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//如果射线Ray到物体Hit的位置小于等于0.1F那么返回tute
if (Physics.Raycast(ray,out hit,0.1f)) //还有个Int的返回值 layerMask没懂起
{
//执行销毁物体Hit
GGameObject.Destroy(hit.collider.gameObject);
}
2018.1.15
---------------------------------------------------------------------------------------------------------------------------------
在上面的基础上把发射的Ray(射线)实例化出来变成一个球?子弹
还是先生成一些正确的cude来当砖块
//用来保存实例化的物体cude
public Gameobjeck cude;
//用XYZ来设置cude生成长高宽
privat int x=10;
privat int y=5;;
privat int z=1;
void Zkuai()
{
//用for循环来生成cude的位置
for (int i = 0; i < x; i++)
{
for (int j = 0; j < y; j++)
{
for (int k = 0; k < z; k++)
{
//用go来保存生成cude的信息 为什么i-5是因为X=i ,X减去二分之1的X 这个是让物体居中
Gameobjeck go = Gameobjeck.Instantiate(Brick, new Vector3(i - 5, j, k), Quaternion.identity);
//用GetComponent<>()方法来访问go上面的MeshRenderer这个管理色彩贴图的父类中的子类material中color色彩并重新定义一个color颜色是随机
go.GetComponent<MeshRenderer>().material.color= new Color(Random.Range(0f,1f), Random.Range(0f, 1f), Random.Range(0f, 1f));
}
}
---------------------------------------------------------------------------------------------------------------------------------
砖块cude生成完成了在来把RAY实例化
//定义一个TransForm 来保存摄像机的位置
private TramsForm m_TramsForm;
//定义一个Gameobjeck 的类来保存要实例化的物体球
public Gameobjeck zidan;
//定义一个Ray的类用来保存射线到终点位置的信息
‘private Ray ray;
//定义一个Hit的类 用来保存Ray射线碰到的物体的信息
private RaycastHit hit;
//在 Start中声明m_TramsFrom
void Start ()
{
m_Transform = gameObject.GetComponent<Transform>();
}
//在封装个发射球和实例化
/// <summary>
/// 子弹的生成和发射
/// </summary>
void ZiDan()
{
//先来做出射线Ray从主摄像机发出到物体的终点位置用刚刚定义的ray来保存
ray= Camera.mian.ScreenPointToRay(Input.mousePosition);
//用if来判断ray是否碰到物体用hit来保存物体信息,如果返回为turn那么接着执行下面
if (Physics.Raycast(ray,out hit))
{ //用go来保存实例化出来的zidan他的位置和不旋转
GameObject go = GameObject.Instantiate(zidan, m_Transform.position, Quaternion.identity);
//定义一个Vector3 类的mub 来保存起点到终点的距离
Vector3 mub = hit.transform.position - m_Transform.position;
//用Debug.DrawRay方法绘制一条线开始位置是摄像机结束是mub颜色用color.来定义
Debug.DrawRay(m_Transform.position,mub,Color.red);
// 把用GetComponent<>()方法查询到go身上的Rigidbody组件子在用AddForce(mub*100);方法给他一个力度;
go.GetComponent<Rigidbody>().AddForce(mub*100);
}
}
void Update () {
//鼠标点击就发射出去
if (Input.GetMouseButtonDown(0))
{
ZiDan();
}
2018.1.17.17.33
--------------------------------------------------------------------------------------------------------------------------------