㈠ 請問如下意思的Unity C#代碼如何寫
邏輯還是挺簡單的,唯一注意的是新版本的unity用的VideoClip播放視頻
代碼就倆
public class MoveObjCtrl : MonoBehaviour
{
void OnCollisionEnter(Collision collision)
{
string tags = collision.collider.tag;
if (tags == "A")
{
Debug.Log(Time.frameCount + ": " + collision.collider);
Main.Instance.PlayMovie(gameObject, collision.collider.gameObject);
}
else if(tags == "B")
{
}
}
}
這是可移動的碰撞物體上的代碼,動態添加
主代碼如下
public class Main : MonoBehaviour
{
public static Main Instance = null;
public MoveObjCtrl moveObj = null;
public GameObject boom = null;
public VideoClip videoClip;
void Start()
{
Instance = this;
videoClip = Resources.Load("movie") as VideoClip;
boom = Resources.Load("boom") as GameObject;
GameObject mobj = Instantiate(Resources.Load("moveObj")) as GameObject;
moveObj = mobj.AddComponent<MoveObjCtrl>();
}
void Update()
{
//test
if (moveObj == null)
return;
if(Input.GetKey(KeyCode.W))
{
moveObj.transform.Translate(Vector3.forward*0.1f);
}
if (Input.GetKey(KeyCode.S))
{
moveObj.transform.Translate(Vector3.back * 0.1f);
}
}
public void PlayMovie(GameObject hitObj, GameObject beHitObj)
{
Destroy(hitObj);
Destroy(beHitObj);
GameObject movieobj = Instantiate(boom, beHitObj.transform.position, Quaternion.identity);
var videoPlayer = movieobj.AddComponent<VideoPlayer>();
var audioSource = movieobj.AddComponent<AudioSource>();
videoPlayer.playOnAwake = true;
videoPlayer.clip = videoClip;
videoPlayer.renderMode = VideoRenderMode.MaterialOverride;
videoPlayer.targetMaterialRenderer = movieobj.GetComponent<Renderer>();
videoPlayer.targetMaterialProperty = "_MainTex";
videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
videoPlayer.SetTargetAudioSource(0, audioSource);
Destroy(movieobj, (float)videoClip.length);
}
}
需要工程代碼,可以加好友
㈡ unity3d破解版會追究版權嗎
應該會吧。
其實你可以使用免費版。
免費版開發游戲只有盈利到一定程度才會收錢。
新手自學,未必正確。
㈢ unity對於控制項添加必須寫硬代碼而不能直接添加嗎
方法如下:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("PreRevDate0", typeof(decimal)));
DataColumn col = new DataColumn();
col.ColumnName = "PreRevDate1";
col.Expression = "ABS(Convert.ToInt32(PreRevDate0))";
col.DataType = typeof(decimal);
dt.Columns.Add(col);
DataRow dr = dt.NewRow();
dr["PreRevDate0"] = -1;
dt.Rows.Add(dr);
㈣ 修改unity3d自帶的代碼在發布游戲時會不會有版權問題(如第一人稱控制器之類的)
可以用的,但是如果用的Unity本身就是破解版的,這個就不好說了,另外如果利用Unity年盈利超過10萬美元,需要向unity付費或者購買正版
㈤ ugui如何用代碼給slider下的onValueChanged屬性添加自己寫的一個方法
在uislider裡面掛個共有變數public UILable label在值改變的函數裡面。label.text = val。即可
㈥ Unity中如何給游戲物體通過代碼添加組件
gameObject.AddComponent<YourComponent>();
或者
gameObject.AddComponent("YourComponent");
㈦ u3d代碼給物體添加texture
估計你用的c#腳本吧,那樣你的腳本的名字必須和腳本中類的名字相同才可以,還有腳本不能有錯誤,才能添加!希望回答能給你帶來幫助,如果還又不明白的地方請追問
你的採納是我前進的動力答題不易互相理解
㈧ Unity3D除了在編輯器里,怎麼用代碼給一個Texture類型的變數賦值
=======================================
比如上述代碼: public float power = 6000f; 如果這個賦值是在聲明時賦值的, 也就不是放在任何函數中重新賦值的話, 無論如果在編輯器中修改這個值, 並運行多少次, Inspector面板中的對應屬性僅僅顯示你在第一次添加這個腳本時, 所識別出來的第一個值(比如說此時是6000f, 添加後面板中顯示是6000f, 然後我通過編輯器修改6000f 至1000f, 再運行程序, 發現面板中始終是6000f,並不會同步更新, 你試試你的是否也是這樣.)
上例中我之所以放在start中,是因為,在重新運行程序的時候,只有這種方法可以確保自己的修改值被應用. 再不就只能在面板中手動輸入修改值了.
㈨ unity3D5.0版本中給一個物體添加力的java類代碼是什麼
類似
void FixedUpdate() {
rigidbody.AddForce(Vector3.up * 10);
}
具體查看官腳本手冊
㈩ unity3d怎麼給組件添加腳本
組件就是靠添加腳本實現的,你說的是給對象添加腳本吧。點擊inspector下面有個AddComponet.