1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 官方太空射击游戏总结

官方太空射击游戏总结

时间:2024-01-12 17:44:05

相关推荐

官方太空射击游戏总结

很大一部分问题是碰撞体,刚体,还有碰撞器里面Is Trigger的勾选问题。这些问题在上一篇里面解释的很清楚了。实现石头自动旋转功能:GetComponent<Rigidbody>().angularVelocity = Random.insideUnitSphere * tumble;实现石头一波一波下降并终止游戏的功能:

思路:首先实现一个石头的正常下降,之后实现多个石头的正常下降(for),再实现多个石头持续下降(while)。然后是比较难的,控制石头多久下降,以及多久开始游戏。

代码://这个代表协同程序,在Start()函数中要使用StartCoroutine(StoneDrow());

IEnumerator StoneDrow()

{

yield return new WaitForSeconds(startWait);

while (true)

{

for (int i = 0; i < 5; i++)

{

Vector3 place = new Vector3(Random.Range(-stonePosition.x, stonePosition.x), stonePosition.y, stonePosition.z);

Quaternion angle = Quaternion.identity;

Instantiate(manyStone, place, angle);

yield return new WaitForSeconds(spawnWait);

}

yield return new WaitForSeconds(waveWait);

if (gameover)

{

RestartText.text = "Please input 'R' to restart";

restart = true;

break;

}

}

}

实现石头不能越出边界的功能:添加Plane 去掉Mesh Render控制飞机的移动范围:使用Mathf.Clamp(value,xMin,xMax)实现分数的统计功能:首先要有一个共有函数实现增加分数的功能,然后在石头摧毁的时候调用这个函数,实现用键盘和鼠标两种方法控制飞机的移动: 代码1.float x = Input.GetAxis("Horizontal")*Time.deltaTime*speed; float z = Input.GetAXIS("Vertical")*Time.delatTime*speed;transform.Translate(x,0,z); 2.

IEnumerator OnMouseDown()

{

Vector3 scenceSpace = Camera.main.WorldToScreenPoint(transform.position);

Vector3 offer = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, scenceSpace.z));

while (Input.GetMouseButton(0))

{

Vector3 curs001 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, scenceSpace.z);

Vector3 curpos = Camera.main.ScreenToWorldPoint(curs001) + offer;

transform.position = curpos;

yield return new WaitForFixedUpdate();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。