Unity3d工具方法小集

1、获取垂直水平方向上的输入:

moveHorizontal = Input.GetAxis( moveVertical = Input.GetAxis();

2、给刚体一个力:

Vector3 movement = Vector3(moveHorizontal,().AddForce(movement * speed * Time.deltaTime);

3、摄像头45度俯视角:

Camera:

Position: x() y() z(-Rotate: x(<span style="color: #800080">45) y(<span style="color: #800080">0) z(<span style="color: #800080">0<span style="color: #000000">)

Scale: x(<span style="color: #800080">1) y(<span style="color: #800080">1) z(<span style="color: #800080">1)

4、摄像机跟随:

<span style="color: #008000">//<span style="color: #008000"> Use this for initialization
<span style="color: #0000ff">void
<span style="color: #000000"> Start () {
<span style="color: #008000">//<span style="color: #008000">摄像机与跟随物体的初始相对位置
offset = transform.position -<span style="color: #000000"> player.transform.position;
}

<span style="color: #008000">//<span style="color: #008000"> Update is called once per frame
<span style="color: #0000ff">void<span style="color: #000000"> LateUpdate () {
<span style="color: #008000">//<span style="color: #008000">跟随物体的位置加上相对位置
transform.position = player.transform.position +<span style="color: #000000"> offset;
}

5、物体自己旋转(固定时间,跟幀率无关):

Vector3(,,) *

6、检测碰撞(且碰撞后对方消失):

other.gameObject.SetActive(

7、设置Button里的Text值

GetComponentInChildren().text = ;

8、移除刚体上的力:

GetComponent().velocity =().angularVelocity = Vector3.zero;

9、背景滾动:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> BGScroller : MonoBehaviour {

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; scrollSpeed;
</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; tileSizeZ;

</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; Vector3 startPosition;

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Start () {
    startPosition </span>=<span style="color: #000000"&gt; transform.position;
}

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Update () {
    </span><span style="color: #0000ff"&gt;float</span> newPosition = Mathf.Repeat(Time.time *<span style="color: #000000"&gt; scrollSpeed,tileSizeZ);
    transform.position </span>= startPosition + Vector3.forward *<span style="color: #000000"&gt; newPosition;
}

}

10、出边界后销毀:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> DestoryByBoundary : MonoBehaviour {

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; OnTriggerExit(Collider other)
{
    Destroy(other.gameObject);
}

}

11、把prefabs放入场景中:

Instantiate(object,position,rotation);

12、一定时间后销毁:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> DestoryByTime : MonoBehaviour {

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; lifetime;

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Start () {
    Destroy(gameObject,lifetime);
}

}

13、游戏开始等待一定时间,过程中时间间隔,每一关时间间隔:

IEnumerator SpawnWaves()
{
<span style="color: #0000ff">yield
<span style="color: #0000ff">return <span style="color: #0000ff">new<span style="color: #000000"> WaitForSeconds(startWait);
<span style="color: #0000ff">while (<span style="color: #0000ff">true<span style="color: #000000">) {
playerObject.GetComponent<span style="color: #000000">().SetFireByLevel(level);
<span style="color: #0000ff">for (<span style="color: #0000ff">int i = <span style="color: #800080">0; i < hazardCount; i++<span style="color: #000000">)
{
GameObject hazard = hazards[Random.Range(<span style="color: #800080">0<span style="color: #000000">,hazards.Length)];
Vector3 spawnPosition = <span style="color: #0000ff">new Vector3(Random.Range(-<span style="color: #000000">spawnValues.x,spawnValues.x),spawnValues.y,spawnValues.z);
Quaternion spawnRotation =<span style="color: #000000"> Quaternion.identity;
Instantiate(hazard,spawnPosition,spawnRotation);
<span style="color: #0000ff">yield <span style="color: #0000ff">return <span style="color: #0000ff">new<span style="color: #000000"> WaitForSeconds(spawnWait);
}
level++<span style="color: #000000">;
<span style="color: #0000ff">yield <span style="color: #0000ff">return <span style="color: #0000ff">new<span style="color: #000000"> WaitForSeconds(waveWait);
<span style="color: #0000ff">if<span style="color: #000000"> (gameOver)
{
restartButton.SetActive(<span style="color: #0000ff">true<span style="color: #000000">);
restart = <span style="color: #0000ff">true<span style="color: #000000">;
<span style="color: #0000ff">break<span style="color: #000000">;
}
}
}

14、加载场景:

SceneManager.LoadScene(,LoadSceneMode.Single);

15、物体倾斜:

rb.rotation = Quaternion.Euler(,,rb.velocity.x * -tilt);

16、随机旋转:

GetComponent().angularVelocity = Random.insideUnitSphere * tumble;

tumble在5左右。

17、开火触模板:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> SimpleTouchAreaButton : MonoBehaviour,IPointerDownHandler,IPointerUpHandler
{
<span style="color: #0000ff">private <span style="color: #0000ff">bool<span style="color: #000000"> touched;
<span style="color: #0000ff">private <span style="color: #0000ff">int<span style="color: #000000"> pointerID;
<span style="color: #0000ff">private <span style="color: #0000ff">bool<span style="color: #000000"> canFire;

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Awake()
{
    touched </span>= <span style="color: #0000ff"&gt;false</span><span style="color: #000000"&gt;;
    canFire </span>= <span style="color: #0000ff"&gt;false</span><span style="color: #000000"&gt;;
}

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; OnPointerDown(PointerEventData eventData)
{
    </span><span style="color: #0000ff"&gt;if</span> (!<span style="color: #000000"&gt;touched)
    {
        touched </span>= <span style="color: #0000ff"&gt;true</span><span style="color: #000000"&gt;;
        pointerID </span>=<span style="color: #000000"&gt; eventData.pointerId;
        canFire </span>= <span style="color: #0000ff"&gt;true</span><span style="color: #000000"&gt;;
    }
}

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; OnPointerUp(PointerEventData eventData)
{
    </span><span style="color: #0000ff"&gt;if</span> (eventData.pointerId ==<span style="color: #000000"&gt; pointerID)
    {
        canFire </span>= <span style="color: #0000ff"&gt;false</span><span style="color: #000000"&gt;;
        touched </span>= <span style="color: #0000ff"&gt;false</span><span style="color: #000000"&gt;;
    }
}

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;bool</span><span style="color: #000000"&gt; CanFire()
{
    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; canFire;
}

}

18、位置方向触模板:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> SimpleTouchPad : MonoBehaviour,IDragHandler,IPointerUpHandler
{
<span style="color: #0000ff">public <span style="color: #0000ff">float<span style="color: #000000"> smoothing;

</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; Vector2 origin;
</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; Vector2 direction;
</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; Vector2 smoothDirection;
</span><span style="color: #0000ff"&gt;private</span> <span style="color: #0000ff"&gt;bool</span><span style="color: #000000"&gt; touched;
</span><span style="color: #0000ff"&gt;private</span> <span style="color: #0000ff"&gt;int</span><span style="color: #000000"&gt; pointerID;

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Awake()
{
    direction </span>=<span style="color: #000000"&gt; Vector2.zero;
    touched </span>= <span style="color: #0000ff"&gt;false</span><span style="color: #000000"&gt;;
}

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; OnPointerDown(PointerEventData eventData)
{
    </span><span style="color: #0000ff"&gt;if</span> (!<span style="color: #000000"&gt;touched)
    {
        touched </span>= <span style="color: #0000ff"&gt;true</span><span style="color: #000000"&gt;;
        pointerID </span>=<span style="color: #000000"&gt; eventData.pointerId;
        </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;set our start point</span>
        origin =<span style="color: #000000"&gt; eventData.position;
    }
}

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; OnDrag(PointerEventData eventData)
{
    </span><span style="color: #0000ff"&gt;if</span> (eventData.pointerId ==<span style="color: #000000"&gt; pointerID)
    {
        </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;compare the difference between our start point and current pointer pos</span>
        Vector2 currentPosition =<span style="color: #000000"&gt; eventData.position;
        Vector2 directionRaw </span>= currentPosition -<span style="color: #000000"&gt; origin;
        direction </span>=<span style="color: #000000"&gt; directionRaw.normalized;
    }
}

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; OnPointerUp(PointerEventData eventData)
{
    </span><span style="color: #0000ff"&gt;if</span> (eventData.pointerId ==<span style="color: #000000"&gt; pointerID)
    {
        </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;reset everything</span>
        direction =<span style="color: #000000"&gt; Vector2.zero;
        touched </span>= <span style="color: #0000ff"&gt;false</span><span style="color: #000000"&gt;;
    }
}

</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; Vector2 GetDirection()
{
    smoothDirection </span>=<span style="color: #000000"&gt; Vector2.MoveTowards(smoothDirection,direction,smoothing);
    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; smoothDirection;
}

}

19、延迟重复执行:

InvokeRepeating(,delay,fireRate);

20、向目标靠近:

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> EvasiveManeuver : MonoBehaviour {

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; dodge;
</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; smoothing;
</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; tilt;
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; Vector2 startWait;
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; Vector2 maneuverTime;
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; Vector2 maneuverWait;
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; Boundary boundary;

</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; Transform playTransform;

</span><span style="color: #0000ff"&gt;private</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; currentSpeed;
</span><span style="color: #0000ff"&gt;private</span> <span style="color: #0000ff"&gt;float</span><span style="color: #000000"&gt; targetManeuver;
</span><span style="color: #0000ff"&gt;private</span><span style="color: #000000"&gt; Rigidbody rb;

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; Start () {
    rb </span>= GetComponent<Rigidbody><span style="color: #000000"&gt;();
    GameObject playerObject </span>= GameObject.FindGameObjectWithTag(<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;Player</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;);
    </span><span style="color: #0000ff"&gt;if</span> (playerObject != <span style="color: #0000ff"&gt;null</span><span style="color: #000000"&gt;) {
        playTransform </span>=<span style="color: #000000"&gt; playerObject.transform;
    }
    currentSpeed </span>=<span style="color: #000000"&gt; rb.velocity.z;
    StartCoroutine(Evade());
}

IEnumerator Evade()
{
    </span><span style="color: #0000ff"&gt;yield</span> <span style="color: #0000ff"&gt;return</span> <span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; WaitForSeconds(Random.Range(startWait.x,startWait.y));
    </span><span style="color: #0000ff"&gt;while</span>(<span style="color: #0000ff"&gt;true</span><span style="color: #000000"&gt;)
    {
        targetManeuver </span>= Random.Range(<span style="color: #800080"&gt;1</span>,dodge) * -<span style="color: #000000"&gt;Mathf.Sign(transform.position.x);
        </span><span style="color: #0000ff"&gt;if</span> (playTransform != <span style="color: #0000ff"&gt;null</span><span style="color: #000000"&gt;)
        {
            targetManeuver </span>=<span style="color: #000000"&gt; playTransform.position.x;
        }
        </span><span style="color: #0000ff"&gt;yield</span> <span style="color: #0000ff"&gt;return</span> <span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; WaitForSeconds(Random.Range(maneuverTime.x,maneuverTime.y));
        targetManeuver </span>= <span style="color: #800080"&gt;0</span><span style="color: #000000"&gt;;
        </span><span style="color: #0000ff"&gt;yield</span> <span style="color: #0000ff"&gt;return</span> <span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; WaitForSeconds(Random.Range(maneuverWait.x,maneuverWait.y));
    }
}

</span><span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; FixedUpdate () {
    </span><span style="color: #0000ff"&gt;float</span> newManeuver = Mathf.MoveTowards(rb.velocity.x,targetManeuver,Time.deltaTime *<span style="color: #000000"&gt; smoothing);
    rb.velocity </span>= <span style="color: #0000ff"&gt;new</span> Vector3(newManeuver,currentSpeed);
    rb.position </span>= <span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; Vector3(
        Mathf.Clamp(rb.position.x,boundary.xMin,boundary.xMax),</span><span style="color: #800080"&gt;0.0f</span><span style="color: #000000"&gt;,Mathf.Clamp(rb.position.z,boundary.zMin,boundary.zMax)
    );
    rb.rotation </span>= Quaternion.Euler(<span style="color: #800080"&gt;0.0f</span>,rb.velocity.x *<span style="color: #000000"&gt; tilt);
}

}

21、给按钮绑定事件:

相关文章

这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...
这篇文章主要介绍了Unity3D如何播放游戏视频,具有一定借鉴价...
这篇文章给大家分享的是有关Unity3D各平台路径是什么的内容。...
小编给大家分享一下Unity3D如何实现移动平台上的角色阴影,希...
如何解析基于Unity3D的平坦四叉树地形与Virtual Texture的分...
这篇文章主要介绍Unity3D如何实现动态分辨率降低渲染开销,文...