当前位置: 首页 > news >正文

网站的论坛怎么做南宁手机网站制作

网站的论坛怎么做,南宁手机网站制作,做淘宝返利网站能挣钱,浙江省建设信息港成绩查询目录 1.飞行的实现 2.限制玩家视角 3.射击的实现 4.附录 1.飞行的实现 #xff08;1#xff09;在Player预制体上挂载Configuration Joint组件#xff0c;并修改其Y Drive属性 #xff08;2#xff09; 修改PlayerInput.cs和PlayerController.cs以实现飞行 PlayerIn…目录 1.飞行的实现 2.限制玩家视角 3.射击的实现 4.附录 1.飞行的实现 1在Player预制体上挂载Configuration Joint组件并修改其Y Drive属性 2 修改PlayerInput.cs和PlayerController.cs以实现飞行 PlayerInput.cs 添加以下属性  [SerializeField] private float thrusterForce 20f; [SerializeField] private ConfigurableJoint joint 在其Start方法中添加以下语句 joint GetComponentConfigurableJoint(); 在其Update方法中添加以下语句  Vector3 force Vector3.zero; if (Input.GetButton(Jump)) {force Vector3.up * thrusterForce;joint.yDrive new JointDrive{positionSpring 0f,positionDamper 0f,maximumForce 0f,}; } else {joint.yDrive new JointDrive{positionSpring 20f,positionDamper 0f,maximumForce 40f,};} playerControllor.Thrust(force); PlayerController.cs 添加以下属性  private Vector3 thrusterForce Vector3.zero;//向上的推力 添加以下方法 public void Thrust(Vector3 _thrusterForce) {thrusterForce _thrusterForce; } 在其PerformMovement方法中添加以下语句 if (thrusterForce ! Vector3.zero) {rb.AddForce(thrusterForce);//作用Time.fixedDeltaTime秒0.02秒thrusterForce Vector3.zero; } 2.限制玩家视角 修改PlayerController.cs 添加以下属性 private float cameraRoatationTotal 0f;//累计转了多少度 [SerializeField] private float cameraRotationLimit 85f; 对其PerformRotation方法进行一下修改 private void PerformRotation() {if (yRotation ! Vector3.zero){rb.transform.Rotate(yRotation);}if (xRotation ! Vector3.zero){cam.transform.Rotate(xRotation);cameraRoatationTotal xRotation.x;cameraRoatationTotal Mathf.Clamp(cameraRoatationTotal, -cameraRotationLimit, cameraRotationLimit);cam.transform.localEulerAngles new Vector3(cameraRoatationTotal, 0f, 0f);} } 3.射击的实现 1 创建并编写PlayerWeapon.cs将其移动至Assets/Scripts/Player using System;[Serializable] public class PlayerWeapon {public string name M16;public int damage 10;public float range 100f; }2在场景中创建空物体“GameManager”创建并编写GameManager.cs并挂载至空物体“GameManager” GameManager.cs using System; using UnityEngine;public class GameManager : MonoBehaviour {private static string info;public static void UpdateInfo(String _info){info _info;}private void OnGUI(){GUILayout.BeginArea(new Rect(200f,200f,200f,400f));GUILayout.BeginVertical();GUILayout.Label(info);GUILayout.EndVertical();GUILayout.EndArea();} } 3创建并编写PlayerShooting.cs并将其挂载至Player预制体将其移至Assets/Scripts/Player using Unity.Netcode; using UnityEngine;public class PlayerShooting : NetworkBehaviour {[SerializeField]private PlayerWeapon weapon;[SerializeField] private LayerMask mask;private Camera cam;// Start is called before the first frame updatevoid Start(){cam GetComponentInChildrenCamera();}// Update is called once per framevoid Update(){if(Input.GetButton(Fire1)){Shoot();}}private void Shoot(){RaycastHit hit;if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit,weapon.range,mask)){ShootServerRpc(hit.collider.name,weapon.damage);}}[ServerRpc]private void ShootServerRpc(string hittedName,int damage){GameManager.UpdateInfo(transform.name hit hittedName);} }4 修改NetworkUI.cs实现“点击按钮后按钮消失” using Unity.Netcode; using UnityEngine; using UnityEngine.UI;public class NetworkManagerUI : MonoBehaviour {[SerializeField] private Button hostBtn;[SerializeField] private Button serverBtn;[SerializeField] private Button clientBtn;// Start is called before the first frame updatevoid Start(){hostBtn.onClick.AddListener(() {NetworkManager.Singleton.StartHost();DestroyAllButtons();});serverBtn.onClick.AddListener(() {NetworkManager.Singleton.StartServer();DestroyAllButtons();});clientBtn.onClick.AddListener(() {NetworkManager.Singleton.StartClient();DestroyAllButtons();});}private void DestroyAllButtons(){Destroy(hostBtn.gameObject);Destroy(serverBtn.gameObject);Destroy(clientBtn.gameObject);} } 4.附录  1测试效果图 按住空格起飞朝向任意碰撞体按下鼠标左键屏幕左上方出现命中提示  2部分工程文件完整代码 PlayerInput.cs using UnityEngine;public class PlayerInput : MonoBehaviour {[SerializeField]private float speed 5f;[SerializeField] private float thrusterForce 20f;[SerializeField] private PlayerController playerControllor;[SerializeField] private float lookSensitivity 8f;[SerializeField] private ConfigurableJoint joint;// Start is called before the first frame updatevoid Start(){Cursor.lockState CursorLockMode.Locked;joint GetComponentConfigurableJoint();}// Update is called once per framevoid Update(){float xMov Input.GetAxisRaw(Horizontal);float yMov Input.GetAxisRaw(Vertical);Vector3 velocity (transform.right * xMov transform.forward * yMov).normalized*speed;playerControllor.Move(velocity);float xMouse Input.GetAxisRaw(Mouse X);float yMouse Input.GetAxisRaw(Mouse Y);Vector3 yRotation new Vector3(0f, xMouse, 0f)*lookSensitivity;Vector3 xRotation new Vector3(-yMouse, 0f, 0f)*lookSensitivity;playerControllor.Rotate(yRotation,xRotation);Vector3 force Vector3.zero;if (Input.GetButton(Jump)){force Vector3.up * thrusterForce;joint.yDrive new JointDrive{positionSpring 0f,positionDamper 0f,maximumForce 0f,};}else{joint.yDrive new JointDrive{positionSpring 20f,positionDamper 0f,maximumForce 40f,};}playerControllor.Thrust(force);} } PlayerController.cs  using UnityEngine;public class PlayerController : MonoBehaviour {[SerializeField] private Rigidbody rb;[SerializeField] private Camera cam;private Vector3 velocity Vector3.zero;//速度每秒钟移动的距离private Vector3 yRotationVector3.zero;//旋转角色private Vector3 xRotation Vector3.zero;//旋转视角private float cameraRoatationTotal 0f;//累计转了多少度[SerializeField]private float cameraRotationLimit 85f;private Vector3 thrusterForce Vector3.zero;//向上的推力public void Move(Vector3 _velocity){velocity _velocity;}public void Rotate(Vector3 _yRotation, Vector3 _xRotation){yRotation _yRotation;xRotation _xRotation;}public void Thrust(Vector3 _thrusterForce){thrusterForce _thrusterForce;}private void PerformMovement(){if (velocity ! Vector3.zero){rb.MovePosition(rb.positionvelocity*Time.fixedDeltaTime);}if (thrusterForce ! Vector3.zero){rb.AddForce(thrusterForce);//作用Time.fixedDeltaTime秒0.02秒thrusterForce Vector3.zero;}}private void PerformRotation(){if (yRotation ! Vector3.zero){rb.transform.Rotate(yRotation);}if (xRotation ! Vector3.zero){cam.transform.Rotate(xRotation);cameraRoatationTotal xRotation.x;cameraRoatationTotal Mathf.Clamp(cameraRoatationTotal, -cameraRotationLimit, cameraRotationLimit);cam.transform.localEulerAngles new Vector3(cameraRoatationTotal, 0f, 0f);}}private void FixedUpdate(){PerformMovement();PerformRotation();} }
http://www.dnsts.com.cn/news/263482.html

相关文章:

  • 江苏工程建设交易信息网站网站名称价格
  • 网站安全建设管理制度网站备案 核验单
  • 万网虚拟云空间怎么建设网站商城模板建站价格
  • 门户网站举例深圳签网站
  • 深圳做网站推广公司哪家好百度网盘app官网下载
  • 游戏网站的建设wordpress4.9怎么安装
  • 北京网站优化流程建设局网站买卖合同
  • 广州英文网站建设wordpress会员功能主题
  • 多种不同产品的网站怎么做seo中国医药集团有限公司
  • 河北网站制作公司地址修改wordpress图标
  • 小鱼儿外贸建站做网站的基本流程
  • 编程软件免费中文版seo优化方式
  • 网站正能量入口家谱网站的首页怎么做
  • 如何建立淘宝客网站apicloud影视源码
  • 百度公司招聘2022年最新招聘怎样建设的网站好优化好排名
  • 做网站还是移动开发晋江住房和城乡建设局网站
  • 平原县建设局网站注册网站域名需要什么资料医疗器械
  • 东莞seo网站推广免费的行情网站ifind是
  • 自助建网站系统《网站建设与维护》讲义
  • 西安建设网站电话精品wordpress 模板
  • 东莞做网站排名优化推广做网站 报价
  • 试玩平台类网站怎么做的自动提取关键词的软件
  • 重庆市建设公共资源交易中心网站微网站建设制作
  • 手机app制作网站网站设计开题报告范文
  • 怎么建造个人网站wordpress 双语言
  • 网站首页图片轮播南阳建网站公司
  • 常州建设银行网站外贸网站一站式服务
  • 网站权重排行榜最好的关键词排名优化软件
  • 商城网站模版代码代做效果图网站好
  • 电影网站建设网约车服务