大家好,又见面了,我是你们的朋友全栈君。
Unity3D制作3维立体小游戏
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化的多平台综合游戏开发工具,是一个全面整合的专业的游戏引擎,Unity类似Director,Blender game engine,Virtools或Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。下面通过Unity做这2件事:
– Unity编写一个图形化小球游戏
– Unity制作“宏大”探险场景(next chapter)
GameGo
- Unity编写一个图形化小球游戏
代码语言:javascript复制核心思想:登录Unity后创建一个Project,后创建几个立方体以及一个圆形小球,圆形小球作为一个立方体来作为一个触发性物体,而立方体作为一个事情触发物质。
圆形作为一个触发性物体,故实例化图形以及一个地形,为地形丰富其地貌,如下图所示:
后开始编写 触发器行为 ,扩展功能并实行部署。
物体及特性
项目 | 特征 | 数量 |
---|---|---|
圆形 | Rigidbody | 1 |
立方体 | none | n |
摄像机 | follow | 1 or n |
小球以及其特性
代码语言:javascript复制public class PlayerController : MonoBehaviour{
public float speed;
private Rigidbody rb;
public GameManager gameManger;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate () {
float moveHorizontala = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontala, 0.0f, moveVertical) * speed;
rb.AddForce(movement);
}
void OnTriggerEnter(Collider other){
if (other.gameObject.CompareTag("Cube")){
float newX = Random.value * 46.0f - 23.0f;
float newZ = Random.value * 46.0f - 23.0f;
other.gameObject.transform.position = new Vector3(newX, 1.0f, newZ);
//other.gameObject.transform.position = new Vector3(newX, 1.0f, newZ);
gameManger.AddScore();
}
}
摄像机及其动作
代码语言:javascript复制public class CameraController : MonoBehaviour {
public Transform player;
private Vector3 offset;
// Use this for initialization
void Start () {
offset = transform.position - player.position;
}
// Update is called once per frame
void LateUpdate () {
transform.position = offset player.position;
}
}
...
后形成这样的场景,增加一个平面计分器,如下图所示:
这样就可以开始我们愉快的游戏了!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141529.html原文链接:https://javaforall.cn