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控制转向


然后我们来做武器
创建一个gameobject
然后把之前做好的锤子拉进去
给锤子加一个球形碰撞组件 大致覆盖就行了
再创建几个cube 摆成这样!

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

然后把这个东西放到我们主角的手上
然后把cube4放到主角父物体下

运行游戏,主角就可以拉着锤子走了!

然后我们来做一些攻击的敌人
把小白拉进去之后
添加一个盒子碰撞器组件
然后把它拉回到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<xiaobai> ().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=然后把脚本场景控制的身上 再把玩家和预制体放进去
(注意预制体要更新,不然报错)
再启动试试吧

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值