Unity3D-VR人物瞬移、脚丫旋转判定、高光、开关灯、门、电视

本文介绍了在Unity3D中如何实现虚拟现实(VR)场景中的人物瞬移、脚丫旋转判定、物体表面高光效果、灯光开关控制、门的开关操作以及电视播放功能。通过实例和类的设计,详细阐述了这些关键交互的实现过程,为VR游戏开发提供了实用的技术方案。
摘要由CSDN通过智能技术生成
using UnityEngine;
using System.Collections;
using System;

public class Player : MonoBehaviour {

    public static Player instance;//静态公有字段
    public Transform _rightHand;//右手位置
    public SteamVR_TrackedObject _rightTrackedObj;//VR脚本组件
    public LineRenderer _rightLineR;//右手线性着色器
    public Transform _rightModel;//右手手柄控制器的位置
    public Ray _rightRay { get { return new Ray(_rightModel.position, _rightModel.forward); } }//一条从右手手柄发出的射线,指向正前方
    public RaycastHit _rightHit;//右手射线检测体
    public Transform _leftHand;//左手位置
    public SteamVR_TrackedObject _leftTrackedObj;//左手VR脚本组件
    public LineRenderer _leftLineR;//左手线性着色器
    public Transform _leftModel;//左手手柄位置
    public Ray _leftRay { get { return new Ray(_leftModel.position,_leftModel.forward); } }//左手射线,指向正前方
    public RaycastHit _leftHit;//左手射线检测体
    public Transform _footTex;//脚丫图片位置
    public SteamVR_Controller.Device rightDevice;//右手设备控制器
    public SteamVR_Controller.Device leftDevice;//左手设备控制
    public float lastAngle;//最后的角度
    public float currentAngle;//当前的角度
    public Quaternion initQ;//初始四元数
    public Quaternion resultQ;//结果四元数
    public Skybox skyBox;//天空盒

    void Awake()
    {
        instance = this;
        _rightHand = this.transform.Find("RightHand");
        _rightTrackedObj = _rightHand.GetComponent<SteamVR_TrackedObject>();
        _rightLineR = _rightHand.GetComponent<LineRenderer>();
        _rightModel = _rightHand.Find("Model");//

        _leftHand = this.transform.Find("LeftHand");
        _leftTrackedObj = _leftHand.GetComponent<SteamVR_TrackedObject>();
        _leftLineR = _leftHand.GetComponent<LineRenderer>();
        _leftModel = _leftHand.Find("Model");

        _footTex = GameObject.Find("foot").transform;
        initQ = _footTex.rotation;
        skyBox = this.transform.Find("Camera (head)/Camera (eye)").GetComponent<Skybox>();

        InitLeft();
    }

    void Update()
    {
        PlayerInput();
    }

    public void 
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值