unity中SmoothFollow.js的c#代码
2017-08-09 16:25
363 查看
因为unity 2017.1 没有SmoothFollow.js,所以在网上找了替换的代码
平滑的跟随,不会很生硬// Converted from UnityScript to C# at http://www.M2H.nl/files/js_to_c.php - by Mike Hergaarden using UnityEngine; using System.Collections; // Place the script in the Camera-Control group in the component menu [AddComponentMenu("Camera-Control/Smooth Follow CSharp")] public class CameraFollowTarget : MonoBehaviour { /* This camera smoothes out rotation around the y-axis and height. Horizontal Distance to the target is always fixed. There are many different ways to smooth the rotation but doing it this way gives you a lot of control over how the camera behaves. For every of those smoothed values we calculate the wanted value and the current value. Then we smooth it using the Lerp function. Then we apply the smoothed values to the transform's position. */ // The target we are following public Transform target; // The distance in the x-z plane to the target public float distance = 10.0f; // the height we want the camera to be above the target public float height = 5.0f; // How much we public float heightDamping = 2.0f; public float rotationDamping = 3.0f; void LateUpdate() { // Early out if we don't have a target if (!target) return; // Calculate the current rotation angles float wantedRotationAngle = target.eulerAngles.y; float wantedHeight = target.position.y + height; float currentRotationAngle = transform.eulerAngles.y; float currentHeight = transform.position.y; // Damp the rotation around the y-axis currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime); // Damp the height currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime); // Convert the angle into a rotation Quaternion currentRotation = Quaternion.Euler(0, currentRotationAngle, 0); // Set the position of the camera on the x-z plane to: // distance meters behind the target transform.position = target.position; transform.position -= currentRotation * Vector3.forward * distance; // Set the height of the camera transform.position = new Vector3(transform.position.x, currentHeight, transform.position.z); // Always look at the target transform.LookAt(target); } }
工具:
Convert unity javascript (unityscript) to C#//方便的把js转换为c#
参考
smooth follow C#
相关文章推荐
- Unity之一天一个技术点(六)---在线JS转C#代码
- C#前台js调用后台代码
- C#+HTML+JS生成的树完整代码
- JS or C#?不存在的脚本之争(UnityScript 不是 Javascript)
- HTML代码转JS|C#字符串工具(附源代码)
- c#运行JS代码
- 今天碰到个怪异的问题..js代码和c#得出的结果大多一样,个别有点区别
- javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案
- 区分PC端与移动端代码,涵盖C#、JS、JQuery、webconfig
- Unity--在C#脚本中调用JS脚本函数并传参
- C#代码调用js函数,js函数中的document.getElementById("对象ID")得null值解决办法
- javascript菜鸟:模仿C#的链表类写js的链表(参考过高手代码)
- 【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则
- asp.net对cookie的操作(前台js和后台c#代码)
- 控制台打包unity C#代码为dll
- 【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则
- unity中js脚本与c#脚本互相调用
- C#winform后台代码与HTML内JS脚本函数相互调用
- c#/js代码命名规范
- C#前台js调用后台代码