鼠标操纵角色

本文介绍了一个使用Unity实现的基本脚本,该脚本通过鼠标射线检测选取场景中的物体,并根据选取的位置更新物体的位置。具体实现了物体位置的记录、射线检测绘制、物体位置更新等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var GO:GameObject;
static var pointx:float;
static var pointy:float;
static var pointz:float;

function Start (){
pointx=GO.transform.position.x;
pointy=GO.transform.position.y;
pointz=GO.transform.position.z;
}

function Update () {
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if (Physics.Raycast (ray, hit, 100)) {
Debug.DrawLine (ray.origin, hit.point);
print(hit.transform.name);
}


if(Input.GetKey(KeyCode.Mouse0)){
pointx=hit.point[0];
pointy=hit.point[1];
pointz=hit.point[2];
}
if(Input.GetKey(KeyCode.W)){
pointx=GO.transform.position.x;
pointy=GO.transform.position.y;
pointz=GO.transform.position.z;
}
if(Input.GetKey(KeyCode.S)){
pointx=GO.transform.position.x;
pointy=GO.transform.position.y;
pointz=GO.transform.position.z;
}
if(Input.GetKey(KeyCode.A)){
pointx=GO.transform.position.x;
pointy=GO.transform.position.y;
pointz=GO.transform.position.z;
}
if(Input.GetKey(KeyCode.D)){
pointx=GO.transform.position.x;
pointy=GO.transform.position.y;
pointz=GO.transform.position.z;
}

if(Mathf.Round(pointx-GO.transform.position.x)>0){
      GO.transform.position.x+=2*Time.deltaTime;
   }
else if(Mathf.Round(pointx-GO.transform.position.x)<0){
      GO.transform.position.x+=-2*Time.deltaTime;
    }

if(Mathf.Round((pointy+GO.transform.localPosition.y)-GO.transform.position.y)>0){
     GO.transform.position.y+=1*Time.deltaTime;
   }
else if(Mathf.Round((pointy+GO.transform.localPosition.y)-GO.transform.position.y)<0){
     GO.transform.position.y+=-1*Time.deltaTime;
    }

if(Mathf.Round(pointz-GO.transform.position.z)>0){
     GO.transform.position.z+=2*Time.deltaTime;
   }
else if(Mathf.Round(pointz-GO.transform.position.z)<0){
     GO.transform.position.z+=-2*Time.deltaTime;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值