unity3d 摄像机跟随鼠标和键盘的控制
2015-02-01 07:00
477 查看
鼠标控制:
using UnityEngine;
using System.Collections;
public class shubiao : MonoBehaviour {
//public Transform firepos;
public int Ball=30;
public int CurBall=1;
public Rigidbody projectile;
public Vector3 point;
public float time=100f;
public GameObject Juese;
public GameObject lumian;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Juese=GameObject.Find ("shijue");
GameObject
PengZhuang1=GameObject.Find ("PengZhuang1");
GameObject
PengZhuang2=GameObject.Find ("PengZhuang2");
GameObject
PengZhuang3=GameObject.Find ("PengZhuang3");
GameObject
PengZhuang4=GameObject.Find ("PengZhuang4");
GameObject
PengZhuang5=GameObject.Find ("PengZhuang5");
GameObject
PengZhuang6=GameObject.Find ("PengZhuang6");
if(Juese==null)
{
return;
}
if(Input.GetMouseButton(0))
{
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast (ray,out hit))
{
if(hit.transform==Juese.transform)
{
print("命中了球");
}
if(hit.transform==PengZhuang1.transform)
{
print("碰撞了墙1");
return;
}
if(hit.transform==PengZhuang2.transform)
{
print("碰撞了墙2");
return;
}
if(hit.transform==PengZhuang3.transform)
{
print("碰撞了墙3");
return;
}
if(hit.transform==PengZhuang4.transform)
{
print("碰撞了墙4");
return;
}
if(hit.transform==PengZhuang5.transform)
{
print("碰撞了墙5");
return;
}
if(hit.transform==PengZhuang6.transform)
{
print("碰撞了墙6");
Application.LoadLevel(1);
return;
}
point=hit.point;
Juese.transform.LookAt(new Vector3(point.x,Juese.transform.position.y,point.z));
time=Time.realtimeSinceStartup;
Move(0.15f);
}
}
}
void Move(float speed)
{
if(Mathf.Abs (Vector3.Distance(point,transform.position))>=1.3f)
{
// Rigidbody clone2;
// clone2 = Instantiate(projectile, point, firepos.rotation) as Rigidbody;
// clone2.velocity = transform.TransformDirection(Vector3.forward * 10);
//transform.Translate(point);
Juese.transform.Translate(Vector3.forward* Time.deltaTime*20);
// transform.Translate (point* Time.deltaTime*20);
// print(point.x);
// print("forward"+Vector3.forward.x);
// CharacterController cctl= GetComponent<CharacterController>();
// Vector3 v=Vector3.ClampMagnitude(point,speed);
// cctl.Move(v);
}
}
void OnMouseDown()
{
Debug.Log("OnMouseDown");
}
}
键盘控制:
using UnityEngine;
using System.Collections;
public class shijue : MonoBehaviour {
//public GameObject ballgo;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
// ballgo=GameObject.Find ("zidan");
// if(Ball==null||firepos==null)
// return;
//// if (Input.GetButtonDown("Fire1")) {
//if (Input.GetKeyDown(KeyCode.Space))
//{
// Rigidbody clone1;
// clone1 = Instantiate(projectile, firepos.position, firepos.rotation) as Rigidbody;
// clone1.velocity = transform.TransformDirection(Vector3.forward * 120);
//}
if(Input.GetKey (KeyCode.W))
{
print("----------w");
transform.Translate (Vector3.forward * Time.deltaTime*60);
}
if(Input.GetKey (KeyCode.S))
{
print("---------------s");
transform.Translate (Vector3.forward * Time.deltaTime*-60);
}
if(Input.GetKey (KeyCode.A))
{
print("---a");
transform.Rotate(Vector3.up * Time.deltaTime*-60);
}
if(Input.GetKey (KeyCode.D))
{
print("------------d");
transform.Rotate(Vector3.up * Time.deltaTime*60);
}
}
}
using UnityEngine;
using System.Collections;
public class shubiao : MonoBehaviour {
//public Transform firepos;
public int Ball=30;
public int CurBall=1;
public Rigidbody projectile;
public Vector3 point;
public float time=100f;
public GameObject Juese;
public GameObject lumian;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Juese=GameObject.Find ("shijue");
GameObject
PengZhuang1=GameObject.Find ("PengZhuang1");
GameObject
PengZhuang2=GameObject.Find ("PengZhuang2");
GameObject
PengZhuang3=GameObject.Find ("PengZhuang3");
GameObject
PengZhuang4=GameObject.Find ("PengZhuang4");
GameObject
PengZhuang5=GameObject.Find ("PengZhuang5");
GameObject
PengZhuang6=GameObject.Find ("PengZhuang6");
if(Juese==null)
{
return;
}
if(Input.GetMouseButton(0))
{
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast (ray,out hit))
{
if(hit.transform==Juese.transform)
{
print("命中了球");
}
if(hit.transform==PengZhuang1.transform)
{
print("碰撞了墙1");
return;
}
if(hit.transform==PengZhuang2.transform)
{
print("碰撞了墙2");
return;
}
if(hit.transform==PengZhuang3.transform)
{
print("碰撞了墙3");
return;
}
if(hit.transform==PengZhuang4.transform)
{
print("碰撞了墙4");
return;
}
if(hit.transform==PengZhuang5.transform)
{
print("碰撞了墙5");
return;
}
if(hit.transform==PengZhuang6.transform)
{
print("碰撞了墙6");
Application.LoadLevel(1);
return;
}
point=hit.point;
Juese.transform.LookAt(new Vector3(point.x,Juese.transform.position.y,point.z));
time=Time.realtimeSinceStartup;
Move(0.15f);
}
}
}
void Move(float speed)
{
if(Mathf.Abs (Vector3.Distance(point,transform.position))>=1.3f)
{
// Rigidbody clone2;
// clone2 = Instantiate(projectile, point, firepos.rotation) as Rigidbody;
// clone2.velocity = transform.TransformDirection(Vector3.forward * 10);
//transform.Translate(point);
Juese.transform.Translate(Vector3.forward* Time.deltaTime*20);
// transform.Translate (point* Time.deltaTime*20);
// print(point.x);
// print("forward"+Vector3.forward.x);
// CharacterController cctl= GetComponent<CharacterController>();
// Vector3 v=Vector3.ClampMagnitude(point,speed);
// cctl.Move(v);
}
}
void OnMouseDown()
{
Debug.Log("OnMouseDown");
}
}
键盘控制:
using UnityEngine;
using System.Collections;
public class shijue : MonoBehaviour {
//public GameObject ballgo;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
// ballgo=GameObject.Find ("zidan");
// if(Ball==null||firepos==null)
// return;
//// if (Input.GetButtonDown("Fire1")) {
//if (Input.GetKeyDown(KeyCode.Space))
//{
// Rigidbody clone1;
// clone1 = Instantiate(projectile, firepos.position, firepos.rotation) as Rigidbody;
// clone1.velocity = transform.TransformDirection(Vector3.forward * 120);
//}
if(Input.GetKey (KeyCode.W))
{
print("----------w");
transform.Translate (Vector3.forward * Time.deltaTime*60);
}
if(Input.GetKey (KeyCode.S))
{
print("---------------s");
transform.Translate (Vector3.forward * Time.deltaTime*-60);
}
if(Input.GetKey (KeyCode.A))
{
print("---a");
transform.Rotate(Vector3.up * Time.deltaTime*-60);
}
if(Input.GetKey (KeyCode.D))
{
print("------------d");
transform.Rotate(Vector3.up * Time.deltaTime*60);
}
}
}
相关文章推荐
- Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本
- unity3d,制作自己的第一个射击游戏demo,实现镜头跟随和键盘控制移动
- 【unity3D】鼠标控制camera的移动、放大(俯视浏览效果、LOL摄像机移动效果)
- Unity3D【脚本】鼠标对摄像机的控制 - 点击鼠标,摄像机围绕圆心旋转(第三次修改)
- Ogre场景、节点、摄像机通过自动、鼠标、键盘控制移动
- Unity3D入门(五):鼠标控制旋转、摄像机缩放
- 有关unity3d 输入与控制(键盘与鼠标输入控制)
- 人物鼠标点击控制以及摄像机跟随
- Unity3D【脚本】鼠标对摄像机的控制 - 点击鼠标,摄像机围绕圆心旋转
- 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转
- 【Unity3D】键盘鼠标控制视角的移动
- Unity3D鼠标滚轮控制摄像机远近
- Unity3D入门(五):鼠标控制旋转、摄像机缩放
- Unity3d 鼠标和键盘控制视角缩放、扩大、平移、旋转
- unity3d 鼠标控制摄像机
- 【Unity3D入门教程】鼠标和键盘输入与控制
- 文字或图片跟随鼠标移动或键盘控制图片移动实例(javascript实现)
- unity 如何控制摄像机跟随角色移动
- 如何实现一套鼠标键盘控制二台主机
- Unity3d 物体跟随鼠标移动