博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
黑暗之光 Day1
阅读量:5364 次
发布时间:2019-06-15

本文共 3783 字,大约阅读时间需要 12 分钟。

1. 设置鼠标指针图标

  Build Setting -> Player Setting

  

 

2. 添加雾的效果 

   Window->Lighting->Settings。

  

 

3. 任意键按下事件

1 // Use this for initialization 2 void Start () { 3     // 查找 ButtonContainer 实体 4     buttonContainer = this.transform.parent.Find("ButtonContainer").gameObject; 5 } 6      7 // Update is called once per frame 8 void Update () { 9     if (!isAnyKeyDown)10     {11         if (Input.anyKey)       // 任意键按下12         {13             ShowButton();       // 显示按钮界面14         }15     }16 }17 18 void ShowButton()19 {20     buttonContainer.SetActive(true);    // 显示按钮界面21     this.gameObject.SetActive(false);   // 隐藏 pressanykey 22     isAnyKeyDown = true;23 }

 

 

 4. 添加游戏背景音乐和鼠标点击声音

   Audio Source

    

  NGUI Play Sound

    

 

5. 点击 OK 按钮保存数据

1 public void OnOkButtonClick()2 {3     PlayerPrefs.SetInt("SelectedCharacterIndex", selectIndex);      // 保存数据4     PlayerPrefs.SetString("Name", nameInput.value);5     // TODO 转到下一场景6 }

 

 

 6. 根据鼠标点击改变人物朝向

1 // 射线检测2 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);3 RaycastHit hitInfo;4 bool isCollider = Physics.Raycast(ray, out hitInfo);5 if (isCollider && hitInfo.collider.tag == Tags.ground)6 {7     LookAtTarget(hitInfo.point);        // 朝向目标位置8 }
1 // 朝向目标位置2 void LookAtTarget(Vector3 target)3 {4     target.y = transform.position.y;        // 绕y轴旋转,注意高度要保持一致5     transform.LookAt(target);               // 朝向目标6 }

 

 

7. 控制人物移动

   Character Controller。

    

1 void Update () {2     // 得到当前位置与目标位置的距离3     float distance = Vector3.Distance(dir.targetPos, transform.position);4     if (distance > 0.1f)        // 若没有到达目标位置5     {6         // 简单移动7         controller.SimpleMove(transform.forward * speed);8     }9 }

 

 

 8. 人物移动动画的播放

  

1 // LateUpdate 运行稍晚于 Update 2 void LateUpdate () { 3     if (move.state == CharacterState.Moving)    // 移动状态 4     { 5         PlayAnimation("Run"); 6     } 7     else if(move.state == CharacterState.Idle)  // 静止状态 8     { 9         PlayAnimation("Idle");10     }11 }12 13 // 播放animationName动画14 void PlayAnimation(string animationName)15 {16     animation.CrossFade(animationName, 0.1f);17 }

 

 

 9. 相机随人物移动

1 // Use this for initialization 2 void Start () { 3     // 获取人物位置 4     player = GameObject.FindGameObjectWithTag(Tags.player).transform; 5     offset = transform.position - player.position;          // 人物位置与相机偏移 6     transform.LookAt(player);                               // 相机看向人物 7 } 8      9 // Update is called once per frame10 void Update () {11     transform.position = player.position + offset;          // 相机跟随人物12 }

 

10. 控制视野的远近

1 // 鼠标中轴控制视野的远近2 void ScrollView()3 {4     distance = offset.magnitude;                     // 相机与人物的距离5     // 根据中轴控制视野远近6     distance += Input.GetAxis("Mouse ScrollWheel") * scrollSpeed;7     offset = offset.normalized * distance;8 }

 

 

11. 控制视野的旋转

1 // 控制视野旋转 2 void RotateView() 3 { 4     if (Input.GetMouseButtonDown(0))        // 监听鼠标左键 5     { 6         isRotate = true; 7     } 8     if (Input.GetMouseButtonUp(0)) 9     {10         isRotate = false;11     }12     if (isRotate)13     {14         // 以人物为中心,绕y轴旋转15         transform.RotateAround(player.position, Vector3.up, Input.GetAxis("Mouse X")*rotateSpeed);16         Vector3 originalPos = transform.position;           // 记录当前位置和旋转17         Quaternion originalRot = transform.rotation;18         // 以人物为中心,绕视野x轴旋转19         transform.RotateAround(player.position, transform.right, -Input.GetAxis("Mouse Y")*rotateSpeed);20         float x = transform.eulerAngles.x;21         if (x < 10 || x > 80)                               // 控制上下旋转范围22         {23             transform.position = originalPos;24             transform.rotation = originalRot;25         }26 27         offset = transform.position - player.position;28     }29 }

 

转载于:https://www.cnblogs.com/coderJiebao/p/unity3d04.html

你可能感兴趣的文章
把特斯拉送上火星的程序员,马斯克!
查看>>
三测单
查看>>
MyBatis 缓存
查看>>
SQL中left outer join与inner join 混用时,SQL Server自动优化执行计划
查看>>
mac下python实现vmstat
查看>>
jxl.dll操作总结
查看>>
成员函数对象类的const和非const成员函数的重载
查看>>
机器学习实战-----八大分类器识别树叶带源码
查看>>
eclipse git 新的文件没有add index选项
查看>>
java 泛型
查看>>
VC NetShareAdd的用法
查看>>
java web项目中后台控制层对参数进行自定义验证 类 Pattern
查看>>
图论学习一之basic
查看>>
Java的Array和ArrayList
查看>>
记录Ubuntu 16.04 安装Docker CE
查看>>
安东尼奥·维瓦尔第——巴洛克音乐的奇葩
查看>>
pandas的增删改查
查看>>
HDU 5933/思维
查看>>
字节对齐
查看>>
Design Tic-Tac Toe
查看>>