Unity Video Player - unity3d

I am failing at playing a simple video under unity free 2017.1.0f3 personal
I am working on a game and I'd like to play an introduction video at the start of the app. Then move onto the login screen whenever the player clicks it.
I have created a video player object, dragged and dropped the video clip (mp4) into the video clip field of the object.
I then attached the object to the camera. In the script attached to the camera I created a public VideoPlayer that I have populated with the video player object.
I then execute :
void Awake ()
{
VideoPlayer.Play();
}
But nothing happens.
Perhaps it should be executed within a separate thread (coroutine)? I tried but did not work either.
Any help please?

Provided you filled the right settings, if it still doesn't play but you get no error, no freeze, no nothing.
Trying restarting Unity.
(I struggled for 45 min trying to figure out why my video wouldn't play anymore until I restarted Unity and it magically reworked)

did you check if the Video can be played back by unity?
put a quad in front of your camera, put a videocomponent on there, check Loop and playonAwake, hit Play and see if it works.
GameObjectWithPlayerComponentAttatched.GetComponent<VideoPlayer>().Play();
should work fine

Did you assign the RenderTexture?
What I do is create a RenderTexture, then assign it to the videoplayer, then add a Raw Image and then give it the RenderTexture in the Texture field.
You should uncheck play onAwake if you want to play it at a certain point, instead of videoplayer.Play, use videoPlayer.
Prepare and prepareCompleted Play the video.
Like this:
private void Start()
{
videoPlayer.prepareCompleted += VideoPlayer_prepareCompleted;
videoPlayer.Prepare();
}
private void VideoPlayer_prepareCompleted(VideoPlayer source)
{
videoPlayer.Play();
}

Video Player has three modes: Render Texture -- and then you need to select a RenderTexture to render to, Material Override -- and then it needs a mesh to write to its material, and Camera -- then you need to assign a camera and select to render to the near or far plane.
To have the camera feature work automatically, you need to instantiate the VideoPlayer script on the camera object itself.

Follow these steps to play a video using unity's VideoPlayer component:
Create a plane, under 3d Objects.
Add a VideoPlayer component to that plane.
Set render mode as Material Override.
Drag the mesh renderer component of the plane to the videoplayer's renderer field.
Select a video clip to play and enable play on awake.
Press play in the editor window.

Related

Unity how to play video on plane without being affected by lighting

I'm trying to play a video in Unity. I figured it can be done with the VideoPlayer, so I put a VideoPlayer with a RenderTexture on a Plane and created a Material for the Plane that utilises this texture to render the video.
This works fine.
However, the video appears way to bright compared to the original content. You can see this on these pictures:
I found this video https://www.youtube.com/watch?v=KG2aq_CY7pU which looked promising but afterall didn't change the result, the video still appears way too bright.
Here is how I configured the Material
This is how the GO structure is set up
Config of the VideoPlayer
and the config of the Plane
How can I play the video just "normal" like I would see it in VLC Player or any other video player?
P.S. Not sure if it is important but I'm working on an AR Project with Vuforia, where the video is supposed to be played on the image target. But it makes no difference if I play the video on the target or in a scene in Unity, it is the same effect.
Thank you!
Don't use the emission. Instead rather simply use a Shader that is Unlit (basically meaning no shadows, it is always fully illuminated).
In your case you can simply use the built-in shader
Unlit -> Texture and should be fine,

Why does the camera in unity keep falling and losing track of player as if it had gravity enabled?

Hello I was trying to build my first 2D game using a video I saw on youtube. The thing is the camera keeps on moving downwards and away from the game character.
Create a new camera and make sure the view is on your player.
Go to Window -> Package Manager and search for Cinemachine.
Import Cinemachine Package.
Create new Cinemachine 2D camera and set it's Follow to your player gameObject.
More information would also help.

Sphere not rendering in Unity for Google Cardboard

I was following this blog post on how to implement 360 degree video in Unity. At the end, I used ffmpeg to split the video into individual frames as recommended. I also set the first frame as the texture for each material on each sphere. The end result looks like this
bad sphere
The big problem though is that once I build and run it on my phone or just play the scene itself, the sphere simply fails to render. Could this be caused by the texture being the first frame? Or am I making some other sort of error? Many thanks.
Movies in Unity are usually rendered as textures on objects. On mobile the issue becomes that the device only wants to display video in a video player, so the Unity class MovieTexture is not supported.
I am having success circumventing this, and successfully rendering 360-video on the inside of a sphere using a Unity plug-in from the Unity Asset Store called, Easy Movie Texture.
For working on a Mac, here's what I did:
Download the Easy Movie Texture plug-in from the Unity Asset Store
Open the Demo Sphere demo scene from Assets/EasyMovieTexture/Scene
Create a new (empty) Prefab to your project, and drag the Sphere GameObject from the Demo Sphere scene onto the Prefab.
Reopen your Cardboard scene and drag the new videosphere prefab into your hierarchy.
Open your source 360-video in Quicktime
File -> Export -> 720p
Change file extension from '.mov' to '.mp4'
Drag your new mp4 file into your projects Assets/Streaming Assets directory. Note: don't import through the menu system, as this will force Unity to convert to OGG.
On the "Media Player Ctrl" script component of your videosphere GameObject, locate the "Str_File_Name" field and provide the FULL filename of your newly exported video file. Make sure to include the extension as part of the string, "mymovie.mp4".
Pretty sure that's everything. Hope it helps other folks stuck on this problem.
Final note, the video will only render on the device. In the editor you will only see a white texture on the sphere. You have to publish to the device in order to see your awesome 360-video.

unity camera should rotate around static point

When I press the play button for preview, I want the camera to stay static (rotating around a static point) instread of moving around that point in a fixed radius.
I can't find the correct configuration - does anybody know the setting I have to do?
Create a camera object in unity editor (make sure there is only one camera at that depth level).
1.1. If you are using a different camera as well, then delete the audio listener component on the new camera.
Add MouseLook component to your camera (the script comes as default in unity).
2.2 If you cannot find the MouseLook script component, then go to Assets->Import Package -> Characters, and select MouseLook.
Your done, now when you press play you will be able to rotate around with your mouse, but the camera position will be static.

Locate Metaio camera on a fixed position as gui texture + Display one object from the scene through that Metaio camera

1) I am a beginner to using Metaio in Unity, so my question is that is it possible to include two cameras on my scene: one is the main for 3D environment, and another camera (metaio camera) to display objects from Unity on the real world that must be fixed on the top wright corner as UI plane of my game. Something like in the picture below:
2) Also, how to display on the metaio camera view on the scene instead of displaying all scene objects as shown in the image below, although I only attached one cube object under metaio tracker:
Any help or answers gratefully received.
Thanks.
you have to attach an script to that plain and add the code bellow to that script:
void Start() {
WebCamTexture webcamTexture = new WebCamTexture();
renderer.material.mainTexture = webcamTexture;
webcamTexture.Play();
}
if you working for android you have to add camera permission to you manifest.
i think you need to work on it, because it doesnt work simply and you have to play with camera positions and to work very well.
this link shows you camera options that you have in unity:
http://docs.unity3d.com/ScriptReference/WebCamTexture.html