unity,跟着大佬做第一个游戏(二,模型导入和游戏基本代码编写)

打开u3d创建一个空项目
然后创建一个地板terrain
把地板的X和Z的position都设置成-250
在assets文件夹下创建一个新文件夹,随便命名
再在asset文件夹下创建一个C#脚本
然后把之前建好的模型放到这个文件夹里面
创建一个新gameobject
把主角托到里面

调整相机

脚本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class xiaoxin : MonoBehaviour {
	public float speed=40;
	public float rotSpeed=100;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		transform.position += transform.forward *speed* Time.deltaTime;
		if (Input.GetKey (KeyCode.A)) {
			transform.Rotate (Vector3.up * Time.deltaTime * rotSpeed);
		}
			if (Input.GetKey (KeyCode.D)) {
				transform.Rotate (Vector3.up * Time.deltaTime * (-rotSpeed));
			
		}
	}

}

注意你的脚本的名字要和类的名字一样 我这里叫xiaoxin

然后把这个脚本挂到gameobject上(最好换个名字)
启动游戏运行看看,AD控制转向

unity,跟着大佬做第一个游戏(二,模型导入和游戏基本代码编写)_第1张图片

然后我们来做武器
创建一个gameobject
然后把之前做好的锤子拉进去
给锤子加一个球形碰撞组件 大致覆盖就行了
再创建几个cube 摆成这样!
unity,跟着大佬做第一个游戏(二,模型导入和游戏基本代码编写)_第2张图片

然后选中武器还有5个cube 点击在comonent里面的physics里面confijurable joint
添加之后把所有的XYZmotion设置为located
然后选择武器
把cube挂在他的connected body下
同样的 把cube1挂在cube的connected body下
一直这样挂完 除了cube4不挂东西
然后运行看看,试着在界面里面移动cube4 下面的也会跟着它一起动起来

然后把这个东西放到我们主角的手上
然后把cube4放到主角父物体下
unity,跟着大佬做第一个游戏(二,模型导入和游戏基本代码编写)_第3张图片

运行游戏,主角就可以拉着锤子走了!
unity,跟着大佬做第一个游戏(二,模型导入和游戏基本代码编写)_第4张图片

然后我们来做一些攻击的敌人
把小白拉进去之后
添加一个盒子碰撞器组件
然后把它拉回到assets文件夹里面做成预设资源
再建立一个敌人的脚本
写下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class xiaobai : MonoBehaviour {
	public Transform player;
	public float rotSpeed;
	public Vector3 vc;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		Vector3 targetDir = player.position - transform.position;

		float step = rotSpeed * Time.deltaTime;
		Vector3 newDir = Vector3.RotateTowards (transform.forward, targetDir, step, 0.0f);
		transform.rotation = Quaternion.LookRotation (newDir);
		transform.Translate (Vector3.forward * Time.deltaTime * 50);
		
	}
}

把这个脚本放到敌人身上
然后在右边把主角托进去 再设置旋转速度为3
=w=然后点开始看看

接下来要让武器打到敌人身上之后敌人消失
在敌人的脚本上声明一个
public void Hurt(){
		Destroy (gameObject);
	}

再创建一个脚本给武器
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class wuqi : MonoBehaviour {
	
	void OnTriggerEnter(Collider coll){
		if(coll.tag=="xiaobai")
			coll.GetComponent ().Hurt ();
	}
}
放到武器上

然后给敌人加一个tag =-=如果跟我的tag不同的话会有很多地方要改动
tag在监视面板的右上角修改
接着运行吧,现在就能用武器杀敌人了


然后是场景控制器
创建一个新的gameobject 命名scenemanager
创建一个脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class contorl : MonoBehaviour {
	static public contorl con;
	public Transform player;
	public GameObject xiaobai;
	public float rateTime=2;
	float myTime;
	// Use this for initialization
	void Awake () {
		con = this;
	}
	
	// Update is called once per frame
	void Update () {
		myTime += Time.deltaTime;
		if (myTime > rateTime) {
			Vector2 r = Random.insideUnitCircle.normalized*40;
			Vector2 f = Random.insideUnitCircle;

			Instantiate (xiaobai,player.position+new Vector3(r.x,0,r.y),Quaternion.Euler(new Vector3(0,Random.Range(0.0f,360),0)));
			myTime -= rateTime;
		}
	}
}

然后在敌人的脚本里面添加
void Start () {
		player = contorl.con.player;
	}

=w=然后把脚本场景控制的身上 再把玩家和预制体放进去
(注意预制体要更新,不然报错)
再启动试试吧

游戏基本的代码就到这里了,然后就是游戏美化了

你可能感兴趣的:(u3d学习)