unity3d添加脚本
1. unity3d 相机怎么添加脚本
由于项目需求,需要在unity中播放高清视频,视频分辨率达到了3840x1200。采用的是c++
plugin解码视频,提供图片纹理给unity渲染的方式。而在unity中使用的是rendertexture来保存解码的视频图片。为了方面调试,需要保存某一些时刻的图片数据到本地,可以采用下面的函数实现:
[csharp]
view
plain
[contextmenu("save
png")]
private
void
savetexturetofile()
{
if
(outputtexture
!=
null)
{
rendertexture
prev
=
rendertexture.active;
rendertexture.active
=
target;
texture2d
png
=
new
texture2d(outputtexture.width,
outputtexture.height,
textureformat.argb32,
false);
png.readpixels(new
rect(0,
0,
outputtexture.width,
outputtexture.height),
0,
0);
byte[]
bytes
=
png.encodetopng();
string
path
=
string.format("mp/raw
{0}.png",
random.range(0,
65536).tostring("x"));
filestream
file
=
file.open(path,
filemode.create);
binarywriter
writer
=
new
binarywriter(file);
writer.write(bytes);
file.close();
texture2d.destroy(png);
png
=
null;
rendertexture.active
=
prev;
}
}
2. Unity3D中三种调用其他脚本函数的方法
第一种:被调用脚本函数为static类型,调用时直接用 脚本名.函数名()。很不实用……
第二种:GameObject.Find("脚本所在物体名").SendMessage("函数名"); 此种方法可以调用public和private类型函数
第三种:GameObject.Find("脚本所在物体名").GetComponent<脚本名>().函数名();此种方法只可以调用public类型函数
3. unity3d怎么给组件添加脚本
组件就是靠添加脚本实现的,你说的是给对象添加脚本吧。点击inspector下面有个AddComponet.
4. unity3d中如何用脚本创建对象或者类
你要创建什么对象?如果是unity3d中的物体那是可以的,如果是脚本,不好意思,没见过动态创建脚本的,因为unity3d与其他引擎最大的不同在于它的gameobject和脚本使用方式,unity3d中脚本生效是通过挂载在物体上实现的。
只能动态的将写好的脚本添加到物体上,无法动态的新建脚本
//给游戏物体添加名为FoobarScript的脚本
var fbs : FoobarScript;
fbs = gameObject.AddComponent(FoobarScript);
这是js写法
public FoobarScript fbs;
public void Awake() {
fbs = gameObject.AddComponent();
}
这是C#写法
5. Unity3d如何写一个用可视化的按钮控制物体的显示和隐藏的脚本
1.新腔羡建工程,创建C#脚本,名称自拟。
程序清单:
using UnityEngine;
using System.Collections;
public class Button1 : MonoBehaviour {
// 标志符,用于控制敬洞按钮文本
public int flag = 0;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
// GUI函数
void OnGUI () {
// 隐藏按钮
if (flag == 1) {
if (GUI.Button (new Rect (100, 100, 100, 100), "隐藏")) {
flag ++;
flag %= 2;
}
}
// 显示按钮
else {
if (GUI.Button (new Rect (100, 100, 100, 100), "显示")) {
flag ++;
flag %= 2;
}
}
// 显示物体,但不影响按钮
if (flag == 1) {
transform.renderer.enabled = true;
}
// 隐藏物体,但不影响按钮
else {
transform.renderer.enabled = false;
}
}
}
6. unity3d中如何给多个预制体添加同一脚本
2018把prefab加了嵌套,你看到教程估计是旧版本教程;
你可以把所有预设拖到场景中,批量添加组件后,再批量apply(override)