Unity3d在场景中如何选取物体 10
如题,类似于仙剑奇侠传给角色加血加状态,要先选中物体,请问怎么实现?还有啊,Unity3d的连招怎么实现啊...
如题,类似于仙剑奇侠传给角色加血加状态,要先选中物体,请问怎么实现?还有啊,Unity3d的连招怎么实现啊
展开
展开全部
在角色上增加一个任意种类的collider,如果已经有了就不需要
第一种方法,在角色上写一个检测代码
class SelectChecker:MonoBehaviour
{
void OnMouseDown()
{
Debug.Log("OnMouseDown");
}
}
将该脚本拖到角色上即可。当点击一个角色时,输出OnMouseDown。这种是被动的方法
还有一个是主动的,需要通过物理射线检测来做,主要用到的函数为
Physics.RayCast方法,先将鼠标位置转化为射线,然后物理测试,代码片段如下
Class SelectChecker2:MonoBehaviour
{
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
{
//hit.collider.gameobject就是鼠标点中的物体
}
}
}
将该脚本放在任意一个gameobject上即可
以上代码纯手打,思路完全没有问题,但可能有个别语法或者拼写错误,请自行修正
第一种方法,在角色上写一个检测代码
class SelectChecker:MonoBehaviour
{
void OnMouseDown()
{
Debug.Log("OnMouseDown");
}
}
将该脚本拖到角色上即可。当点击一个角色时,输出OnMouseDown。这种是被动的方法
还有一个是主动的,需要通过物理射线检测来做,主要用到的函数为
Physics.RayCast方法,先将鼠标位置转化为射线,然后物理测试,代码片段如下
Class SelectChecker2:MonoBehaviour
{
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
{
//hit.collider.gameobject就是鼠标点中的物体
}
}
}
将该脚本放在任意一个gameobject上即可
以上代码纯手打,思路完全没有问题,但可能有个别语法或者拼写错误,请自行修正
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询