您的位置:首页 > 移动开发 > Unity3D

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);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: