关闭

Unity学习笔记 之 发射小球碰撞物体的代码记录

1865人阅读 评论(0) 收藏 举报
分类:

绑定在摄像机上的脚本

using UnityEngine;
using System.Collections;

public class abc : MonoBehaviour {

	//设置移动速度
	public int speed = 5;

	//设置将被初始化加载的对象
	public Transform newobject = null;

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
		//通过左右方向键,或A、D字母键控制水平方向,实现往左、往右移动
		float x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;
		//通过上下方向键,或W、S字母键控制垂直方向,实现往前、往后移动
		float z = Input.GetAxis("Vertical") * Time.deltaTime * speed;
		//移动 绑定物的 x、z 轴,即移动 摄像机的 x、z 轴。 
		transform.Translate(x,0,z);



		//判断是否按下鼠标的左键
		if (Input.GetButtonDown("Fire1")) {
			//实例化命令:Instantiate(要生成的物体, 生成的位置, 生成物体的旋转角度)
			Transform n  = (Transform)Instantiate(newobject, transform.position, transform.rotation);

			//转换方向
			Vector3 fwd = transform.TransformDirection(Vector3.forward);

			//给物体添加力度
			//Unity5之前的写法:n.rigidbody.AddForce(fwd * 2800);
			n.GetComponent<Rigidbody>().AddForce(fwd * 2800);
		}


		//判断是否按下字母按钮 Q
		if (Input.GetKey(KeyCode.Q)) {
			//改变 绑定物的 y 轴,即改变 摄像机的 y 轴。 
			transform.Rotate(0,-25*Time.deltaTime,0,Space.Self);
		}

		//判断是否按下字母按钮 E
		if (Input.GetKey(KeyCode.E)) {
			transform.Rotate(0,25*Time.deltaTime,0,Space.Self);
		}



		//判断是否按下字母按钮 Z
		if (Input.GetKey(KeyCode.Z)) {
			//旋转 绑定物的 y 轴,即旋转 摄像机的 y 轴。 
			transform.Rotate(-25*Time.deltaTime,0,0,Space.Self);
		}

		//判断是否按下字母按钮 X
		if (Input.GetKey(KeyCode.X)) {
			//旋转 绑定物的 y 轴,即旋转 摄像机的 y 轴。  
			transform.Rotate(25*Time.deltaTime,0,0,Space.Self);
		}


		//判断是否按下字母按钮 F
		if (Input.GetKey(KeyCode.F)) {
			//移动 绑定物的 y 轴,即移动 摄像机的 y 轴。 
			transform.Translate(0,-5*Time.deltaTime,0);
		}

		//判断是否按下字母按钮 C
		if (Input.GetKey(KeyCode.C)) {
			//移动 绑定物的 y 轴,即移动 摄像机的 y 轴。 
			transform.Translate(0,5*Time.deltaTime,0);
		}
	}
}


绑定在发射的小球上的脚本

using UnityEngine;
using System.Collections;

public class xiaomie : MonoBehaviour {

	// Use this for initialization
	void Start () {
		//销毁物体,gameObject,目测应该是指物体自身,即达到自我销毁的需求.
		Destroy(gameObject, 3.0f);
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36244次
    • 积分:633
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:1篇
    • 译文:0篇
    • 评论:5条
    最新评论