Unity基础

界面

  • hierarchy
  • inspector
  • project

变量

Unity 可以让你在 Inspector 里看到并改动 C# Script 里变量的值,只需要声明变量为 public。然后变量就可以出现在 Script 组件的属性里了。

按键

在 Update 里可以监听按键事件。使用 Input.GetKey("w") 即可。 此外 input 事件在 Update 里监听更好,而不是 FixedUpdate。比如说在 Update 里监听按键。然后赋值给一个布尔变量,再在 FixedUpdate 里根据这个变量来判断。

Update和FixedUpdate区别

Update 的调用是每帧调用一次。但是每一帧的处理时间很可能不一样。 而 FixedUpdate 是按照固定时间间隔调用的,而且 FixedUpdate 调用后会立刻进行物理计算。因此任何对 RIgidBody 的物理运算都应该在 FixedUpdate 里进行,因为你当然希望你的代码运行后能够立刻改变物理状态。

相机跟随

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
  // 定义变量存储 Player的Transform信息
  public Transform PlayerTransform;
  // 定义相机距离物体的偏移量
  public Vector3 offset;

  // Start is called before the first frame update
  void Start()
  {
       
  }

  // Update is called once per frame
  void Update()
  {
      transform.position = PlayerTransform.position + offset;
  }
}
  • 挂在MainCamera上
  • 将要跟随的物体拖到属性中
  • 设置偏移量

碰撞

设置一个障碍物,碰撞时无法移动

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/**
* 碰撞障碍物
*/
public class PlayerCollision : MonoBehaviour
{
  public PlayerMovement playermMovement;

  private void OnCollisionEnter(Collision collision)
  {
      Debug.Log(collision.collider.tag);
      if (collision.collider.tag == "Obstacle")
      {
          // 发生碰撞时,无法移动
          playermMovement.enabled = false;
      }
  }

  // Start is called before the first frame update
  void Start()
  {
       
  }

  // Update is called once per frame
  void Update()
  {
       
  }
}

其中 PlayerMovement 其实就是之前我们创建的 Sript 的名字(因为会按照 Script 名字自动创建一个类,然后创建的就是那个类的类型变量),然后在 Unity 里将其链接。最后在 c# 里将其 enabled 关掉即可停止 player 的行动。

OnCollisionEnter 会在物体碰撞发生的时候调用。可接受一个参数,就是这个碰撞事件。这个碰撞事件里的 collider 就是撞到的物体。

tag 可以在 Unity 里添加。Inspector 的右上角,有一些内置的 tag,但我们这里自己添加一个新的 Obstacle tag。

  • 挂在Player上
  • 给Obstacle创建标签
  • 给PlayerCollision绑定自己(Player)

预制体Prefabs

创建方式是从 Hierachy panel 里把想要变成 Prefab 的 Object 直接拖到下方 Project Panel 里。就变成了一个 Prefab,然后可以直接把这个 Prefab 拖到中央视图。就可以创建一个个相同的 Objects 了。

  • 此时如果在 Prefab 的 Inspector 里改动,所有改动都会影响到所有通过这个 Prefab 创建的 Objects。
  • 也可以改动单独的 Object,不会对其他的有影响。如果想把这个改动映射到其它 Objects 上,可以选择 Object 的 Inspector 里上方的 Override 属性里选择把哪些改动映射到其它 Objects 上。

Trigger(触发器)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇