# 本科课程【虚拟现实引擎Unity3D】实验2 - 复杂地形穿越

29 篇文章 11 订阅

Good better best, never let it rest, until good is better, and better best.

# 一、 实验目的

1. 掌握地形的创建，实现游戏人物在复杂地形的穿越

# 二、 实验内容

## 2. 程序设计

1） 数据输入

2） 数据存储（输入数据在内存中的存储）
player存储游戏对象，forest1,forest2,forest3分别存储3个森林地形的对象，并用forests[]数组存储起来，达到三个地形重复交替出现，forest存储森林出现的次数。

3） 数据处理

//控制森林出现和消失的条件
if (player.position.z > transform.position.z+100)
{
Camera.main.SendMessage("GenerateForest");
GameObject.Destroy(this.gameObject);
}
//控制森林的重复出现
public void GenerateForest()
{
forestCount++;
int type=Random.Range(0,3);
GameObject newForest=GameObject.Instantiate(forests[type],new Vector3(0,0,forestCount*3000),Quaternion.identity) as GameObject;
forest1 = forest2;
forest2 = newForest.GetComponent<Forest>();
}



4） 数据输出

# 三、 实验环境

1. 操作系统：WINDOWS 7及以上
2. 开发工具：Unity
3. 实验设备：PC

# 源代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnvGenerater : MonoBehaviour {
public Forest forest1;
public Forest forest2;
public int forestCount = 2;
public GameObject[] forests;
public void GenerateForest()
{
forestCount++;
int type=Random.Range(0,3);
GameObject newForest=GameObject.Instantiate(forests[type],new Vector3(0,0,forestCount*3000),Quaternion.identity) as GameObject;
forest1 = forest2;
forest2 = newForest.GetComponent<Forest>();
}
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Tags : MonoBehaviour {
public const string player = "Player";
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Forest : MonoBehaviour {
private Transform player;
void Awake() {
player = GameObject.FindGameObjectWithTag(Tags.player).transform;
}
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
if (player.position.z > transform.position.z+100)
{
Camera.main.SendMessage("GenerateForest");
GameObject.Destroy(this.gameObject);
}
}
}



04-24 3万+
12-29
09-23 1711
09-15 414
08-21 5733
11-15 432
05-15 1363
10-17 3426
09-28 8698
07-26 1万+
04-09 1万+
08-12 6224
12-31 746

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

©️2022 CSDN 皮肤主题：鲸 设计师：meimeiellie

1 + 1=王

¥2 ¥4 ¥6 ¥10 ¥20

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。