snipt

Ctrl+h for KB shortcuts

C#

TakeCameraScreenshot

// License: Attribution 4.0 International (CC BY 4.0)
/*--- __ECO__ __PLAYMAKER__ __ACTION__ ---*/
// NOTE: For UNITY 5 or UNITY 4+ PRO
// v1.1

using System;
using UnityEngine;
using System.Collections;


namespace HutongGames.PlayMaker.Actions
{
	[ActionCategory(ActionCategory.Application)]
	[Tooltip("Saves a Screenshot from the camera. Save as png or jpg.")]
	[HelpUrl("http://hutonggames.com/playmakerforum/index.php?topic=11308.0")]
	public class TakeCameraScreenshot : FsmStateAction
	{
		[ActionSection("Camera")]
		[RequiredField]
		[CheckForComponent(typeof(Camera))]
		[Tooltip("The GameObject camera to take picture from (Must have a Camera component).")]
		public FsmGameObject gameObject;
		
		[ActionSection("Screen Setup")]
		public FsmInt resWidth;
		public FsmInt resHeight;
		[Tooltip("Automatically get the current resolution - RECOMMENDED")]
		public FsmBool Auto;
		[Tooltip("Use the current resolution - NOT RECOMMENDED")]
		public FsmBool useCurrentRes;
		
		
		[ActionSection("File Path Setup")]
		public FsmString filePath;
		[Tooltip("Use the default MyPictures Folder?")]
		public FsmBool useMypictures;
		[Tooltip("Use the default save Folder?")]
		public FsmBool useDefaultFolder;
		[ActionSection("File Name Setup")]
		public FsmString filename;
		public FsmBool autoNumber;
		
		[ActionSection("Option")]
		public FsmBool inclGui;
		public FsmBool useJpeg;
		[Tooltip("Must be 0 or 16 or 24 - The precision of the render texture's depth buffer in bits / When 0 is used, then no Z buffer is created by a render texture")]
		private int Depth;
		public enum depthSelect  {
			
			_24,
			_16,
			_0,
			
		};
		
		public depthSelect setDepth;

		public FsmBool debugOn;
		
		private int screenshotCount;
		private string screenshotPath;
		private string screenshotFullPath;
		static private RequestHelper _helper;
		
		public override void Reset()
		{
			gameObject = null;
			filename = "";
			autoNumber = false;
			Auto = true;
			useCurrentRes = false;
			resWidth = 2560;
			resHeight = 1440;
			useMypictures = false;
			useDefaultFolder = true;
			inclGui = true;
			useJpeg = false;
			debugOn = false;
		}
		
		public override void OnEnter()
		{
			if (useCurrentRes.Value == true || Auto.Value == true) getResolutions();

			switch(setDepth){
			case depthSelect._0:
					Depth = 0;
					break;

			case depthSelect._16:
				Depth = 16;
				break;

			case depthSelect._24:
				Depth = 24;
				break;
				
			}
			if (inclGui.Value == true){

				_helper = ( new GameObject("RequestHelper") ).AddComponent< RequestHelper >();
				_helper.startEndofFrame(this);

			}
		}
		
		public override void OnLateUpdate()
		{
			if (inclGui.Value == false)takePicture(true);
		}

		public void takePicture (bool state)
		{
			if (state) getPicture();
		}

		public void getPicture()
		{

	
			RenderTexture rt = new RenderTexture(resWidth.Value, resHeight.Value, Depth);
			gameObject.Value.GetComponent<Camera>().targetTexture = rt;
			Texture2D screenShot = new Texture2D(resWidth.Value, resHeight.Value, TextureFormat.RGB24, false);
			gameObject.Value.GetComponent<Camera>().Render();
			RenderTexture.active = rt;
			screenShot.ReadPixels(new Rect(0, 0, resWidth.Value, resHeight.Value), 0, 0);
			screenShot.Apply();
			gameObject.Value.GetComponent<Camera>().targetTexture = null;
			RenderTexture.active = null; 
			UnityEngine.Object.Destroy(rt);
			
			
			if (useMypictures.Value == true && useDefaultFolder.Value  == true){
				Debug.Log("<b>[SaveTextureAsImage]</b><color=#FF9900ff> useMypictures & useDefaultFolder cannot both be true - Please review!</color>", this.Owner);
			}

			if (useMypictures.Value == true)screenshotPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
			else if (!useMypictures.Value && !useDefaultFolder.Value) screenshotPath = filePath.Value;
			else if (!useMypictures.Value && useDefaultFolder.Value == true) screenshotPath = Application.persistentDataPath;
			
			
			if (!useJpeg.Value) screenshotFullPath = screenshotPath + filename.Value + ".png";
			else screenshotFullPath = screenshotPath + filename.Value + ".jpg";
			
			
			if (autoNumber.Value)
			{
				while (System.IO.File.Exists(screenshotFullPath)) 
				{
					screenshotCount++;
					if (!useJpeg.Value)
						screenshotFullPath = screenshotPath + filename.Value + screenshotCount + ".png";
					else screenshotFullPath = screenshotPath + filename.Value + screenshotCount + ".jpg";
				} 
			}
			
			byte[] bytes;
			if (!useJpeg.Value)
				bytes = screenShot.EncodeToPNG();
			else bytes = screenShot.EncodeToJPG();
			
			System.IO.File.WriteAllBytes(screenshotFullPath,bytes);
			
			if (debugOn.Value == true)Debug.Log("File path: "+screenshotFullPath+" File Name: "+filename.Value);

			if (inclGui.Value == true) _helper = null;
			Finish();
		}

		public void getResolutions()
		{
			if (useCurrentRes.Value == true){
				resWidth.Value = Screen.currentResolution.width;
				resHeight.Value = Screen.currentResolution.height;
			}
			else {
				resWidth.Value = Screen.width;
				resHeight.Value = Screen.height;
			}
			return;
		}

//---------------------
		public sealed class RequestHelper : MonoBehaviour {

			TakeCameraScreenshot _action;

			public void startEndofFrame(TakeCameraScreenshot action)
			{
				_action= action;
				StartCoroutine("getPictureIENUM");
				
			}
			
			IEnumerator getPictureIENUM()
			{
				yield return new WaitForEndOfFrame();
				_action.takePicture (true);

				Destroy(this.gameObject);
			
			}


		}
	}
}
https://snipt.net/embed/1aebbc9cda9cb7046f93d54fe2ebc0b4/
/raw/1aebbc9cda9cb7046f93d54fe2ebc0b4/
1aebbc9cda9cb7046f93d54fe2ebc0b4
csharp
C#
207
2019-07-22T01:45:34
True
False
False
Sep 13, 2016 at 11:41 AM
/api/public/snipt/141489/
takecamerascreenshot
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10"> 10</a> <a href="#L-11"> 11</a> <a href="#L-12"> 12</a> <a href="#L-13"> 13</a> <a href="#L-14"> 14</a> <a href="#L-15"> 15</a> <a href="#L-16"> 16</a> <a href="#L-17"> 17</a> <a href="#L-18"> 18</a> <a href="#L-19"> 19</a> <a href="#L-20"> 20</a> <a href="#L-21"> 21</a> <a href="#L-22"> 22</a> <a href="#L-23"> 23</a> <a href="#L-24"> 24</a> <a href="#L-25"> 25</a> <a href="#L-26"> 26</a> <a href="#L-27"> 27</a> <a href="#L-28"> 28</a> <a href="#L-29"> 29</a> <a href="#L-30"> 30</a> <a href="#L-31"> 31</a> <a href="#L-32"> 32</a> <a href="#L-33"> 33</a> <a href="#L-34"> 34</a> <a href="#L-35"> 35</a> <a href="#L-36"> 36</a> <a href="#L-37"> 37</a> <a href="#L-38"> 38</a> <a href="#L-39"> 39</a> <a href="#L-40"> 40</a> <a href="#L-41"> 41</a> <a href="#L-42"> 42</a> <a href="#L-43"> 43</a> <a href="#L-44"> 44</a> <a href="#L-45"> 45</a> <a href="#L-46"> 46</a> <a href="#L-47"> 47</a> <a href="#L-48"> 48</a> <a href="#L-49"> 49</a> <a href="#L-50"> 50</a> <a href="#L-51"> 51</a> <a href="#L-52"> 52</a> <a href="#L-53"> 53</a> <a href="#L-54"> 54</a> <a href="#L-55"> 55</a> <a href="#L-56"> 56</a> <a href="#L-57"> 57</a> <a href="#L-58"> 58</a> <a href="#L-59"> 59</a> <a href="#L-60"> 60</a> <a href="#L-61"> 61</a> <a href="#L-62"> 62</a> <a href="#L-63"> 63</a> <a href="#L-64"> 64</a> <a href="#L-65"> 65</a> <a href="#L-66"> 66</a> <a href="#L-67"> 67</a> <a href="#L-68"> 68</a> <a href="#L-69"> 69</a> <a href="#L-70"> 70</a> <a href="#L-71"> 71</a> <a href="#L-72"> 72</a> <a href="#L-73"> 73</a> <a href="#L-74"> 74</a> <a href="#L-75"> 75</a> <a href="#L-76"> 76</a> <a href="#L-77"> 77</a> <a href="#L-78"> 78</a> <a href="#L-79"> 79</a> <a href="#L-80"> 80</a> <a href="#L-81"> 81</a> <a href="#L-82"> 82</a> <a href="#L-83"> 83</a> <a href="#L-84"> 84</a> <a href="#L-85"> 85</a> <a href="#L-86"> 86</a> <a href="#L-87"> 87</a> <a href="#L-88"> 88</a> <a href="#L-89"> 89</a> <a href="#L-90"> 90</a> <a href="#L-91"> 91</a> <a href="#L-92"> 92</a> <a href="#L-93"> 93</a> <a href="#L-94"> 94</a> <a href="#L-95"> 95</a> <a href="#L-96"> 96</a> <a href="#L-97"> 97</a> <a href="#L-98"> 98</a> <a href="#L-99"> 99</a> <a href="#L-100">100</a> <a href="#L-101">101</a> <a href="#L-102">102</a> <a href="#L-103">103</a> <a href="#L-104">104</a> <a href="#L-105">105</a> <a href="#L-106">106</a> <a href="#L-107">107</a> <a href="#L-108">108</a> <a href="#L-109">109</a> <a href="#L-110">110</a> <a href="#L-111">111</a> <a href="#L-112">112</a> <a href="#L-113">113</a> <a href="#L-114">114</a> <a href="#L-115">115</a> <a href="#L-116">116</a> <a href="#L-117">117</a> <a href="#L-118">118</a> <a href="#L-119">119</a> <a href="#L-120">120</a> <a href="#L-121">121</a> <a href="#L-122">122</a> <a href="#L-123">123</a> <a href="#L-124">124</a> <a href="#L-125">125</a> <a href="#L-126">126</a> <a href="#L-127">127</a> <a href="#L-128">128</a> <a href="#L-129">129</a> <a href="#L-130">130</a> <a href="#L-131">131</a> <a href="#L-132">132</a> <a href="#L-133">133</a> <a href="#L-134">134</a> <a href="#L-135">135</a> <a href="#L-136">136</a> <a href="#L-137">137</a> <a href="#L-138">138</a> <a href="#L-139">139</a> <a href="#L-140">140</a> <a href="#L-141">141</a> <a href="#L-142">142</a> <a href="#L-143">143</a> <a href="#L-144">144</a> <a href="#L-145">145</a> <a href="#L-146">146</a> <a href="#L-147">147</a> <a href="#L-148">148</a> <a href="#L-149">149</a> <a href="#L-150">150</a> <a href="#L-151">151</a> <a href="#L-152">152</a> <a href="#L-153">153</a> <a href="#L-154">154</a> <a href="#L-155">155</a> <a href="#L-156">156</a> <a href="#L-157">157</a> <a href="#L-158">158</a> <a href="#L-159">159</a> <a href="#L-160">160</a> <a href="#L-161">161</a> <a href="#L-162">162</a> <a href="#L-163">163</a> <a href="#L-164">164</a> <a href="#L-165">165</a> <a href="#L-166">166</a> <a href="#L-167">167</a> <a href="#L-168">168</a> <a href="#L-169">169</a> <a href="#L-170">170</a> <a href="#L-171">171</a> <a href="#L-172">172</a> <a href="#L-173">173</a> <a href="#L-174">174</a> <a href="#L-175">175</a> <a href="#L-176">176</a> <a href="#L-177">177</a> <a href="#L-178">178</a> <a href="#L-179">179</a> <a href="#L-180">180</a> <a href="#L-181">181</a> <a href="#L-182">182</a> <a href="#L-183">183</a> <a href="#L-184">184</a> <a href="#L-185">185</a> <a href="#L-186">186</a> <a href="#L-187">187</a> <a href="#L-188">188</a> <a href="#L-189">189</a> <a href="#L-190">190</a> <a href="#L-191">191</a> <a href="#L-192">192</a> <a href="#L-193">193</a> <a href="#L-194">194</a> <a href="#L-195">195</a> <a href="#L-196">196</a> <a href="#L-197">197</a> <a href="#L-198">198</a> <a href="#L-199">199</a> <a href="#L-200">200</a> <a href="#L-201">201</a> <a href="#L-202">202</a> <a href="#L-203">203</a> <a href="#L-204">204</a> <a href="#L-205">205</a> <a href="#L-206">206</a> <a href="#L-207">207</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="c1">// License: Attribution 4.0 International (CC BY 4.0)</span> </span><span id="L-2"><a name="L-2"></a><span class="cm">/*--- __ECO__ __PLAYMAKER__ __ACTION__ ---*/</span> </span><span id="L-3"><a name="L-3"></a><span class="c1">// NOTE: For UNITY 5 or UNITY 4+ PRO</span> </span><span id="L-4"><a name="L-4"></a><span class="c1">// v1.1</span> </span><span id="L-5"><a name="L-5"></a> </span><span id="L-6"><a name="L-6"></a><span class="k">using</span> <span class="nn">System</span><span class="p">;</span> </span><span id="L-7"><a name="L-7"></a><span class="k">using</span> <span class="nn">UnityEngine</span><span class="p">;</span> </span><span id="L-8"><a name="L-8"></a><span class="k">using</span> <span class="nn">System.Collections</span><span class="p">;</span> </span><span id="L-9"><a name="L-9"></a> </span><span id="L-10"><a name="L-10"></a> </span><span id="L-11"><a name="L-11"></a><span class="k">namespace</span> <span class="nn">HutongGames.PlayMaker.Actions</span> </span><span id="L-12"><a name="L-12"></a><span class="p">{</span> </span><span id="L-13"><a name="L-13"></a><span class="na"> [ActionCategory(ActionCategory.Application)]</span> </span><span id="L-14"><a name="L-14"></a><span class="na"> [Tooltip(&quot;Saves a Screenshot from the camera. Save as png or jpg.&quot;)]</span> </span><span id="L-15"><a name="L-15"></a><span class="na"> [HelpUrl(&quot;http://hutonggames.com/playmakerforum/index.php?topic=11308.0&quot;)]</span> </span><span id="L-16"><a name="L-16"></a> <span class="k">public</span> <span class="k">class</span> <span class="nc">TakeCameraScreenshot</span> <span class="p">:</span> <span class="n">FsmStateAction</span> </span><span id="L-17"><a name="L-17"></a> <span class="p">{</span> </span><span id="L-18"><a name="L-18"></a><span class="na"> [ActionSection(&quot;Camera&quot;)]</span> </span><span id="L-19"><a name="L-19"></a><span class="na"> [RequiredField]</span> </span><span id="L-20"><a name="L-20"></a><span class="na"> [CheckForComponent(typeof(Camera))]</span> </span><span id="L-21"><a name="L-21"></a><span class="na"> [Tooltip(&quot;The GameObject camera to take picture from (Must have a Camera component).&quot;)]</span> </span><span id="L-22"><a name="L-22"></a> <span class="k">public</span> <span class="n">FsmGameObject</span> <span class="n">gameObject</span><span class="p">;</span> </span><span id="L-23"><a name="L-23"></a><span class="na"> </span> </span><span id="L-24"><a name="L-24"></a><span class="na"> [ActionSection(&quot;Screen Setup&quot;)]</span> </span><span id="L-25"><a name="L-25"></a> <span class="k">public</span> <span class="n">FsmInt</span> <span class="n">resWidth</span><span class="p">;</span> </span><span id="L-26"><a name="L-26"></a> <span class="k">public</span> <span class="n">FsmInt</span> <span class="n">resHeight</span><span class="p">;</span> </span><span id="L-27"><a name="L-27"></a><span class="na"> [Tooltip(&quot;Automatically get the current resolution - RECOMMENDED&quot;)]</span> </span><span id="L-28"><a name="L-28"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">Auto</span><span class="p">;</span> </span><span id="L-29"><a name="L-29"></a><span class="na"> [Tooltip(&quot;Use the current resolution - NOT RECOMMENDED&quot;)]</span> </span><span id="L-30"><a name="L-30"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">useCurrentRes</span><span class="p">;</span> </span><span id="L-31"><a name="L-31"></a><span class="na"> </span> </span><span id="L-32"><a name="L-32"></a><span class="na"> </span> </span><span id="L-33"><a name="L-33"></a><span class="na"> [ActionSection(&quot;File Path Setup&quot;)]</span> </span><span id="L-34"><a name="L-34"></a> <span class="k">public</span> <span class="n">FsmString</span> <span class="n">filePath</span><span class="p">;</span> </span><span id="L-35"><a name="L-35"></a><span class="na"> [Tooltip(&quot;Use the default MyPictures Folder?&quot;)]</span> </span><span id="L-36"><a name="L-36"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">useMypictures</span><span class="p">;</span> </span><span id="L-37"><a name="L-37"></a><span class="na"> [Tooltip(&quot;Use the default save Folder?&quot;)]</span> </span><span id="L-38"><a name="L-38"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">useDefaultFolder</span><span class="p">;</span> </span><span id="L-39"><a name="L-39"></a><span class="na"> [ActionSection(&quot;File Name Setup&quot;)]</span> </span><span id="L-40"><a name="L-40"></a> <span class="k">public</span> <span class="n">FsmString</span> <span class="n">filename</span><span class="p">;</span> </span><span id="L-41"><a name="L-41"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">autoNumber</span><span class="p">;</span> </span><span id="L-42"><a name="L-42"></a><span class="na"> </span> </span><span id="L-43"><a name="L-43"></a><span class="na"> [ActionSection(&quot;Option&quot;)]</span> </span><span id="L-44"><a name="L-44"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">inclGui</span><span class="p">;</span> </span><span id="L-45"><a name="L-45"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">useJpeg</span><span class="p">;</span> </span><span id="L-46"><a name="L-46"></a><span class="na"> [Tooltip(&quot;Must be 0 or 16 or 24 - The precision of the render texture&#39;s depth buffer in bits / When 0 is used, then no Z buffer is created by a render texture&quot;)]</span> </span><span id="L-47"><a name="L-47"></a> <span class="k">private</span> <span class="kt">int</span> <span class="n">Depth</span><span class="p">;</span> </span><span id="L-48"><a name="L-48"></a> <span class="k">public</span> <span class="k">enum</span> <span class="n">depthSelect</span> <span class="p">{</span> </span><span id="L-49"><a name="L-49"></a> </span><span id="L-50"><a name="L-50"></a> <span class="n">_24</span><span class="p">,</span> </span><span id="L-51"><a name="L-51"></a> <span class="n">_16</span><span class="p">,</span> </span><span id="L-52"><a name="L-52"></a> <span class="n">_0</span><span class="p">,</span> </span><span id="L-53"><a name="L-53"></a> </span><span id="L-54"><a name="L-54"></a> <span class="p">};</span> </span><span id="L-55"><a name="L-55"></a> </span><span id="L-56"><a name="L-56"></a> <span class="k">public</span> <span class="n">depthSelect</span> <span class="n">setDepth</span><span class="p">;</span> </span><span id="L-57"><a name="L-57"></a> </span><span id="L-58"><a name="L-58"></a> <span class="k">public</span> <span class="n">FsmBool</span> <span class="n">debugOn</span><span class="p">;</span> </span><span id="L-59"><a name="L-59"></a> </span><span id="L-60"><a name="L-60"></a> <span class="k">private</span> <span class="kt">int</span> <span class="n">screenshotCount</span><span class="p">;</span> </span><span id="L-61"><a name="L-61"></a> <span class="k">private</span> <span class="kt">string</span> <span class="n">screenshotPath</span><span class="p">;</span> </span><span id="L-62"><a name="L-62"></a> <span class="k">private</span> <span class="kt">string</span> <span class="n">screenshotFullPath</span><span class="p">;</span> </span><span id="L-63"><a name="L-63"></a> <span class="k">static</span> <span class="k">private</span> <span class="n">RequestHelper</span> <span class="n">_helper</span><span class="p">;</span> </span><span id="L-64"><a name="L-64"></a> </span><span id="L-65"><a name="L-65"></a> <span class="k">public</span> <span class="k">override</span> <span class="k">void</span> <span class="nf">Reset</span><span class="p">()</span> </span><span id="L-66"><a name="L-66"></a> <span class="p">{</span> </span><span id="L-67"><a name="L-67"></a> <span class="n">gameObject</span> <span class="p">=</span> <span class="k">null</span><span class="p">;</span> </span><span id="L-68"><a name="L-68"></a> <span class="n">filename</span> <span class="p">=</span> <span class="s">&quot;&quot;</span><span class="p">;</span> </span><span id="L-69"><a name="L-69"></a> <span class="n">autoNumber</span> <span class="p">=</span> <span class="k">false</span><span class="p">;</span> </span><span id="L-70"><a name="L-70"></a> <span class="n">Auto</span> <span class="p">=</span> <span class="k">true</span><span class="p">;</span> </span><span id="L-71"><a name="L-71"></a> <span class="n">useCurrentRes</span> <span class="p">=</span> <span class="k">false</span><span class="p">;</span> </span><span id="L-72"><a name="L-72"></a> <span class="n">resWidth</span> <span class="p">=</span> <span class="m">2560</span><span class="p">;</span> </span><span id="L-73"><a name="L-73"></a> <span class="n">resHeight</span> <span class="p">=</span> <span class="m">1440</span><span class="p">;</span> </span><span id="L-74"><a name="L-74"></a> <span class="n">useMypictures</span> <span class="p">=</span> <span class="k">false</span><span class="p">;</span> </span><span id="L-75"><a name="L-75"></a> <span class="n">useDefaultFolder</span> <span class="p">=</span> <span class="k">true</span><span class="p">;</span> </span><span id="L-76"><a name="L-76"></a> <span class="n">inclGui</span> <span class="p">=</span> <span class="k">true</span><span class="p">;</span> </span><span id="L-77"><a name="L-77"></a> <span class="n">useJpeg</span> <span class="p">=</span> <span class="k">false</span><span class="p">;</span> </span><span id="L-78"><a name="L-78"></a> <span class="n">debugOn</span> <span class="p">=</span> <span class="k">false</span><span class="p">;</span> </span><span id="L-79"><a name="L-79"></a> <span class="p">}</span> </span><span id="L-80"><a name="L-80"></a> </span><span id="L-81"><a name="L-81"></a> <span class="k">public</span> <span class="k">override</span> <span class="k">void</span> <span class="nf">OnEnter</span><span class="p">()</span> </span><span id="L-82"><a name="L-82"></a> <span class="p">{</span> </span><span id="L-83"><a name="L-83"></a> <span class="k">if</span> <span class="p">(</span><span class="n">useCurrentRes</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span> <span class="p">||</span> <span class="n">Auto</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">)</span> <span class="n">getResolutions</span><span class="p">();</span> </span><span id="L-84"><a name="L-84"></a> </span><span id="L-85"><a name="L-85"></a> <span class="k">switch</span><span class="p">(</span><span class="n">setDepth</span><span class="p">){</span> </span><span id="L-86"><a name="L-86"></a> <span class="k">case</span> <span class="n">depthSelect</span><span class="p">.</span><span class="n">_0</span><span class="p">:</span> </span><span id="L-87"><a name="L-87"></a> <span class="n">Depth</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> </span><span id="L-88"><a name="L-88"></a> <span class="k">break</span><span class="p">;</span> </span><span id="L-89"><a name="L-89"></a> </span><span id="L-90"><a name="L-90"></a> <span class="k">case</span> <span class="n">depthSelect</span><span class="p">.</span><span class="n">_16</span><span class="p">:</span> </span><span id="L-91"><a name="L-91"></a> <span class="n">Depth</span> <span class="p">=</span> <span class="m">16</span><span class="p">;</span> </span><span id="L-92"><a name="L-92"></a> <span class="k">break</span><span class="p">;</span> </span><span id="L-93"><a name="L-93"></a> </span><span id="L-94"><a name="L-94"></a> <span class="k">case</span> <span class="n">depthSelect</span><span class="p">.</span><span class="n">_24</span><span class="p">:</span> </span><span id="L-95"><a name="L-95"></a> <span class="n">Depth</span> <span class="p">=</span> <span class="m">24</span><span class="p">;</span> </span><span id="L-96"><a name="L-96"></a> <span class="k">break</span><span class="p">;</span> </span><span id="L-97"><a name="L-97"></a> </span><span id="L-98"><a name="L-98"></a> <span class="p">}</span> </span><span id="L-99"><a name="L-99"></a> <span class="k">if</span> <span class="p">(</span><span class="n">inclGui</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">){</span> </span><span id="L-100"><a name="L-100"></a> </span><span id="L-101"><a name="L-101"></a> <span class="n">_helper</span> <span class="p">=</span> <span class="p">(</span> <span class="k">new</span> <span class="n">GameObject</span><span class="p">(</span><span class="s">&quot;RequestHelper&quot;</span><span class="p">)</span> <span class="p">).</span><span class="n">AddComponent</span><span class="p">&lt;</span> <span class="n">RequestHelper</span> <span class="p">&gt;();</span> </span><span id="L-102"><a name="L-102"></a> <span class="n">_helper</span><span class="p">.</span><span class="n">startEndofFrame</span><span class="p">(</span><span class="k">this</span><span class="p">);</span> </span><span id="L-103"><a name="L-103"></a> </span><span id="L-104"><a name="L-104"></a> <span class="p">}</span> </span><span id="L-105"><a name="L-105"></a> <span class="p">}</span> </span><span id="L-106"><a name="L-106"></a> </span><span id="L-107"><a name="L-107"></a> <span class="k">public</span> <span class="k">override</span> <span class="k">void</span> <span class="nf">OnLateUpdate</span><span class="p">()</span> </span><span id="L-108"><a name="L-108"></a> <span class="p">{</span> </span><span id="L-109"><a name="L-109"></a> <span class="k">if</span> <span class="p">(</span><span class="n">inclGui</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">false</span><span class="p">)</span><span class="n">takePicture</span><span class="p">(</span><span class="k">true</span><span class="p">);</span> </span><span id="L-110"><a name="L-110"></a> <span class="p">}</span> </span><span id="L-111"><a name="L-111"></a> </span><span id="L-112"><a name="L-112"></a> <span class="k">public</span> <span class="k">void</span> <span class="nf">takePicture</span> <span class="p">(</span><span class="kt">bool</span> <span class="n">state</span><span class="p">)</span> </span><span id="L-113"><a name="L-113"></a> <span class="p">{</span> </span><span id="L-114"><a name="L-114"></a> <span class="k">if</span> <span class="p">(</span><span class="n">state</span><span class="p">)</span> <span class="n">getPicture</span><span class="p">();</span> </span><span id="L-115"><a name="L-115"></a> <span class="p">}</span> </span><span id="L-116"><a name="L-116"></a> </span><span id="L-117"><a name="L-117"></a> <span class="k">public</span> <span class="k">void</span> <span class="nf">getPicture</span><span class="p">()</span> </span><span id="L-118"><a name="L-118"></a> <span class="p">{</span> </span><span id="L-119"><a name="L-119"></a> </span><span id="L-120"><a name="L-120"></a> </span><span id="L-121"><a name="L-121"></a> <span class="n">RenderTexture</span> <span class="n">rt</span> <span class="p">=</span> <span class="k">new</span> <span class="n">RenderTexture</span><span class="p">(</span><span class="n">resWidth</span><span class="p">.</span><span class="n">Value</span><span class="p">,</span> <span class="n">resHeight</span><span class="p">.</span><span class="n">Value</span><span class="p">,</span> <span class="n">Depth</span><span class="p">);</span> </span><span id="L-122"><a name="L-122"></a> <span class="n">gameObject</span><span class="p">.</span><span class="n">Value</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">Camera</span><span class="p">&gt;().</span><span class="n">targetTexture</span> <span class="p">=</span> <span class="n">rt</span><span class="p">;</span> </span><span id="L-123"><a name="L-123"></a> <span class="n">Texture2D</span> <span class="n">screenShot</span> <span class="p">=</span> <span class="k">new</span> <span class="n">Texture2D</span><span class="p">(</span><span class="n">resWidth</span><span class="p">.</span><span class="n">Value</span><span class="p">,</span> <span class="n">resHeight</span><span class="p">.</span><span class="n">Value</span><span class="p">,</span> <span class="n">TextureFormat</span><span class="p">.</span><span class="n">RGB24</span><span class="p">,</span> <span class="k">false</span><span class="p">);</span> </span><span id="L-124"><a name="L-124"></a> <span class="n">gameObject</span><span class="p">.</span><span class="n">Value</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">Camera</span><span class="p">&gt;().</span><span class="n">Render</span><span class="p">();</span> </span><span id="L-125"><a name="L-125"></a> <span class="n">RenderTexture</span><span class="p">.</span><span class="n">active</span> <span class="p">=</span> <span class="n">rt</span><span class="p">;</span> </span><span id="L-126"><a name="L-126"></a> <span class="n">screenShot</span><span class="p">.</span><span class="n">ReadPixels</span><span class="p">(</span><span class="k">new</span> <span class="n">Rect</span><span class="p">(</span><span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="n">resWidth</span><span class="p">.</span><span class="n">Value</span><span class="p">,</span> <span class="n">resHeight</span><span class="p">.</span><span class="n">Value</span><span class="p">),</span> <span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">);</span> </span><span id="L-127"><a name="L-127"></a> <span class="n">screenShot</span><span class="p">.</span><span class="n">Apply</span><span class="p">();</span> </span><span id="L-128"><a name="L-128"></a> <span class="n">gameObject</span><span class="p">.</span><span class="n">Value</span><span class="p">.</span><span class="n">GetComponent</span><span class="p">&lt;</span><span class="n">Camera</span><span class="p">&gt;().</span><span class="n">targetTexture</span> <span class="p">=</span> <span class="k">null</span><span class="p">;</span> </span><span id="L-129"><a name="L-129"></a> <span class="n">RenderTexture</span><span class="p">.</span><span class="n">active</span> <span class="p">=</span> <span class="k">null</span><span class="p">;</span> </span><span id="L-130"><a name="L-130"></a> <span class="n">UnityEngine</span><span class="p">.</span><span class="n">Object</span><span class="p">.</span><span class="n">Destroy</span><span class="p">(</span><span class="n">rt</span><span class="p">);</span> </span><span id="L-131"><a name="L-131"></a> </span><span id="L-132"><a name="L-132"></a> </span><span id="L-133"><a name="L-133"></a> <span class="k">if</span> <span class="p">(</span><span class="n">useMypictures</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span> <span class="p">&amp;&amp;</span> <span class="n">useDefaultFolder</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">){</span> </span><span id="L-134"><a name="L-134"></a> <span class="n">Debug</span><span class="p">.</span><span class="n">Log</span><span class="p">(</span><span class="s">&quot;&lt;b&gt;[SaveTextureAsImage]&lt;/b&gt;&lt;color=#FF9900ff&gt; useMypictures &amp; useDefaultFolder cannot both be true - Please review!&lt;/color&gt;&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="n">Owner</span><span class="p">);</span> </span><span id="L-135"><a name="L-135"></a> <span class="p">}</span> </span><span id="L-136"><a name="L-136"></a> </span><span id="L-137"><a name="L-137"></a> <span class="k">if</span> <span class="p">(</span><span class="n">useMypictures</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">)</span><span class="n">screenshotPath</span> <span class="p">=</span> <span class="n">Environment</span><span class="p">.</span><span class="n">GetFolderPath</span><span class="p">(</span><span class="n">Environment</span><span class="p">.</span><span class="n">SpecialFolder</span><span class="p">.</span><span class="n">MyPictures</span><span class="p">)+</span><span class="s">&quot;/&quot;</span><span class="p">;</span> </span><span id="L-138"><a name="L-138"></a> <span class="k">else</span> <span class="nf">if</span> <span class="p">(!</span><span class="n">useMypictures</span><span class="p">.</span><span class="n">Value</span> <span class="p">&amp;&amp;</span> <span class="p">!</span><span class="n">useDefaultFolder</span><span class="p">.</span><span class="n">Value</span><span class="p">)</span> <span class="n">screenshotPath</span> <span class="p">=</span> <span class="n">filePath</span><span class="p">.</span><span class="n">Value</span><span class="p">;</span> </span><span id="L-139"><a name="L-139"></a> <span class="k">else</span> <span class="nf">if</span> <span class="p">(!</span><span class="n">useMypictures</span><span class="p">.</span><span class="n">Value</span> <span class="p">&amp;&amp;</span> <span class="n">useDefaultFolder</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">)</span> <span class="n">screenshotPath</span> <span class="p">=</span> <span class="n">Application</span><span class="p">.</span><span class="n">persistentDataPath</span><span class="p">;</span> </span><span id="L-140"><a name="L-140"></a> </span><span id="L-141"><a name="L-141"></a> </span><span id="L-142"><a name="L-142"></a> <span class="k">if</span> <span class="p">(!</span><span class="n">useJpeg</span><span class="p">.</span><span class="n">Value</span><span class="p">)</span> <span class="n">screenshotFullPath</span> <span class="p">=</span> <span class="n">screenshotPath</span> <span class="p">+</span> <span class="n">filename</span><span class="p">.</span><span class="n">Value</span> <span class="p">+</span> <span class="s">&quot;.png&quot;</span><span class="p">;</span> </span><span id="L-143"><a name="L-143"></a> <span class="k">else</span> <span class="n">screenshotFullPath</span> <span class="p">=</span> <span class="n">screenshotPath</span> <span class="p">+</span> <span class="n">filename</span><span class="p">.</span><span class="n">Value</span> <span class="p">+</span> <span class="s">&quot;.jpg&quot;</span><span class="p">;</span> </span><span id="L-144"><a name="L-144"></a> </span><span id="L-145"><a name="L-145"></a> </span><span id="L-146"><a name="L-146"></a> <span class="k">if</span> <span class="p">(</span><span class="n">autoNumber</span><span class="p">.</span><span class="n">Value</span><span class="p">)</span> </span><span id="L-147"><a name="L-147"></a> <span class="p">{</span> </span><span id="L-148"><a name="L-148"></a> <span class="k">while</span> <span class="p">(</span><span class="n">System</span><span class="p">.</span><span class="n">IO</span><span class="p">.</span><span class="n">File</span><span class="p">.</span><span class="n">Exists</span><span class="p">(</span><span class="n">screenshotFullPath</span><span class="p">))</span> </span><span id="L-149"><a name="L-149"></a> <span class="p">{</span> </span><span id="L-150"><a name="L-150"></a> <span class="n">screenshotCount</span><span class="p">++;</span> </span><span id="L-151"><a name="L-151"></a> <span class="k">if</span> <span class="p">(!</span><span class="n">useJpeg</span><span class="p">.</span><span class="n">Value</span><span class="p">)</span> </span><span id="L-152"><a name="L-152"></a> <span class="n">screenshotFullPath</span> <span class="p">=</span> <span class="n">screenshotPath</span> <span class="p">+</span> <span class="n">filename</span><span class="p">.</span><span class="n">Value</span> <span class="p">+</span> <span class="n">screenshotCount</span> <span class="p">+</span> <span class="s">&quot;.png&quot;</span><span class="p">;</span> </span><span id="L-153"><a name="L-153"></a> <span class="k">else</span> <span class="n">screenshotFullPath</span> <span class="p">=</span> <span class="n">screenshotPath</span> <span class="p">+</span> <span class="n">filename</span><span class="p">.</span><span class="n">Value</span> <span class="p">+</span> <span class="n">screenshotCount</span> <span class="p">+</span> <span class="s">&quot;.jpg&quot;</span><span class="p">;</span> </span><span id="L-154"><a name="L-154"></a> <span class="p">}</span> </span><span id="L-155"><a name="L-155"></a> <span class="p">}</span> </span><span id="L-156"><a name="L-156"></a> </span><span id="L-157"><a name="L-157"></a> <span class="kt">byte</span><span class="p">[]</span> <span class="n">bytes</span><span class="p">;</span> </span><span id="L-158"><a name="L-158"></a> <span class="k">if</span> <span class="p">(!</span><span class="n">useJpeg</span><span class="p">.</span><span class="n">Value</span><span class="p">)</span> </span><span id="L-159"><a name="L-159"></a> <span class="n">bytes</span> <span class="p">=</span> <span class="n">screenShot</span><span class="p">.</span><span class="n">EncodeToPNG</span><span class="p">();</span> </span><span id="L-160"><a name="L-160"></a> <span class="k">else</span> <span class="n">bytes</span> <span class="p">=</span> <span class="n">screenShot</span><span class="p">.</span><span class="n">EncodeToJPG</span><span class="p">();</span> </span><span id="L-161"><a name="L-161"></a> </span><span id="L-162"><a name="L-162"></a> <span class="n">System</span><span class="p">.</span><span class="n">IO</span><span class="p">.</span><span class="n">File</span><span class="p">.</span><span class="n">WriteAllBytes</span><span class="p">(</span><span class="n">screenshotFullPath</span><span class="p">,</span><span class="n">bytes</span><span class="p">);</span> </span><span id="L-163"><a name="L-163"></a> </span><span id="L-164"><a name="L-164"></a> <span class="k">if</span> <span class="p">(</span><span class="n">debugOn</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">)</span><span class="n">Debug</span><span class="p">.</span><span class="n">Log</span><span class="p">(</span><span class="s">&quot;File path: &quot;</span><span class="p">+</span><span class="n">screenshotFullPath</span><span class="p">+</span><span class="s">&quot; File Name: &quot;</span><span class="p">+</span><span class="n">filename</span><span class="p">.</span><span class="n">Value</span><span class="p">);</span> </span><span id="L-165"><a name="L-165"></a> </span><span id="L-166"><a name="L-166"></a> <span class="k">if</span> <span class="p">(</span><span class="n">inclGui</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">)</span> <span class="n">_helper</span> <span class="p">=</span> <span class="k">null</span><span class="p">;</span> </span><span id="L-167"><a name="L-167"></a> <span class="n">Finish</span><span class="p">();</span> </span><span id="L-168"><a name="L-168"></a> <span class="p">}</span> </span><span id="L-169"><a name="L-169"></a> </span><span id="L-170"><a name="L-170"></a> <span class="k">public</span> <span class="k">void</span> <span class="nf">getResolutions</span><span class="p">()</span> </span><span id="L-171"><a name="L-171"></a> <span class="p">{</span> </span><span id="L-172"><a name="L-172"></a> <span class="k">if</span> <span class="p">(</span><span class="n">useCurrentRes</span><span class="p">.</span><span class="n">Value</span> <span class="p">==</span> <span class="k">true</span><span class="p">){</span> </span><span id="L-173"><a name="L-173"></a> <span class="n">resWidth</span><span class="p">.</span><span class="n">Value</span> <span class="p">=</span> <span class="n">Screen</span><span class="p">.</span><span class="n">currentResolution</span><span class="p">.</span><span class="n">width</span><span class="p">;</span> </span><span id="L-174"><a name="L-174"></a> <span class="n">resHeight</span><span class="p">.</span><span class="n">Value</span> <span class="p">=</span> <span class="n">Screen</span><span class="p">.</span><span class="n">currentResolution</span><span class="p">.</span><span class="n">height</span><span class="p">;</span> </span><span id="L-175"><a name="L-175"></a> <span class="p">}</span> </span><span id="L-176"><a name="L-176"></a> <span class="k">else</span> <span class="p">{</span> </span><span id="L-177"><a name="L-177"></a> <span class="n">resWidth</span><span class="p">.</span><span class="n">Value</span> <span class="p">=</span> <span class="n">Screen</span><span class="p">.</span><span class="n">width</span><span class="p">;</span> </span><span id="L-178"><a name="L-178"></a> <span class="n">resHeight</span><span class="p">.</span><span class="n">Value</span> <span class="p">=</span> <span class="n">Screen</span><span class="p">.</span><span class="n">height</span><span class="p">;</span> </span><span id="L-179"><a name="L-179"></a> <span class="p">}</span> </span><span id="L-180"><a name="L-180"></a> <span class="k">return</span><span class="p">;</span> </span><span id="L-181"><a name="L-181"></a> <span class="p">}</span> </span><span id="L-182"><a name="L-182"></a> </span><span id="L-183"><a name="L-183"></a><span class="c1">//---------------------</span> </span><span id="L-184"><a name="L-184"></a> <span class="k">public</span> <span class="k">sealed</span> <span class="k">class</span> <span class="nc">RequestHelper</span> <span class="p">:</span> <span class="n">MonoBehaviour</span> <span class="p">{</span> </span><span id="L-185"><a name="L-185"></a> </span><span id="L-186"><a name="L-186"></a> <span class="n">TakeCameraScreenshot</span> <span class="n">_action</span><span class="p">;</span> </span><span id="L-187"><a name="L-187"></a> </span><span id="L-188"><a name="L-188"></a> <span class="k">public</span> <span class="k">void</span> <span class="nf">startEndofFrame</span><span class="p">(</span><span class="n">TakeCameraScreenshot</span> <span class="n">action</span><span class="p">)</span> </span><span id="L-189"><a name="L-189"></a> <span class="p">{</span> </span><span id="L-190"><a name="L-190"></a> <span class="n">_action</span><span class="p">=</span> <span class="n">action</span><span class="p">;</span> </span><span id="L-191"><a name="L-191"></a> <span class="n">StartCoroutine</span><span class="p">(</span><span class="s">&quot;getPictureIENUM&quot;</span><span class="p">);</span> </span><span id="L-192"><a name="L-192"></a> </span><span id="L-193"><a name="L-193"></a> <span class="p">}</span> </span><span id="L-194"><a name="L-194"></a> </span><span id="L-195"><a name="L-195"></a> <span class="n">IEnumerator</span> <span class="nf">getPictureIENUM</span><span class="p">()</span> </span><span id="L-196"><a name="L-196"></a> <span class="p">{</span> </span><span id="L-197"><a name="L-197"></a> <span class="k">yield</span> <span class="k">return</span> <span class="k">new</span> <span class="nf">WaitForEndOfFrame</span><span class="p">();</span> </span><span id="L-198"><a name="L-198"></a> <span class="n">_action</span><span class="p">.</span><span class="n">takePicture</span> <span class="p">(</span><span class="k">true</span><span class="p">);</span> </span><span id="L-199"><a name="L-199"></a> </span><span id="L-200"><a name="L-200"></a> <span class="n">Destroy</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">gameObject</span><span class="p">);</span> </span><span id="L-201"><a name="L-201"></a> </span><span id="L-202"><a name="L-202"></a> <span class="p">}</span> </span><span id="L-203"><a name="L-203"></a> </span><span id="L-204"><a name="L-204"></a> </span><span id="L-205"><a name="L-205"></a> <span class="p">}</span> </span><span id="L-206"><a name="L-206"></a> <span class="p">}</span> </span><span id="L-207"><a name="L-207"></a><span class="p">}</span> </span></pre></div> </td></tr></table>
ActionCategory.Application, Ecosystem, PlayMaker, Unity5
--- 
+++ 
@@ -161,7 +161,7 @@
 			
 			System.IO.File.WriteAllBytes(screenshotFullPath,bytes);
 			
-			if (debugOn.Value == true)Debug.Log("<b><color=##37BC61>File path: "+screenshotFullPath+" </b></color>File Name:"+filename.Value);
+			if (debugOn.Value == true)Debug.Log("File path: "+screenshotFullPath+" File Name: "+filename.Value);
 
 			if (inclGui.Value == true) _helper = null;
 			Finish();
--- 
+++ 
@@ -161,7 +161,7 @@
 			
 			System.IO.File.WriteAllBytes(screenshotFullPath,bytes);
 			
-			if (debugOn.Value == true)Debug.Log("<b><color=##37BC61>File path: "+screenshotFullPath+" File Name: </b></color>"+filename.Value);
+			if (debugOn.Value == true)Debug.Log("<b><color=##37BC61>File path: "+screenshotFullPath+" </b></color>File Name:"+filename.Value);
 
 			if (inclGui.Value == true) _helper = null;
 			Finish();
--- 
+++ 
@@ -134,9 +134,9 @@
 				Debug.Log("<b>[SaveTextureAsImage]</b><color=#FF9900ff> useMypictures & useDefaultFolder cannot both be true - Please review!</color>", this.Owner);
 			}
 
-			if (useMypictures.Value == true)saveTexPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
-			else if (!useMypictures.Value && !useDefaultFolder.Value) saveTexPath = filePath.Value;
-			else if (!useMypictures.Value && useDefaultFolder.Value == true) saveTexPath = Application.persistentDataPath;
+			if (useMypictures.Value == true)screenshotPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
+			else if (!useMypictures.Value && !useDefaultFolder.Value) screenshotPath = filePath.Value;
+			else if (!useMypictures.Value && useDefaultFolder.Value == true) screenshotPath = Application.persistentDataPath;
 			
 			
 			if (!useJpeg.Value) screenshotFullPath = screenshotPath + filename.Value + ".png";
@@ -161,7 +161,7 @@
 			
 			System.IO.File.WriteAllBytes(screenshotFullPath,bytes);
 			
-			if (debugOn.Value == true)Debug.Log("File path: "+screenshotFullPath+" File Name: "+filename.Value);
+			if (debugOn.Value == true)Debug.Log("<b><color=##37BC61>File path: "+screenshotFullPath+" File Name: </b></color>"+filename.Value);
 
 			if (inclGui.Value == true) _helper = null;
 			Finish();
--- 
+++ 
@@ -130,9 +130,14 @@
 			UnityEngine.Object.Destroy(rt);
 			
 			
-			if (useMypictures.Value == true)screenshotPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
-			else if (!useMypictures.Value || !useDefaultFolder.Value || filePath.Value != "" || filePath.Value != null) screenshotPath = filePath.Value;
-			else if (!useMypictures.Value || useDefaultFolder.Value == true || filePath.Value == "" || filePath.Value == null) screenshotPath = Application.persistentDataPath;
+			if (useMypictures.Value == true && useDefaultFolder.Value  == true){
+				Debug.Log("<b>[SaveTextureAsImage]</b><color=#FF9900ff> useMypictures & useDefaultFolder cannot both be true - Please review!</color>", this.Owner);
+			}
+
+			if (useMypictures.Value == true)saveTexPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
+			else if (!useMypictures.Value && !useDefaultFolder.Value) saveTexPath = filePath.Value;
+			else if (!useMypictures.Value && useDefaultFolder.Value == true) saveTexPath = Application.persistentDataPath;
+			
 			
 			if (!useJpeg.Value) screenshotFullPath = screenshotPath + filename.Value + ".png";
 			else screenshotFullPath = screenshotPath + filename.Value + ".jpg";
--- 
+++ 
@@ -1,6 +1,5 @@
 // License: Attribution 4.0 International (CC BY 4.0)
-/*--- __ECO__ __ACTION__ ---*/
-/*--- __PLAYMAKER__ ---*/
+/*--- __ECO__ __PLAYMAKER__ __ACTION__ ---*/
 // NOTE: For UNITY 5 or UNITY 4+ PRO
 // v1.1
 
--- 
+++ 
@@ -48,9 +48,9 @@
 		private int Depth;
 		public enum depthSelect  {
 			
+			_24,
+			_16,
 			_0,
-			_16,
-			_24
 			
 		};
 		
@@ -125,6 +125,7 @@
 			gameObject.Value.GetComponent<Camera>().Render();
 			RenderTexture.active = rt;
 			screenShot.ReadPixels(new Rect(0, 0, resWidth.Value, resHeight.Value), 0, 0);
+			screenShot.Apply();
 			gameObject.Value.GetComponent<Camera>().targetTexture = null;
 			RenderTexture.active = null; 
 			UnityEngine.Object.Destroy(rt);
--- 
+++ 
@@ -2,11 +2,12 @@
 /*--- __ECO__ __ACTION__ ---*/
 /*--- __PLAYMAKER__ ---*/
 // NOTE: For UNITY 5 or UNITY 4+ PRO
+// v1.1
 
 using System;
 using UnityEngine;
 using System.Collections;
-using HutongGames.PlayMaker;
+
 
 namespace HutongGames.PlayMaker.Actions
 {
@@ -28,7 +29,7 @@
 		public FsmBool Auto;
 		[Tooltip("Use the current resolution - NOT RECOMMENDED")]
 		public FsmBool useCurrentRes;
-
+		
 		
 		[ActionSection("File Path Setup")]
 		public FsmString filePath;
@@ -41,14 +42,26 @@
 		public FsmBool autoNumber;
 		
 		[ActionSection("Option")]
+		public FsmBool inclGui;
 		public FsmBool useJpeg;
 		[Tooltip("Must be 0 or 16 or 24 - The precision of the render texture's depth buffer in bits / When 0 is used, then no Z buffer is created by a render texture")]
-		public FsmInt Depth;
+		private int Depth;
+		public enum depthSelect  {
+			
+			_0,
+			_16,
+			_24
+			
+		};
+		
+		public depthSelect setDepth;
+
 		public FsmBool debugOn;
 		
 		private int screenshotCount;
 		private string screenshotPath;
 		private string screenshotFullPath;
+		static private RequestHelper _helper;
 		
 		public override void Reset()
 		{
@@ -61,27 +74,52 @@
 			resHeight = 1440;
 			useMypictures = false;
 			useDefaultFolder = true;
+			inclGui = true;
 			useJpeg = false;
-			Depth = 24;
 			debugOn = false;
 		}
 		
 		public override void OnEnter()
 		{
 			if (useCurrentRes.Value == true || Auto.Value == true) getResolutions();
+
+			switch(setDepth){
+			case depthSelect._0:
+					Depth = 0;
+					break;
+
+			case depthSelect._16:
+				Depth = 16;
+				break;
+
+			case depthSelect._24:
+				Depth = 24;
+				break;
+				
+			}
+			if (inclGui.Value == true){
+
+				_helper = ( new GameObject("RequestHelper") ).AddComponent< RequestHelper >();
+				_helper.startEndofFrame(this);
+
+			}
 		}
 		
 		public override void OnLateUpdate()
 		{
-			int depthBuffer = Depth.Value;
-			bool _isNullOrEmpty = depthBuffer == 0 || depthBuffer == 16 || depthBuffer == 24;
-			if (!_isNullOrEmpty) {
-				Debug.LogWarning ("Error with depth."+Depth.Value+" :Must be 0 or 16 or 24"); 
+			if (inclGui.Value == false)takePicture(true);
+		}
+
+		public void takePicture (bool state)
+		{
+			if (state) getPicture();
+		}
+
+		public void getPicture()
+		{
+
 	
-			}
-
-			
-			RenderTexture rt = new RenderTexture(resWidth.Value, resHeight.Value, Depth.Value);
+			RenderTexture rt = new RenderTexture(resWidth.Value, resHeight.Value, Depth);
 			gameObject.Value.GetComponent<Camera>().targetTexture = rt;
 			Texture2D screenShot = new Texture2D(resWidth.Value, resHeight.Value, TextureFormat.RGB24, false);
 			gameObject.Value.GetComponent<Camera>().Render();
@@ -89,7 +127,7 @@
 			screenShot.ReadPixels(new Rect(0, 0, resWidth.Value, resHeight.Value), 0, 0);
 			gameObject.Value.GetComponent<Camera>().targetTexture = null;
 			RenderTexture.active = null; 
-            UnityEngine.Object.Destroy(rt);
+			UnityEngine.Object.Destroy(rt);
 			
 			
 			if (useMypictures.Value == true)screenshotPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
@@ -119,24 +157,46 @@
 			System.IO.File.WriteAllBytes(screenshotFullPath,bytes);
 			
 			if (debugOn.Value == true)Debug.Log("File path: "+screenshotFullPath+" File Name: "+filename.Value);
-			
+
+			if (inclGui.Value == true) _helper = null;
 			Finish();
 		}
-		
-		
+
 		public void getResolutions()
 		{
 			if (useCurrentRes.Value == true){
-			resWidth.Value = Screen.currentResolution.width;
-			resHeight.Value = Screen.currentResolution.height;
-		}
+				resWidth.Value = Screen.currentResolution.width;
+				resHeight.Value = Screen.currentResolution.height;
+			}
 			else {
 				resWidth.Value = Screen.width;
 				resHeight.Value = Screen.height;
 			}
 			return;
 		}
-		
-		
+
+//---------------------
+		public sealed class RequestHelper : MonoBehaviour {
+
+			TakeCameraScreenshot _action;
+
+			public void startEndofFrame(TakeCameraScreenshot action)
+			{
+				_action= action;
+				StartCoroutine("getPictureIENUM");
+				
+			}
+			
+			IEnumerator getPictureIENUM()
+			{
+				yield return new WaitForEndOfFrame();
+				_action.takePicture (true);
+
+				Destroy(this.gameObject);
+			
+			}
+
+
+		}
 	}
 }
--- 
+++ 
@@ -89,6 +89,7 @@
 			screenShot.ReadPixels(new Rect(0, 0, resWidth.Value, resHeight.Value), 0, 0);
 			gameObject.Value.GetComponent<Camera>().targetTexture = null;
 			RenderTexture.active = null; 
+            UnityEngine.Object.Destroy(rt);
 			
 			
 			if (useMypictures.Value == true)screenshotPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
--- 
+++ 
@@ -89,7 +89,7 @@
 			screenShot.ReadPixels(new Rect(0, 0, resWidth.Value, resHeight.Value), 0, 0);
 			gameObject.Value.GetComponent<Camera>().targetTexture = null;
 			RenderTexture.active = null; 
-			//Destroy(rt);
+			
 			
 			if (useMypictures.Value == true)screenshotPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
 			else if (!useMypictures.Value || !useDefaultFolder.Value || filePath.Value != "" || filePath.Value != null) screenshotPath = filePath.Value;
--- 
+++ 
@@ -11,7 +11,7 @@
 namespace HutongGames.PlayMaker.Actions
 {
 	[ActionCategory(ActionCategory.Application)]
-	[Tooltip("Saves a Screenshot to the users MyPictures folder. TIP: Can be useful for automated testing and debugging.")]
+	[Tooltip("Saves a Screenshot from the camera. Save as png or jpg.")]
 	[HelpUrl("http://hutonggames.com/playmakerforum/index.php?topic=11308.0")]
 	public class TakeCameraScreenshot : FsmStateAction
 	{
--- 
+++ 
@@ -12,7 +12,7 @@
 {
 	[ActionCategory(ActionCategory.Application)]
 	[Tooltip("Saves a Screenshot to the users MyPictures folder. TIP: Can be useful for automated testing and debugging.")]
-	[HelpUrl("")]
+	[HelpUrl("http://hutonggames.com/playmakerforum/index.php?topic=11308.0")]
 	public class TakeCameraScreenshot : FsmStateAction
 	{
 		[ActionSection("Camera")]
--- 
+++ 
@@ -0,0 +1,141 @@
+// License: Attribution 4.0 International (CC BY 4.0)
+/*--- __ECO__ __ACTION__ ---*/
+/*--- __PLAYMAKER__ ---*/
+// NOTE: For UNITY 5 or UNITY 4+ PRO
+
+using System;
+using UnityEngine;
+using System.Collections;
+using HutongGames.PlayMaker;
+
+namespace HutongGames.PlayMaker.Actions
+{
+	[ActionCategory(ActionCategory.Application)]
+	[Tooltip("Saves a Screenshot to the users MyPictures folder. TIP: Can be useful for automated testing and debugging.")]
+	[HelpUrl("")]
+	public class TakeCameraScreenshot : FsmStateAction
+	{
+		[ActionSection("Camera")]
+		[RequiredField]
+		[CheckForComponent(typeof(Camera))]
+		[Tooltip("The GameObject camera to take picture from (Must have a Camera component).")]
+		public FsmGameObject gameObject;
+		
+		[ActionSection("Screen Setup")]
+		public FsmInt resWidth;
+		public FsmInt resHeight;
+		[Tooltip("Automatically get the current resolution - RECOMMENDED")]
+		public FsmBool Auto;
+		[Tooltip("Use the current resolution - NOT RECOMMENDED")]
+		public FsmBool useCurrentRes;
+
+		
+		[ActionSection("File Path Setup")]
+		public FsmString filePath;
+		[Tooltip("Use the default MyPictures Folder?")]
+		public FsmBool useMypictures;
+		[Tooltip("Use the default save Folder?")]
+		public FsmBool useDefaultFolder;
+		[ActionSection("File Name Setup")]
+		public FsmString filename;
+		public FsmBool autoNumber;
+		
+		[ActionSection("Option")]
+		public FsmBool useJpeg;
+		[Tooltip("Must be 0 or 16 or 24 - The precision of the render texture's depth buffer in bits / When 0 is used, then no Z buffer is created by a render texture")]
+		public FsmInt Depth;
+		public FsmBool debugOn;
+		
+		private int screenshotCount;
+		private string screenshotPath;
+		private string screenshotFullPath;
+		
+		public override void Reset()
+		{
+			gameObject = null;
+			filename = "";
+			autoNumber = false;
+			Auto = true;
+			useCurrentRes = false;
+			resWidth = 2560;
+			resHeight = 1440;
+			useMypictures = false;
+			useDefaultFolder = true;
+			useJpeg = false;
+			Depth = 24;
+			debugOn = false;
+		}
+		
+		public override void OnEnter()
+		{
+			if (useCurrentRes.Value == true || Auto.Value == true) getResolutions();
+		}
+		
+		public override void OnLateUpdate()
+		{
+			int depthBuffer = Depth.Value;
+			bool _isNullOrEmpty = depthBuffer == 0 || depthBuffer == 16 || depthBuffer == 24;
+			if (!_isNullOrEmpty) {
+				Debug.LogWarning ("Error with depth."+Depth.Value+" :Must be 0 or 16 or 24"); 
+	
+			}
+
+			
+			RenderTexture rt = new RenderTexture(resWidth.Value, resHeight.Value, Depth.Value);
+			gameObject.Value.GetComponent<Camera>().targetTexture = rt;
+			Texture2D screenShot = new Texture2D(resWidth.Value, resHeight.Value, TextureFormat.RGB24, false);
+			gameObject.Value.GetComponent<Camera>().Render();
+			RenderTexture.active = rt;
+			screenShot.ReadPixels(new Rect(0, 0, resWidth.Value, resHeight.Value), 0, 0);
+			gameObject.Value.GetComponent<Camera>().targetTexture = null;
+			RenderTexture.active = null; 
+			//Destroy(rt);
+			
+			if (useMypictures.Value == true)screenshotPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)+"/";
+			else if (!useMypictures.Value || !useDefaultFolder.Value || filePath.Value != "" || filePath.Value != null) screenshotPath = filePath.Value;
+			else if (!useMypictures.Value || useDefaultFolder.Value == true || filePath.Value == "" || filePath.Value == null) screenshotPath = Application.persistentDataPath;
+			
+			if (!useJpeg.Value) screenshotFullPath = screenshotPath + filename.Value + ".png";
+			else screenshotFullPath = screenshotPath + filename.Value + ".jpg";
+			
+			
+			if (autoNumber.Value)
+			{
+				while (System.IO.File.Exists(screenshotFullPath)) 
+				{
+					screenshotCount++;
+					if (!useJpeg.Value)
+						screenshotFullPath = screenshotPath + filename.Value + screenshotCount + ".png";
+					else screenshotFullPath = screenshotPath + filename.Value + screenshotCount + ".jpg";
+				} 
+			}
+			
+			byte[] bytes;
+			if (!useJpeg.Value)
+				bytes = screenShot.EncodeToPNG();
+			else bytes = screenShot.EncodeToJPG();
+			
+			System.IO.File.WriteAllBytes(screenshotFullPath,bytes);
+			
+			if (debugOn.Value == true)Debug.Log("File path: "+screenshotFullPath+" File Name: "+filename.Value);
+			
+			Finish();
+		}
+		
+		
+		public void getResolutions()
+		{
+			if (useCurrentRes.Value == true){
+			resWidth.Value = Screen.currentResolution.width;
+			resHeight.Value = Screen.currentResolution.height;
+		}
+			else {
+				resWidth.Value = Screen.width;
+				resHeight.Value = Screen.height;
+			}
+			return;
+		}
+		
+		
+	}
+}