查看: 2361|回复: 0
打印 上一主题 下一主题

unity3d 鼠标点击 控制人物行走

[复制链接]
markq    

511

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
15839
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-5-11 11:00:34 |只看该作者 |倒序浏览

unity3d 鼠标点击 控制人物行走
void Update ()

{





if(Input.GetMouseButtonDown(0))

{

RayControl();

}

if(flagMove)

{

if(Vector3.Distance(transform.position,mousePos)>1)

{

  transform.Translate(transform.worldToLocalMatrix* transform.forward * Time.deltaTime*5);

}

else

{

flagMove=false;

}

}

}

void RayControl()

{

Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);

if(Physics.Raycast(ray,out hit,200))

{

GameObject targetPos=GameObject.CreatePrimitive(PrimitiveType.Sphere);

targetPos.transform.localScale=new Vector3(0.5f,0.5f,0.5f);

mousePos=hit.point;

mousePos.y=transform.position.y;

targetPos.transform.position=mousePos;

targetDir=mousePos-transform.position;

Vector3 tempDir=Vector3.Cross(transform.forward,targetDir.normalized);

float dotValue=Vector3.Dot(transform.forward,targetDir.normalized);

float angle=Mathf.Acos(dotValue)*Mathf.Rad2Deg;

if(tempDir.y<0)

{

angle=angle*(-1);

}

print(tempDir.y);

print("2:"+angle);

transform.RotateAround(transform.position,Vector3.up,angle);

flagMove=***e;

}

}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-29 04:40 , Processed in 0.086971 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部