关于Kinect结合Unity3D引擎开发体感游戏 代码菜鸟的疑问
@地瓜儿 你好,想跟你请教个问题:
在体感博文(二)中,截图的那段代码是放在哪个脚本里面么?还是自己另外写一个新的脚本拿去绑定?HIP_CENTER是我的人体骨骼的名字?“setHeroState添加 到Updata函数”我不太理解,如果是用一个新脚本,Start是否只需要获取游戏对象即可,像GetJointPos这些包里的函数该如何使包含?
state 未定义,应该在哪里定义,怎么定义?
GetJointPos 也未定义,这个是那个包里的?要怎么包含?
flg 是你的模型对象?(那么Start 里是不是flg=GameObject.Find("ren"); )
Start 和 Update 应该怎么写?(原谅我问这种问题··我是十分之九的代码文盲QAQ,剩下十分之一是勉强能看得懂)
还有就是最后自己定义的简单动作是不是可以不用要?或者有了这个,人物的动作会好看些?
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void setHeroState(int newState)
{
//According to figures of the current direction and the direction of the last backup to calculate the angle of rotation
int rotateValue = (newState - state) * 90;
Vector3 transformValue = new Vector3();
//Displacement of the numerical model to move
switch(newState)
{
case 0:
transformValue = Vector3.forward*Time.deltaTime;
break;
case 1:
transformValue = -Vector3.forward*Time.deltatime;
break;
case 2:
transformValue = Vector3.left*Time.deltaTime;
break;
case 3:
transformValue = -Vector3.left*Time.deltaTime;
break;
}
//Model rotation
transform.Rotate(Vector3.up,rotateValue);
//Mobile People
transform.Translate(transformValue*moveSpeed,Space.World);
state = newState;
}
private void DoActions()
{
Vector3 hip = GetJointPos (KinectWrapper.Jionts.Hip_Center);
Vector3 handRight = GetJointPos (KinectWrapper.Jionts.Hand_Right);
Vector3 handLeft = GetJointPos (KinectWrapper.Jionts.Hand_Left);
Vector3 spine= GetJointPos (KinectWrapper.Joints.Spine);
Vector3 head= GetJointPos (KinectWrapper.Joints.Head);
bool flg;
//Raised his hands to his chest
if(handLeft.y>spine.y-0.1&&handRight.y>spine.y-0.1)
flg=true;
flg=false;
//The following definitions are four relatively simple body movements, are forward Left Right back
if(flg)
{
if(head.x<spine.x-0.2){
//print("left............................");
//hs=Time.deltaTime*LSpeed;
//test.KeyVertical = 4;
setHeroState(0);
Debug.Log("left............................");
}
if(head.x>spine.x+0.2){
//print("right............................");
//hs=Time.deltaTime*RSpeed;
//test.KeyVertical = 5;
setHeroState(1);
Debug.Log("right............................");
}
if(head.z<hip.z-0.1){
//print("front............................");
//vs=Time.deltaTime*FSpeed;
//test.KeyHorizontal = 6;
setHeroState(2);
Debug.Log("front............................");
}
if(head.z>hip.z+0.1){
//print("back............................");
//vs=Time.deltaTime*BSpeed;
//test.KeyHorizontal = 7;
setHeroState(3);
Debug.Log("back............................");
}
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
引用来自“地瓜儿”的评论
这个可以的,骨骼与人物模型绑定一起 如果你只是在原地运动的话 不需要在场景里面运动,可以不用管。但是个你需要场景里面 你就需要如我上面所说 看看游戏人物运行一些例子
这个可以的,骨骼与人物模型绑定一起 如果你只是在原地运动的话 不需要在场景里面运动,可以不用管。但是个你需要场景里面 你就需要如我上面所说 看看游戏人物运行一些例子
引用来自“地瓜儿”的评论
这个怎么说了 ,你需要自己封装一个,然后再写一个脚本绑定即可!预期你不会封装 还不如用我第一篇的那个用 一样的
引用来自“地瓜儿”的评论
这个怎么说了 ,你需要自己封装一个,然后再写一个脚本绑定即可!预期你不会封装 还不如用我第一篇的那个用 一样的
引用来自“地瓜儿”的评论
这个怎么说了 ,你需要自己封装一个,然后再写一个脚本绑定即可!预期你不会封装 还不如用我第一篇的那个用 一样的
引用来自“地瓜儿”的评论
这个怎么说了 ,你需要自己封装一个,然后再写一个脚本绑定即可!预期你不会封装 还不如用我第一篇的那个用 一样的
引用来自“地瓜儿”的评论
这个怎么说了 ,你需要自己封装一个,然后再写一个脚本绑定即可!预期你不会封装 还不如用我第一篇的那个用 一样的
引用来自“地瓜儿”的评论
这个怎么说了 ,你需要自己封装一个,然后再写一个脚本绑定即可!预期你不会封装 还不如用我第一篇的那个用 一样的
这个怎么说了 ,你需要自己封装一个,然后再写一个脚本绑定即可!预期你不会封装 还不如用我第一篇的那个用 一样的