當前位置:首頁 » 網頁前端 » 新3d坦克腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

新3d坦克腳本

發布時間: 2023-01-11 15:50:55

1. unity 3d怎麼才能讓坦克炮塔像坦克世界裡一樣滑鼠移到一定位置然後炮塔慢慢跟上來的那種 有c#源碼最好

把下面的腳本掛載到要轉的物體上

using UnityEngine;

using System.Collections;

public class RobotTurret : MonoBehaviour {

[SerializeField]
private float RotateSpeed = 720f;
[SerializeField]
[Range(0f, 180f)]
private float Limit = 180f;

private float InitLocalRotY = 0f;

void Start () {
InitLocalRotY = transform.localRotation.eulerAngles.y % 360f;
}

void Update () {

Vector3 MouseWorldPosition = Vector3.zero;

Plane plane = new Plane(Vector3.up, transform.position);
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
float distance;
if (plane.Raycast(ray, out distance)) {
MouseWorldPosition = ray.origin + ray.direction * distance;
}

Vector3 pos = MouseWorldPosition;
pos.y = transform.position.y;
Quaternion aimRot = Quaternion.RotateTowards(
transform.rotation,
Quaternion.LookRotation(
pos - transform.position,
Vector3.up
),
Time.deltaTime * RotateSpeed
);
transform.rotation = aimRot;
// Clamp
float localY = Mathf.Repeat(transform.localRotation.eulerAngles.y + 180f, 360f) - 180f;

if (Mathf.Abs(Mathf.Abs(localY % 360f) - Mathf.Abs(InitLocalRotY)) > Limit) {
transform.localRotation = Quaternion.Euler(0f, InitLocalRotY + (localY > 0f ? Limit : -Limit), 0f);
}
}

}

2. 3D坦克爭霸腳本怎麼用方法詳解

戰斗簡介:
1,移動方式:
戰斗表現為第三人稱視角,模擬搖桿控制移動,
2,瞄準方式:
劃屏控制炮台轉動,以此來瞄準敵人進行射擊。
鎖定:當敵人靠近坦克準星到一定距離時,準星會自動鎖定敵方坦克,坦克炮台也會自動轉向指向敵方坦克
瞄準:游戲中有一個輔助射擊的瞄準環,它指示著當前射擊的著彈范圍。移動時著彈范圍比較大所以瞄準環會比較大,鎖定敵人後,開始瞄準過程,環會逐漸縮小,射擊精度也隨之提高。
3,攻擊方式:
瞄準敵人後,點擊「開炮」按鈕,向敵人發射一枚炮彈。
4,武器切換:
本游戲沒有武器切換功能。
5,換彈夾方式:
子彈打完後自動填滿彈夾。
6,特殊模式中操作方式:
本游戲無特殊模式。

3. Unity3D製作簡易坦克旋轉發射子彈

項目:製作一個坦克,讓它在旋轉的同時發射子彈,並且讓它在兩秒之後銷毀

問題:1.子彈怎麼連續產生?

答:拖成預設體

2.子彈怎麼停留兩秒後銷毀

答:用Destroy();放在Start函數中,每次產生新子彈之前把之前銷毀之前的子彈

解析:

1.創建一個簡易的坦克,裡麵包含以下對象(還有一個子彈模型,拖成預設體)

GameObject這個空物體是發射子彈的地方,如圖示

注意:要想子彈發射的方向跟炮筒Cylinder的方向一致,必須將子彈和GameObject的rotation都設成跟炮筒Cylinder的一樣

2.創建一個FlyScript腳本掛在子彈身上,實現子彈的發射和銷毀

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassFlyScript:MonoBehaviour

{

voidStart()

{

//每產生一個新子彈之前,進行一次銷毀的操作,每2秒銷毀一個子彈

Destroy(gameObject,2f);

}

voidUpdate()

{

//發射子彈,transform.up是自身方向的y軸,加上Space.World後就是相對於世界坐標的方向

transform.Translate(transform.up,Space.World);

}

}

3.創建一個腳本掛在GameObject(即發射口)上實現子彈連續不斷的產生

將子彈bullets預設體拖動這里

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassTankScript:MonoBehaviour

{

//子彈

publicGameObjectbullets;

//計時器

privatefloattimer;

voidUpdate()

{//每一秒產生一顆子彈

timer+=Time.deltaTime;

if(timer>=1f){

timer=0;

Instantiate(bullets,transform.position,transform.rotation);

}

}

}

4.創建一個腳本掛在Tank身上實現坦克的勻速旋轉

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassRotateScript:MonoBehaviour

{

voidUpdate()

{

//使得坦克勻速旋轉

transform.Rotate(0,5*Time.deltaTime,0);

}

}

4. 現有一靜態的3D坦克模型(*.mesh格式),如何增加動態動作(增加 animations,比如履帶、輪子轉動)謝謝

導到三維軟體里K幀就行了。